FLowLayout方法
setAlignment( int ) — 元素对齐方式
setHgap( int ) — 容器内元素之间的左外边距
setVgap( int ) — 容器内元素之间的上外边距
JFrame j = new JFrame();j.setSize(100,400);j.setLayout(new FlowLayout());for(int i = 0; i < 10; i++) { j.add(new JButton(i + ""));}j.setVisible(true);
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WMwl4VBf-1575276506931)(en-resource://database/11053:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
3.5.3 边界布局 – BorderLayout
1. 分成5个区域:north、south、west、east、center
2. 一个区域只能放一个组件、后者覆盖前者
JFrame j = new JFrame();
j.setSize(300, 300);
j.setLayout(new BorderLayout());
j.add(new JButton(1 + ""), BorderLayout.NORTH);
j.add(new JButton("覆盖1"), BorderLayout.NORTH);
j.add(new JButton(2 + ""), BorderLayout.SOUTH);
j.add(new JButton(3 + ""), BorderLayout.WEST);
j.add(new JButton(4 + ""), BorderLayout.EAST);
j.add(new JButton(5 + ""), BorderLayout.CENTER);
j.setVisible(true);
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Ry3UICUE-1575276506934)(en-resource://database/11055:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
3.5.4 网格布局 – GridLayout
设定整个窗口的最多行、列 – 容器内元素的宽高自适应
程序尽可能的填满整个屏幕
JFrame j = new JFrame();
j.setSize(300, 300);
Container c = j.getContentPane();
c.setLayout(new GridLayout(4,4,10,20));
for(int i = 0; i< 20; i++) {
c.add(new JButton(i + ""));
}
j.setVisible(true);
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-R1cSWrht-1575276506938)(en-resource://database/11057:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-nAJD6FJ4-1575276506942)(en-resource://database/11059:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
3.5.5 卡片布局 – CardLayout
JFrame j = new JFrame();
j.setSize(500, 500);
j.setLayout(new BorderLayout());
CardLayout cardLayout = new CardLayout();
JPanel panel = new JPanel();
panel.setBackground(Color.CYAN);
JPanel card1 = new JPanel();
card1.setBackground(Color.red);
JPanel card2 = new JPanel();
card2.setBackground(Color.green);
panel.setLayout(cardLayout);
panel.add(card1, "card1");
panel.add(card2, "card2");
JPanel panel2 = new JPanel();
panel2.setBackground(Color.blue);
JButton btn1 = new JButton("卡片1");
JButton btn2 = new JButton("卡片2");
btn1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cardLayout.first(panel);
}
});
btn2.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
cardLayout.last(panel);
}
});
panel2.add(btn1);
panel2.add(btn2);
j.add(panel, BorderLayout.CENTER);
j.add(panel2, BorderLayout.WEST);
j.setVisible(true);
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fYSHWTXm-1575276506945)(en-resource://database/11061:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
3.6 监听器
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-uRFS3agr-1575276506948)(en-resource://database/11063:1)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
3.6.1 鼠标点击监听器
JFrame j = new JFrame();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setLayout(null);
j.setSize(500, 500);
String[] stus = {"学生1","学生2","学生3","学生4","学生5","学生5","学生5","学生5"};
JList<String> list = new JList<String>(stus);
JScrollPane js = new JScrollPane(list);
js.setBounds(10,10,100,100);
JButton btn = new JButton("打印选中的元素");
btn.setBounds(10,120, 200,50);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
System.out.println(list.getSelectedValuesList());
}
});
j.add(js);
j.getContentPane().add(btn);
j.setVisible(true);
3.6.2 焦点监听器
public class JFrame2 extends JFrame {
JTextField input = new JTextField();
JTextField input2 = new JTextField();
class MyListener implements FocusListener {
@Override
public void focusGained(FocusEvent e) {
Object o =e.getSource();
if(o == input) {
System.out.println("input失去焦点");
}else if( o == input2 ){
System.out.println("iput2失去焦点");
}
}
@Override
public void focusLost(FocusEvent e) {
Object o =e.getSource();
if(o == input) {
System.out.println("input获取焦点");
}else if( o == input2 ){
System.out.println("iput2获取焦点");
}
}
}
JFrame2() {
JFrame j = new JFrame();
j.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
j.setLayout(new FlowLayout());
j.setSize(250, 250);
input.setColumns(20);
input2.setColumns(20);
FocusListener list = new MyListener();
input.addFocusListener(list);
input2.addFocusListener(list);
j.add(input);
j.add(input2);
j.setVisible(true);
}
}
new JFrame2();
3.6 JTable – 表格
3.6.1 表格数据的添加
![[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gqr8STFM-1575276506951)(en-resource://database/11067:0)]](https://www.bmabk.com/wp-content/uploads/2022/05/post-loading.gif)
表格单行数据添加
JTable table = new JTable();
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
Vector v = new Vector()
tableModel.add( v )
3.6.2 表格数据清空
JTable table = new JTable();
DefaultTableModel tableModel = (DefaultTableModel) table.getModel();
tableModel.setRowCount(0)
3.6.3 删除选中行的数据
JTable table = new JTable();
DefaultTableModel model = (DefaultTableModel) table.getModel();
Integer selectedRow = table.getSelectedRow();
model.removeRow(selectedRow);
3.7 JComboBox – 下拉列表框
3.7.1 列表框数据的添加
JComboBox jcb = new JComboBox();
jcb.addItem( Object o )
3.7.2 获取选中的列表框数据
JComboBox<String> jcb = new JComboBox<String>();
String str = typeNameBox.getSelectedItem();
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/46549.html
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!