GUI

原创
2017/03/23 13:44
阅读数 7

JFrame

创建框架

public class FristGUI extends JFrame {
        
        public static void main(String[] args) {
            
                FristGUI frame = new FristGUI();// 创建框架JFrame对象

		frame.setTitle("第一个gui页面");// 设置标题

		frame.setSize(400, 200);// 设置大小 宽400,高200
                
                // 设置为不可更改框架大小
		frame.setResizable(false);

        }
}

创建一个工具类

public class MyGuiTools {

	public static void init(JFrame the, String title) {

		the.setSize(800, 600);
		the.setTitle(title);//标题
		// 设置点击关闭按钮的时候,默认关掉进程
		the.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);

		Toolkit tk = Toolkit.getDefaultToolkit(); //GUI的工具类
		Dimension ds = tk.getScreenSize();// 当前电脑屏幕的宽高
		double d1 = ds.getWidth(); //get宽度
		double d2 = ds.getHeight(); //get高度
		System.out.println(d1 + " " + d2); //打印自己屏幕的分辨率

		int x = (int) (d1 - the.getWidth()) / 2;// 居左的距离

		int y = (int) (d2 - the.getHeight()) / 2;// 居上的距离
		//
		the.setLocation(x, y); //窗口显示位置

		// the.setLocationRelativeTo(null);// 设居中显示;
	}
}

GUI构造方法

//一般把以上代码包装成工具类,在构造方法里直接调用
public MyGuiTest() {
    MyGuiTools.init(this,"标题");//通过MyGuiTools工具类的inint(JFrame the, String title)
    initUI(); //设计面板包括面板载入框架都在此方法中执行
    setVisible(true);//显示出
    //这样之后只要调用一下构造方法,就全部可以一步到位了
}

//获得工具类
Toolkit Kit = Tooklit.getDefaultToolkit();// 工具类

Image img = kit.getImage("E:/a1.jpg");// 输入图片路径得到图片对象,传给img

frame.setIconImage(img); //把得到的图片设置成图标

// 点击系统关闭按钮时,默认关掉进程
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.show();// (旧的)显示出来
frame.setVisible(true);// (现在用的)显示出来

JPanel jpMain = new JPanel();// 通过JPanel 创建一个面板对象
//这样之后的操作都可以在面板上操作
add(jpMain);//通过add方法把面板加入到框架

//创建两个按钮
JButton jb1 = new JButton("按钮1");
JButton jb2 = new JButton("按钮2");

//把按钮加入到面板中
jpMain.add(jb1);
jpMain.add(jb2);

自己定义面板

应为一般系统默认的都不适合,所有需要自己重写父类中的方法

class MyJPanle1 extends JPanel {
	public MyJPanle1(JFrame jframe) {
		this.jframe = jframe;
	}

	JFrame jframe;

	/** 重写面板类的绘制方法 **/
	@Override
	protected void paintComponent(Graphics g) {
		Toolkit kit = Toolkit.getDefaultToolkit();// 工具类
		Image img = kit.getImage("D:/A1.jpg");// 得到图片对象
		/** 绘制图片 **/
		g.drawImage(img, 0, 0, jframe.getWidth(), jframe.getHeight(), null);

		/** 更改画笔的颜色 */
		g.setColor(Color.RED);
		/** 绘制字符串到面板上 **/
		g.drawString("今天星期四,明天星期五", 0, 100);
		/** 绘制一条线 **/
		g.setColor(Color.BLACK);
		g.drawLine(100, 50, 150, 100);
		/** 绘制弧形 **/
		g.drawArc(0, 0, 100, 150, 0, 180);
		/** 绘制矩形 */
		g.drawRect(200, 200, 30, 50);

		g.setColor(Color.WHITE);
		/* 绘制实心图形 */
		g.fillArc(350, 150, 80, 80, 90, 90);

	}
}

调整面板

setBackground(Color);//给面板设置背景颜色

setPreferredSize(new Dimension(height,width));//设置大小

setFont();//设置字体

setForeground();//设置绘制颜色

GUI常见 的布局有5种

  1. Flowlayout-----------------流式布局

  2. Borderlayout-------------边框布局

  3. Cardlayout---------------卡片布局

  4. Gridlayout----------------网格布局

  5. GridBaglayout-----------网袋布局

展开阅读全文
打赏
1
0 收藏
分享
加载中
打赏
0 评论
0 收藏
1
分享
返回顶部
顶部