编写java程序实现这样的界面布局效果:顶层容器中采用BorderLayout布局管理器,其中的四边各放一个标签JLabel类的实例,中心部分用一个中间容器,其中依然用BorderLayout布局管理器,在这部分再放入五个按钮JButton类的实例。进一步,可以尝试设定顶层容器、中间容器、按钮、标签的前景色和背景色,尝试设定按钮、标签的字体,尝试设定按钮、标签的图片。
时间: 2024-03-27 17:39:07 浏览: 54
基于JAVA的布局管理器-BorderLayout
好的,我先给出实现这个界面布局的Java代码:
```java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Font;
import javax.swing.*;
public class BorderLayoutDemo {
public static void main(String[] args) {
JFrame frame = new JFrame("BorderLayout Demo"); // 创建顶层容器 JFrame
frame.setSize(400, 300); // 设置窗口大小
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 设置关闭窗口时退出程序
// 创建四个标签并设置前景色、背景色、字体、文本和水平对齐方式
JLabel northLabel = new JLabel("North", JLabel.CENTER);
northLabel.setForeground(Color.WHITE);
northLabel.setBackground(Color.BLUE);
northLabel.setFont(new Font("宋体", Font.BOLD, 20));
northLabel.setOpaque(true); // 设置标签不透明
JLabel southLabel = new JLabel("South", JLabel.CENTER);
southLabel.setForeground(Color.WHITE);
southLabel.setBackground(Color.BLUE);
southLabel.setFont(new Font("宋体", Font.BOLD, 20));
southLabel.setOpaque(true);
JLabel westLabel = new JLabel("West", JLabel.CENTER);
westLabel.setForeground(Color.WHITE);
westLabel.setBackground(Color.BLUE);
westLabel.setFont(new Font("宋体", Font.BOLD, 20));
westLabel.setOpaque(true);
JLabel eastLabel = new JLabel("East", JLabel.CENTER);
eastLabel.setForeground(Color.WHITE);
eastLabel.setBackground(Color.BLUE);
eastLabel.setFont(new Font("宋体", Font.BOLD, 20));
eastLabel.setOpaque(true);
// 创建中间容器 JPanel 并设置布局管理器为 BorderLayout
JPanel centerPanel = new JPanel(new BorderLayout());
// 创建五个按钮并设置前景色、背景色、字体、文本和图标
JButton button1 = new JButton("Button 1", new ImageIcon("button1.png"));
button1.setForeground(Color.WHITE);
button1.setBackground(Color.GREEN);
button1.setFont(new Font("宋体", Font.BOLD, 16));
JButton button2 = new JButton("Button 2", new ImageIcon("button2.png"));
button2.setForeground(Color.WHITE);
button2.setBackground(Color.GREEN);
button2.setFont(new Font("宋体", Font.BOLD, 16));
JButton button3 = new JButton("Button 3", new ImageIcon("button3.png"));
button3.setForeground(Color.WHITE);
button3.setBackground(Color.GREEN);
button3.setFont(new Font("宋体", Font.BOLD, 16));
JButton button4 = new JButton("Button 4", new ImageIcon("button4.png"));
button4.setForeground(Color.WHITE);
button4.setBackground(Color.GREEN);
button4.setFont(new Font("宋体", Font.BOLD, 16));
JButton button5 = new JButton("Button 5", new ImageIcon("button5.png"));
button5.setForeground(Color.WHITE);
button5.setBackground(Color.GREEN);
button5.setFont(new Font("宋体", Font.BOLD, 16)));
// 将五个按钮添加到中间容器的五个方向上
centerPanel.add(button1, BorderLayout.NORTH);
centerPanel.add(button2, BorderLayout.WEST);
centerPanel.add(button3, BorderLayout.CENTER);
centerPanel.add(button4, BorderLayout.EAST);
centerPanel.add(button5, BorderLayout.SOUTH);
// 将四个标签和中间容器添加到顶层容器的五个方向上
frame.add(northLabel, BorderLayout.NORTH);
frame.add(southLabel, BorderLayout.SOUTH);
frame.add(westLabel, BorderLayout.WEST);
frame.add(eastLabel, BorderLayout.EAST);
frame.add(centerPanel, BorderLayout.CENTER);
frame.setVisible(true); // 显示窗口
}
}
```
这个程序演示了如何使用 BorderLayout 布局管理器来实现这个界面布局。在顶层容器 JFrame 中,我们通过 `frame.add()` 方法将四个标签和中间容器 JPanel 添加到不同的方向上。在中间容器 JPanel 中,我们又通过 `centerPanel.add()` 方法将五个按钮添加到不同的方向上。我们还可以通过方法如 `setForeground()`、`setBackground()`、`setFont()`、`setIcon()` 等来设置标签和按钮的前景色、背景色、字体、图标等。
阅读全文