贪吃蛇系列一:Java用JFrame、JPanel、Graphics绘图案例讲解


一、JFrame 创建一个简单窗口。

import javax.swing.JFrame;

public class test extends JFrame {
    public static void main(String[] args) {
        //定义一个窗体对象f,窗体名称为"一个简单窗口"        
        JFrame  f = new JFrame("一个简单窗口");

        //设置窗体左上角与显示屏左上角的坐标,离显示屏上边缘300像素,里显示屏左边缘300像素     
        f.setLocation(300,300);           
        //设置窗体的大小为300*200像素大小
        f.setSize(300,200);            
        //设置窗体是否可以调整大小,参数为布尔值
        f.setResizable(false);       

        //设置窗体可见,没有该语句,窗体将不可见,此语句必须有,否则没有界面就没有如何意义了
        f.setVisible( true);   

        //用户单击窗口的关闭按钮时程序执行的操作
        f.setDefaultCloseOperation(f.EXIT_ON_CLOSE);
    }
}

输出结果:

转自:https://blog.csdn.net/liujun13579/article/details/7755871

二、JFrame、JPanel


import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class test {

	public static void main(String[] args) {
            // 创建窗口
            JFrame jFrame = new JFrame();
            // 创建画板
            JPanel jpanel = new JPanel() {
            //序列号(可省略)
            private static final long serialVersionUID = 1L;

            // 重写paint方法
            @Override
            public void paint(Graphics graphics) {
                // 必须先调用父类的paint方法
                super.paint(graphics);
                // 用画笔Graphics,在画板JPanel上画一个小人
                graphics.drawOval(100, 70, 30, 30);// 头部(画圆形)
                graphics.drawRect(105, 100, 20, 30);// 身体(画矩形)
                graphics.drawLine(105, 100, 75, 120);// 左臂(画直线)
                graphics.drawLine(125, 100, 150, 120);// 右臂(画直线)
                graphics.drawLine(105, 130, 75, 150);// 左腿(画直线)
                graphics.drawLine(125, 130, 150, 150);// 右腿(画直线)
            }
        };
        //将绘有小人图像的画板嵌入到窗口中
        jFrame.add(jpanel);
        // 设置窗口大小(宽度,高度),默认都为0
        jFrame.setSize(300, 300);
        // 将窗口展示出来。true设置可见,默认为false隐藏
        jFrame.setVisible(true);

	}

}

输出结果:


转自:https://blog.csdn.net/x541211190/article/details/77414861

三、JFrame综合

public class test extends JFrame {

    public test() {
        setSize(1000, 600);
        setDefaultCloseOperation(EXIT_ON_CLOSE);
        setLocationRelativeTo(null);
    }

    @Override
    public void paint(Graphics g) {
        g.setColor(Color.RED);
       
        // 画线段
        g.drawLine(5, 5, 20, 100);
        // 画点
        g.drawLine(20, 20, 20, 20);

        // 画普通矩形框
        g.drawRect(30, 5, 100, 100);
        // 填充普通矩形
        g.fillRect(140, 5, 100, 100);

        // 画圆角矩形
        g.drawRoundRect(250, 5, 100, 100, 30, 30);
        // 填充圆角矩形
        g.fillRoundRect(360, 5, 100, 100, 40, 40);
        
        // 画三维矩形
        g.draw3DRect(5, 110, 100, 100, false);
        // 填充三维矩形
        g.fill3DRect(110, 110, 100, 100, true);
    }

    public static void main(String[] args) {
        new test().setVisible(true);
    }

}

输出结果:


PS:

setDefaultCloseOperation();   作用:点X的时候,关闭JAVA程序。如果没了,就不关闭。

setDefaultCloseOperation()

设置用户在此窗体上发起 "close" 时默认执行的操作。必须指定以下选项之一:

DO_NOTHING_ON_CLOSE(在 WindowConstants 中定义):不执行任何操作;要求程序在已注册的 WindowListener 对象的 windowClosing 方法中处理该操作。
HIDE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册的 WindowListener 对象后自动隐藏该窗体。
DISPOSE_ON_CLOSE(在 WindowConstants 中定义):调用任意已注册 WindowListener 的对象后自动隐藏并释放该窗体。
EXIT_ON_CLOSE(在 JFrame 中定义):使用 System exit 方法退出应用程序。仅在应用程序中使用。

参考:https://blog.csdn.net/zhliro/article/details/45564251


猜你喜欢

转载自blog.csdn.net/isringring/article/details/80982554