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设置在容器中的位置大小,
Container c.setLayout(null);//绝对布局设置方式
可以随意摆放按钮位置:setBounds(x,y,width,height);
按键会跟随窗体自己发生流排布
分为五个模块,可以用BorderLayout.___进行设置组件位置
将窗体Container按照设置的网格进行切割布局,组件跟随窗体放大缩小。
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();