Java【U10?

Swing

1、在这里插入图片描述
2、Swing组件
在这里插入图片描述

JFrame窗体

1、组件容器,各组件载体。继承java.swing.JFrame类。可添加组件,设置事件。有最大化、最小化、关闭按钮。
JFrame jf=new JFrame(title);
Container container=jf.getContentPane();//窗体转换为容器。
添加/删除组件:container.add(...); container.remove(...);

2、有两种构造方法:public JFrame()//初始不可见,无标题的新窗体。
public JFrame(String str)//初始不可见但有标题。
使可见:jf.setVisible(true)
设置窗体大小:jf.setSize(int x,int y)//x横边,y竖边
关闭窗体:jf.setDefaultCloseOperation(关闭方式)
在这里插入图片描述

JDialog窗体

组件对话框,窗体弹出的窗体。容器。继承java.awt.JDialog类。
主要构造方法:
在这里插入图片描述

JLabel

1、继承JComponent。只能显示一行只读文本、一个图像or带图像文本。可指定文本对齐方式。无法产生事件。
构造方法:
在这里插入图片描述

图标

1、可放在按钮、标签等组件上。描述组件用途。
2、创建:①Icon接口。必须使用所有方法:
在这里插入图片描述
②java.awt.Graphics类。
3、图片图标:利用javax.swing.ImageIcon根据现有图片创建图标。实现Icon接口。支持多种图片格式。构造方法:

在这里插入图片描述
图片路径:相对路径起点是工程根目录
假设图片在Project1/src/Hello/1.jpg
ImageIcon icon=new ImageIcon(“src/Hello/1.jpg");
URL url=getClass.getResource("1.jpg");//当前编译后由class文件所在目录查找,路径相对于类文件
ImageIcon icon=new ImageIcon(url);

布局管理器

1、绝对布局:绝对坐标指定组件位置大小。两步:
Container.setLayout(null);//取消布局管理器
组件或窗体.setBounds(int x,int y,int width,int height);//设置:位置,宽,长
2、流布局管理器:一行接一行。从左到右摆放。默认在每行居中排列,可改。
使用:setBounds(FlowLayout f);
FlowLayout构造方法:
在这里插入图片描述
①alignment:组件具体摆放位置。取值3个。0:左对齐。
在这里插入图片描述
②horizGap和vertGap:以像素为单位的水平、垂直间隔。

3、边界布局管理器:默认布局模式(默认放正中心)。东南西北中五个区域。
setBounds(BorderLayout b);
在这里插入图片描述
4、网格布局管理器:容器划分为网格,每个组件大小相同。大小随窗体改变。网格中空格个数由行列数决定。从左上角开始,组件按左→右,上→下加入网格,填满整个网格。public GridLayout(int rows,int columns)//行数,列数。只有一个可以为0,代表一行/一列。
public GridLayout(int rows,int columns,int horizGap,int vertGap)//指定网格间的水平、垂直距离

面板

容器,继承自java.awt.Container类。可收组件,但也要被加到其它容器中。
JPanel
JPanel p=new JPanel(布局对象);p.add(组件);c.add(p);
JScrollPane:带滚动条。只能放一个组件,不能使用布局管理器。若放多个组件:将多组件放JPanel上,JPanel作为整体组件加到JScrollPane上。
JScrollPane sp=new JScrollPane(组件);c.add(sp);

按钮

继承AbstractButton类。
提交按钮JButton
public JButton():不带文本和图标,可以后加:

JButton b=new JButton();
b.setMaximumSize(Dimension d);//按钮与图标一样大小
b.setIcon(Icon icon);//按钮图标
b.setTipToolText(String str);//按钮提示文字(鼠标悬停时的显示)
b.setBorderPainted(Boolean bb);//按钮边界显不显示
b.addActionListener(ActionListener a);//监听事件
b.setEnabled(Boolean bb);//按钮是否可用

在这里插入图片描述
单选按钮JRadioButton:圆形图标
继承JToggleButton类→继承AbstractButton类。
构造方法:文本、图标、默认是否被选中
在这里插入图片描述
按钮组ButtonGroup:单选按钮加入组。

JRadioButton rb=new JRadioButton();
ButtonGroup group=new ButtonGroup();
group.add(rb);

复选按钮JCheckBox:方块图标
继承AbstractButton类。可多选。选中/不选中。
在这里插入图片描述

列表

下拉列表框JComboBox:javax.swing.JComponent的子类。

在这里插入图片描述
JComboBox模型:
①将项目封装为ComboBoxModel接口(一般模型):自定义一个类实现该接口,再初始化JComboBox对象向上转型为ComboBoxModel接口类型,并实现2个方法:
public void setSelectedItem(Object item);//设置下拉类表框中的选中项。
public Object getSelectedItem();//返回选中项。
②自定义类继承AbstractListModel类,方法:
getSize():返回列表长度
getElementAt(int index):返回指定索引处的值

列表框JList
在这里插入图片描述
第一个构造方法可以初始化后再setListData()设置。
Vector类加内容:

Vector v=new Vector();
JList jl=new JList(v);
v.add("abc");
v.add(...);

ListModel类型作参数:ListModel是Swing包的一个接口,提供获取列表框属性的方法。为不完全实现其方法,通常自定义一个类继承该接口抽象类AbstractListModel,内含getElementAt():根据项目索引获取列表框值,getSize():获取列表框项目个数。
DefaultListModel类扩展了AbstractListModel类,∴也可以DefaultListModel对象向上转型为ListModel接口来初始化列表框。提供方法:addElement()将内容添加至列表框。

文本

1、文本框:javax.swing.JTextField,继承javax.swing.text.JTextComponent,单行文本。
在这里插入图片描述

2、密码框:javax.swing.JPasswordField
在这里插入图片描述
设置回显字符:jp.setEchoChar('*');

3、文本域JTextArea:多行输入。
默认文本、文本域长宽。
在这插入图片描述
可自动换行:jt.setLineWrap(true);

监听

事件源—事件—监听程序:事件源触发事件,产生事件对象,监听器类实现接口,获取接口对象实现方法,事件源调用方法加载监听器类对象。
1、动作事件监听器:
在这里插入图片描述
内部类实现:

public class A{
	new JButton().addActionListener(new bAction());
	...
	class bAction implements ActionListener{
		public void actionPerformed(ActionEvent arg0){
		...
		}
	}
}

匿名内部类:

new JButton().addActionListener(new ActionListener(){
	public void actionPerformed(ActionEvent e){
		...
	}
});

2、焦点事件监听器
在这里插入图片描述

new JButton().addFocusListener(new FocusListener(){
 public void focusLost(FocusEvent arg0){
  ...
 }
  public void focusGained(FocusEvent arg0){
  ...
 }

});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值