JAVA中的swing

本文介绍了Java的图形用户界面GUI,特别关注Swing框架,包括其常用组件如JFrame、JButton等,布局管理如FlowLayout、BorderLayout,以及事件处理机制,展示了如何创建简单的交互式应用。
摘要由CSDN通过智能技术生成

swing

gui是什么
java的gui发展
swing的常用组件
swing的布局
swing的事件
实现计算器&记事本

gui是什么

Graphical User Interface,主要用来实现桌面应用使用的技术,能够在桌面系统提供各种功能,比如:office,qq,浏览器等都算是桌面应用。

java的gui发展

awt->swing->SWT->jface

javafx

swing的常用组件

顶层容器
    JFrameJWindowJDialogJApplet
常用组件
    JPanel 面板容器 除了顶层容器,其他的组件都可以装进去
    JTextField 文本输入框 单行
    JTextArea 文本域 多行
    JPasswordField 密码框 输入的内容不直接显示
    JButton 按钮
    JRadioButton  单选
    JCheckBox 复选
    JComboBox 下拉框
    JList 列表
    JTree 树形组件
    JLabel 标签 可以显示文本和图片
    JMenuBar 菜单
    JMenu 菜单
    JMenuItem 菜单项
    JScrollPane 滚动条
    JOptionPane 弹窗
    JFileChooser 文件选择器
    JTable 表格

常用的布局

流式布局/线性布局

FlowLayout

JPanel panel = new JPanel();//默认是线性布局
		FlowLayout mgr = new FlowLayout();
		mgr.setVgap(10);
		mgr.setHgap(20);
		mgr.setAlignment(FlowLayout.RIGHT);//设置对齐方式
		panel.setLayout(mgr);//设置布局
		for (int i = 0; i < 20; i++) {
			JButton button = new JButton("按钮" + i);
			panel.add(button);
		}

边框布局/四边布局

BorderLayout

BorderLayout borderLayout = new BorderLayout();
		borderLayout.setHgap(hgap);
		borderLayout.setVgap(vgap);
		panel.setLayout(borderLayout);
		JButton button = new JButton("北");
		button.setPreferredSize(new Dimension(0, 40));
		JButton button1 = new JButton("南");
		JButton button2 = new JButton("西");
		JButton button3 = new JButton("东");
		JButton button4 = new JButton("中");
		panel.add(button,BorderLayout.NORTH);
		panel.add(button1,BorderLayout.SOUTH);
//		panel.add(button2,BorderLayout.WEST);
		panel.add(button3,BorderLayout.EAST);
		panel.add(button4,BorderLayout.CENTER);

表格布局

GridLayout

panel.setLayout(new GridLayout(2, 3));
		JButton button = new JButton("北");
		JButton button1 = new JButton("南");
		JButton button2 = new JButton("西");
		JButton button3 = new JButton("东");
		JButton button4 = new JButton("中");
		panel.add(button);
		panel.add(button1);
		panel.add(button2);
		panel.add(button3);
		panel.add(button4);

绝对布局

以坐标的方式确定位置

panel.setLayout(null);
		JButton button = new JButton("北");
		button.setBounds(10, 10, 50, 30);
		JButton button1 = new JButton("南");
		button1.setBounds(80, 10, 50, 30);
		JButton button2 = new JButton("西");
		button2.setBounds(160, 80, 50, 30);
		JButton button3 = new JButton("东");
		button3.setBounds(340, 10, 50, 30);
		JButton button4 = new JButton("中");
		button4.setBounds(420, 10, 50, 30);
		panel.add(button);
		panel.add(button1);
		panel.add(button2);
		panel.add(button3);
		panel.add(button4);

事件

event,事件有三大要素:事件源,事件对象,事件监听器

事件的类型很多
    鼠标点击事件 click
    键盘事件
    窗口事件 
    
    JButton button = new JButton("北");
		button.addActionListener(new ActionListener() {
			
			@Override
			public void actionPerformed(ActionEvent e) {
				System.out.println("点击了北");
			}
		});
		button.setBounds(10, 10, 50, 30);
		JButton button1 = new JButton("南");
		button1.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent e) {
				super.mouseClicked(e);
				System.out.println("鼠标点击了南");
				if(e.getClickCount() == 2) {
					System.out.println("双击了南");
				}
				if(e.getButton() == MouseEvent.BUTTON3) {
					System.out.println("右键了鼠标");
				}
			}
		});
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

程序员zhi路

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值