2021-06-22

第10章 Swing编程初级应用

10.1 Swing中如何创建第一个窗体

1.注意事项
这里虽然关闭了窗体,不代表结束了整个程序,所以还要从控制台去结束,需要加入设置代码,一般会在软件的主界面加入。
2.窗体子类的创建
不同的窗体具有不同的功能和特性,所以一般使用时会创建窗体类继承JFrame类,从而扩展它。
3.注意事项
代码中的文件路经,注意反斜杠\需要加入2个,因为一个具有特殊含义,需要转义一下。
4.知识要点
SWING中JFRAME的使用需要注意:
(1)JFrame类构造方法创建的窗体是不可见的,需要开发人员通过硬编码的方式,设置窗体的可见性。
(2)JFrame类构造方法创建的窗体默认的大小为0×0像素,也就是没有大小,默认的坐标是(0,0)就是屏幕的左上角。

应用1:

package com.frame;



import javax.swing.ImageIcon;
import javax.swing.JFrame;

public class MianFrame extends JFrame{
public MianFrame() {
	this.setTitle("主窗体");
	this.setSize(500, 400);
	this.setLocation(200, 300);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	ImageIcon icon=new ImageIcon("C:\\Users\\123\\Pictures\\Camera Roll\\2018022816064949211.JPG");
	this.setIconImage(icon.getImage());
	this.setResizable(false);
	
}
}
package com.frame;

public class Test1 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        MianFrame m1=new MianFrame();
        m1.setVisible(true);
	}

}

10.2 布局管理器的使用

1.知识要点
SWING布局管理器的使用:
常用的布局管理器:FlowLayout流式布局管理器、GridLayout网格布局管理器、BorderLayout边框布局管理器。
2.注意事项
不同的布局方式,界面中的控件会按照不同的方式摆放。

应用2:

package com.frame;

import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;

public class GridDemoFrame extends JFrame{
public GridDemoFrame() {
	this.setTitle("网格布局");
	this.setBounds(200, 300, 500, 400);
	this.setResizable(false);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//	this.setLayout(new GridLayout(3, 3));
	GridLayout grid=new GridLayout(3, 3);
	grid.setHgap(5);
	grid.setVgap(10);
	this.setLayout(grid);
//	this.setLayout(new GridLayout(5, 6, 5, 10));
	
	JButton btn1=new JButton("1");
	JButton btn2=new JButton("2");
	JButton btn3=new JButton("3");
	JButton btn4=new JButton("4");
	JButton btn5=new JButton("5");
	JButton btn6=new JButton("6");
	JButton btn7=new JButton("7");
	JButton btn8=new JButton("8");
	JButton btn9=new JButton("9");
	this.add(btn1);
	this.add(btn2);
	this.add(btn3);
	this.add(btn4);
	this.add(btn5);
	this.add(btn6);
	this.add(btn7);
	this.add(btn8);
	this.add(btn9);
}
}


在这里插入图片描述

10.3 swing常用组件的使用

1.知识要点
SWING常用组件主要包含:
(1)文本——JLabel
(2)按钮——JButton
(3)文本框——JTextField
(4)密码框——JPasswordField
(5)面板——JPanel
(6)下拉框——JComboBox
(7)单选按钮——JRadioButton
(8)复选框——JCheckBox
2.注意事项
把布局方式设置为null,所有添加到界面上的控件必须设置坐标,否则显示不正常。
3.注意事项
Panel代表一个容器,它里面的按钮如果要水平排列,则需要设置Panel的布局方式。

应用3:


```java
package com.frame;

import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class RegisterFrame extends JFrame{
	JPanel panel1,panel2;
	JLabel label1,label2,label3;
	JTextField jf1,jf2,jf3;
	JButton btn1,btn2;
public RegisterFrame() {
	this.setTitle("注册");
	this.setBounds(200, 200, 400, 200);
	this.setResizable(false);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	this.setLayout(new BorderLayout());
	panel1=new JPanel();
	panel2=new JPanel();
	this.add(panel1,BorderLayout.CENTER);
	panel1.setLayout(new GridLayout(3, 2, 20, 30));
	label1=new JLabel("姓名");
	label1.setHorizontalAlignment(JLabel.CENTER);
	jf1=new JTextField(15);
	label2=new JLabel("性别");
	label2.setHorizontalAlignment(JLabel.CENTER);
	jf2=new JTextField(15);
	label3=new JLabel("年龄");
	label3.setHorizontalAlignment(JLabel.CENTER);
	jf3=new JTextField(15);
	panel1.add(label1);
	panel1.add(jf1);
	panel1.add(label2);
	panel1.add(jf2);
	panel1.add(label3);
	panel1.add(jf3);
	this.add(panel2,BorderLayout.SOUTH);
	panel2.setLayout(new FlowLayout(FlowLayout.CENTER));
	btn1=new JButton("确定");
	btn2=new JButton("取消");
	panel2.add(btn1);
	panel2.add(btn2);
	
	
}

}
package com.frame;

public class Test3 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
       RegisterFrame r1=new RegisterFrame();
       r1.setVisible(true);
	}

}


在这里插入图片描述

10.4 下拉列表,单复选按钮的使用
注意事项
将数据放入combox下拉框中,combox放入Panel中,最后将Panel放入界面中。

应用4:

package com.frame;

import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPasswordField;
import javax.swing.JTextField;

public class MyFrame1 extends JFrame{
	JLabel label1,label2;
	JTextField jf1;
	JPasswordField jf2;
	JButton btnLogin,btnClose;
public MyFrame1() {
	this.setTitle("控件的使用");
	this.setBounds(200, 200, 500, 400);
	this.setResizable(false);
	this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	this.setLayout(null);
	label1=new JLabel("用户名");
	label1.setBounds(50, 50, 80, 25);
	this.add(label1);
	jf1=new JTextField(20);
	jf1.setBounds(100, 50, 200, 25);
	this.add(jf1);
	label2=new JLabel("密码");
	label2.setBounds(50, 80, 80, 25);
	this.add(label2);
	jf2=new JPasswordField(20);
	jf2.setBounds(100, 80, 200, 25);
	this.add(jf2);
	btnLogin=new JButton("登录");
	btnLogin.setBounds(110, 120, 60, 20);
	this.add(btnLogin);
	btnClose=new JButton("关闭");
	btnClose.setBounds(190, 120, 60, 20);
	this.add(btnClose);
	
}
}
package com.frame;

public class Test4 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
        MyFrame1 m1=new MyFrame1();
        m1.setVisible(true);
	}

}


在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

二十的十七

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

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

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

打赏作者

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

抵扣说明:

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

余额充值