模仿课堂示例完成FlowLayOut、BorderLayout、 GridLayOut练习
时间: 2023-07-10 17:39:04 浏览: 89
好的,下面我分别介绍一下三种布局方式的练习示例。
## FlowLayout
FlowLayout 布局方式会按照添加组件的顺序在容器中从左到右排列组件,当一行排列不下时则自动换行,直到所有组件排列完成。
```java
import javax.swing.*;
import java.awt.*;
public class FlowLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("FlowLayout Demo");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个 FlowLayout 布局并设置布局方式为左对齐
FlowLayout layout = new FlowLayout(FlowLayout.LEFT);
// 创建一个面板并设置布局方式为 FlowLayout
JPanel panel = new JPanel(layout);
// 添加组件到面板中
panel.add(new JLabel("Username:"));
panel.add(new JTextField(10));
panel.add(new JLabel("Password:"));
panel.add(new JPasswordField(10));
panel.add(new JButton("Login"));
panel.add(new JButton("Cancel"));
// 将面板添加到窗口中
frame.add(panel);
// 显示窗口
frame.setVisible(true);
}
}
```
## BorderLayout
BorderLayout 布局方式将容器分为 5 个区域:北、南、东、西、中。在这个布局方式中,每个组件必须添加到一个特定的区域,否则会出现布局错误。
```java
import javax.swing.*;
import java.awt.*;
public class BorderLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayout Demo");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个 BorderLayout 布局
BorderLayout layout = new BorderLayout();
// 创建一个面板并设置布局方式为 BorderLayout
JPanel panel = new JPanel(layout);
// 添加组件到面板中
panel.add(new JLabel("North"), BorderLayout.NORTH);
panel.add(new JLabel("South"), BorderLayout.SOUTH);
panel.add(new JLabel("East"), BorderLayout.EAST);
panel.add(new JLabel("West"), BorderLayout.WEST);
panel.add(new JLabel("Center"), BorderLayout.CENTER);
// 将面板添加到窗口中
frame.add(panel);
// 显示窗口
frame.setVisible(true);
}
}
```
## GridLayout
GridLayout 布局方式将容器分割为若干个行和列的单元格,每个单元格中可以添加一个组件。组件添加的顺序是按照行优先顺序添加的。
```java
import javax.swing.*;
import java.awt.*;
public class GridLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("GridLayout Demo");
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
// 创建一个 GridLayout 布局,3 行 2 列
GridLayout layout = new GridLayout(3, 2);
// 创建一个面板并设置布局方式为 GridLayout
JPanel panel = new JPanel(layout);
// 添加组件到面板中
panel.add(new JLabel("Username:"));
panel.add(new JTextField(10));
panel.add(new JLabel("Password:"));
panel.add(new JPasswordField(10));
panel.add(new JButton("Login"));
panel.add(new JButton("Cancel"));
// 将面板添加到窗口中
frame.add(panel);
// 显示窗口
frame.setVisible(true);
}
}
```
以上就是三种布局方式的练习示例,希望对你有帮助。
阅读全文