Java Gui


一.Java提供了三个主要包做GUI开发:

java.awt 包 – 主要提供字体/布局管理器

javax.swing 包[商业开发常用] – 主要提供各种组件(窗口/按钮/文本框)

java.awt.event 包 – 事件处理,后台功能的实现。

二、Swing组件

(1)顶层容器::常用有JFrame,JDialog

(2)中间容器:JPanel,JOptionPane,JScrollPane,JLayeredPane 等,主要以panel结尾。

(3)基本组件:JLabel,JButton,JTextField,JPasswordField,JRadioButton 等。

三、常见布局

FlowLayout(流布局)、BorderLayout(边框布局)、GridLayout(网格布局)

1.FlowLayout(流布局)

流布局,组件从左向右排列,一行排满后自动换下一行。组件默认居中对齐,可以设置为左/右对齐。流布局会维持组件的原始大小。

import java.awt.*;
import javax.swing.*;
public class test1 {
	public static void main(String[] args) {
		JFrame a=new JFrame("流布局");//建立一个新窗口
		FlowLayout  a1 =new FlowLayout();//使用流布局
		a.setLayout(a1);
		JButton b1 = new JButton("按钮1");//添加按钮
		JButton b2 = new JButton("按钮2");
		JButton b3 = new JButton("按钮3");
		JButton b4 = new JButton("按钮4");
		JButton b5 = new JButton("按钮5");
		JButton b6 = new JButton("按钮6");
		a.add(b1);
		a.add(b2);
		a.add(b3);
		a.add(b4);
		a.add(b5);
		a.add(b6);
		a.setSize(500, 300);//设置窗口大小
		a.setLocation(20, 50);//位置
		a.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭窗口
        a.setVisible(true); //显示窗口
	}

}

2.BorderLayout(边框布局)

边框布局把整个窗口分成了5个部分,上北下南左西右东,剩下的是中部。其中,北和南是整行,而中/西/东都不是整列。一般只会出现2个或3个部分。组件放入时需要指定放在哪个区域,默认放在中部。每个部分只能存放一个组件,如果存放多个就会覆盖前面的。如果想放多个组件,必须借助面板。组件在边框布局中不保持原始大小,会充满整个区域。JFrame的默认布局就是边框布局。如果某个部分不出现,这个区域会被出现的部分挤占。

import java.awt.BorderLayout;
import javax.swing.JButton;
import javax.swing.JFrame;

public class TestBorderLayout {
    public static void main(String[] args) {
        JFrame jf = new JFrame("DEMO窗口");
        JButton jb = new JButton("红中");
        jf.add(jb); //把按钮放入边框布局的中部

        JButton jb1 = new JButton("东风");  //创建一个按钮
        jf.add(jb1,BorderLayout.EAST);     //放在东部

        JButton jb2 = new JButton("南风"); 
        jf.add(jb2,BorderLayout.SOUTH);     //放在南部

        JButton jb3 = new JButton("西风"); 
        jf.add(jb3,BorderLayout.WEST);      //放在西部  

        JButton jb4 = new JButton("北风"); 
        jf.add(jb4,BorderLayout.NORTH);     //放在北边

        jf.setSize(600, 300);               //设置按钮的大小
        jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//关闭
        jf.setVisible(true);//显示窗口
    }
}

3、GridLayout(网格布局)

网状布局就是把窗口分成几行几列的表格方式,构造时需要指定行数和列数。组件在网状布局中不保持原始大小,会充满整个区域。组件在网状布局中,一个格子只放一个组件,自动向后走。

import java.awt.*;
import java.awt.event.*;
import javax.swing.JFrame;

public class GridLayoutWindow extends JFrame {
	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	public GridLayoutWindow() {
		setLayout(new GridLayout(3, 2));//三行两列布局
		add(new Button("b1"));
		add(new Button("b2"));
		add(new Button("b3"))
		add(new Button("b4"));
		add(new Button("b5"));
		add(new Button("b6"));
	}

	public static void main(String args[]) {
		GridLayoutWindow window = new GridLayoutWindow();
		window.setSize(300, 150);//窗口大小
		window.setLocation(500, 500);//位置
		window.setTitle("GridLayout Example");//窗口名
		window.setVisible(true);
		window.addWindowListener(new MyWindowListener());
	}
}

class MyWindowListener3 extends WindowAdapter {
	public void windowClosing(WindowEvent e) {
		Window window = (Window) e.getComponent();
		window.dispose();
	}
}

例题

编写一个程序。设计一个界面,第一行含有三个按钮,第二行正中间含有一个按钮,第三行含有两个按钮。

package gui;

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class FrameDemo extends JFrame {
/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
JButton jbtwo ,jbHello, jbBye;
public FrameDemo() {
 setLayout(new GridLayout(3, 1));// 3行1列布局
 JPanel jp1 = new JPanel();// 第一行
 JButton jb1 = new JButton("第一个按钮");
 JButton jb2 = new JButton("第二个按钮");
 JButton jb3 = new JButton("第三个按钮");
 jp1.add(jb1);
 jp1.add(jb2);
 jp1.add(jb3);
 add(jp1);
 JPanel jp2 = new JPanel();// 第二行bai
 JButton jbtwo = new JButton("第四个按钮");
 jp2.add(jbtwo);
 add(jp2);
 JPanel jp3 = new JPanel();// 第三行
 jbHello = new JButton("第五个按钮");
 jbBye = new JButton("第六个按钮");
 jp3.add(jbHello);
 jp3.add(jbBye);
 add(jp3);
 setSize(380, 180);
 setTitle("窗口");
 setLocationRelativeTo(null);

}
//点击按钮后响应
public static void main(String[] args) {
new FrameDemo();
  }
}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
ava实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),可运行高分资源 Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现的毕业设计&&课程设计(包含运行文档+数据库+前后端代码),Java实现

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值