13章 Swing组件学习笔记

13章 Swing组件学习笔记

13章 Swing组件学习笔记_第1张图片

一、标签类JLabel

JAVA中添加图片用到的组件 -> 标签JLabel
URL获取图片路径 URL url = Demo.class.getResource(“java.png”);//得到java.png的路径
图片类→Icon icon = new ImageIcon(url); <- 图片类的构造方法
Icon icon = new ImageIcon(String”src/java.png”);//字符串默认获取项目文件夹参数
注意:及时设置标签大小,并不会改变图片大小。
将图标放在标签上,将标签放到容器内→实现图标在容器窗体中的使用

疑问:如何进行更改图片大小及其方位?包括标签组件的位置设置
单纯进行标签设置的时候标签本身不会发生任何改变?

DrawIcon icon = new DrawIcon(int width,int height);设置图标长和宽
同理→在设置按钮的时候setBounds设置在容器中的位置大小,

二、JAVA常见布局方式

1.绝对布局:组件位置不会跟随窗体发生改变→组件被写死了;

Container c.setLayout(null);//绝对布局设置方式
可以随意摆放按钮位置:setBounds(x,y,width,height);

2.流布局(FlowLayout)

按键会跟随窗体自己发生流排布

3.边界布局(BorderLayout)

分为五个模块,可以用BorderLayout.___进行设置组件位置

4.网格布局(GridLayout)

将窗体Container按照设置的网格进行切割布局,组件跟随窗体放大缩小。

5.网格组布局(GridBagLayout)

gridx gridy设置组件所在位置
gridwidth gridheight 设置组件宽和高→组件占用网格的行数或列数
anchor 设置组件所在显示区域的显示位置。GridBagConstraints.__(position)__→约束对象
fill 设置组件的填充方式GridBagConstraints.____默认情况为NONE
insets 设置组件四周与单元格边缘之间的最小距离(注意:该属性需要实例化对象进行操作)
ipadx ipady设置组建的首选大小→刚开始的大小→窗体改变时对其影响很小
weigthx weighty 设置网格组行列对额外空间的分布方式 总体在窗体中的大小@

三、面板类:

面板→看成一个容器,放到窗体中进行使用
面板只能放在窗体中进行使用,面板之间互不干扰

1.JPanel面板:

2.JScrollPane滚动面板: → 第六部分文本域组件查看详细
滚动面板创建需要先初始化一个文本编译器→JTextAreas文本域组件
JScrollPane p = new JScrollPane(new JTextAreas());

四、按钮组件

超纲部分内容:按钮事件监听→七、监听
JButton jb = new JButton();
jb.addActionListener(new ActionListener(){ //监听jb按钮对象
public void actionPerformed(ActionEvent e){ //监听者事件方法
JOptionPane.showMessageDialog(null,”弹出对话框”); //弹出确认对话框
}
});

按钮中常见设置按钮方法:JButton父类→AbstractButton类。详细查阅Java API

setIcon() -> 定制一个按钮图标
setBorderPainted() -> 设置按钮边界是否显示
setMaximumSize(Dimension()) -> 设置按钮大小与图标大小一致。

1.提交按钮组件(JButton):
Jb.setMaximumSize(new Dimension(90,20));//词句用于设置按钮的大小
Dimension()类→用于获取和设置方格的大小。(单位:像素);
疑问:Dimension(int width,int height)类中两个参数具体用于做什么的?该类实现了啥功能?
对此类深入理解还需要进行学习

2.单选按钮组件(JRadioButton):extends JToggleButton (extends AbstractButton)
构造方法类似
如何实现单选?→ 将单选按钮添加到按钮组中进行使用
ButtonGroup group = new ButtonGroup();
group.add(JRadioButton);添加使用实现单选按钮,

3.复选框组件(JCheckBox):
系统自提供按钮选中判断,可添加事件监听进行查看

五、列表组件

1.下拉列表框组件(JComboBox):
AbstractListModel类→
Object getElementAt(int index) //返回指定索引的值
int getSize() //返回列表的长度

ComboBoxModel接口→//封装情况较多
Public void setSelectedItem(Object item) //设置列表框中的选中项
Public Object getSeleectedItem(); //返回列表框中的选中项

2.列表框组件(JList):
列表框本身没有任何效果,使用时与其他组件进行配合使用
列表框占据的固定的大小。→ 运用JSrollPane面板进行设置滚动列表
设置方法:
setListData()→对列表框进行设置

ListModel接口类型对象,提供获取列表框属性的方法
(技巧:不完全使用ListModel中的方法→class extends AbstractModel)

AbstractListModel类中方法与下拉列表框中所述相同\

DefaultListModel类创建列表框,→提供addElement实现内容添加到列表框
DefaultListModel类对象 向上转型为ListModel接口初始化列表框。

六、文本组件

1.文本框组件(JTextField):
为文本框添加事件
jt.addActionListener(new ActionListener(){ //为文本框添加事件
Public void actionPerformed(ActionEvent e){ //文本框事件添加方法→Enter键监听
jt.setText(“触发事件”);
}
});

2.密码框组件(JPasswordField):
setEchoChar(Char char);用char符号进行加密,改变回显字符

3.文本域组件(JTextArea):
setLineWrap( boolean )设置文本域是否可以自动换行

七、常用事件监听器:

监听?:由3个分离的对象完成对事件的处理:事件源,事件,监听程序。

1.动作事件监听器(ActionEvent):
监听接口:ActionListener()
接口方法:addActionListener();
removeActionListener();

ActionListener.ActionPerformed();→ 实现监听时 进行的动作(例:点击按钮后干啥干啥、、、)
一般情况下,为事件源做监听事件应使用匿名内部类形式。参考JAVA 11章内容
原因:防止actionPerformed()方法在外部重写多次而导致程序出现未知BUG

2.焦点事件监听器(FocusEvent):
事件源:Component以及其派生类
监听接口:FocusListener
接口方法: focusLost(); //组件失去焦点时调用
focusGained() //组件获取焦点时调用

监听方法:
addFocusListener();
removeFocusListener();

你可能感兴趣的:(13章 Swing组件学习笔记)