好吧,我今天的编程练习遇到了一些麻烦。
练习文本如下:
(使用FlowLayout管理器)编写一个满足以下要求的程序:
- 创建一个框架并设置其布局为FlowLayout 创建两个面板并将它们添加到框架
- 每个面板包含三个按钮。面板使用FlowLayout
按钮应该命名为"Button 1","Button 2"等等。(我完成了原始代码)
现在我需要将我的代码更改为BorderLayout,同时将1个面板移动到南方,另一个移动到中心,我尝试了,但它似乎没有正确出来。按钮只在顶部和底部。
原代码(FlowLayout):import javax.swing.*;
import java.awt.*;
public class lab5_1 extends JFrame {
public lab5_1() {
setLayout(new FlowLayout());
// Create two panels
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
// Add three buttons to each panel
panel1.add(new JButton(" Button 1 "));
panel1.add(new JButton(" Button 2 "));
panel1.add(new JButton(" Button 3 "));
panel2.add(new JButton(" Button 4 "));
panel2.add(new JButton(" Button 5 "));
panel2.add(new JButton(" Button 6 "));
// Add panels to frame
add(panel1);
add(panel2);
}
public static void main(String[] args) {
lab5_1 frame = new lab5_1();
frame.setTitle(" Exercise 12_1 ");
frame.setSize(600,75);
frame.setLocationRelativeTo(null); // center frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
我对BorderLayout的尝试:
public class lab5_2 extends JFrame {
public lab5_2() {
setLayout(new BorderLayout());
// Create two panels
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
// Add three buttons to each panel
panel1.add(new JButton(" Button 1 "));
panel1.add(new JButton(" Button 2 "));
panel1.add(new JButton(" Button 3 "));
panel2.add(new JButton(" Button 4 "));
panel2.add(new JButton(" Button 5 "));
panel2.add(new JButton(" Button 6 "));
//Add Panel to frame
add(panel1, BorderLayout.CENTER);
add(panel2, BorderLayout.SOUTH);
}
public static void main(String[] args) {
lab5_2 frame = new lab5_2();
frame.setTitle(" Exercise 12_2 ");
frame.setSize(200, 200);
frame.setLocationRelativeTo(null); // center frame
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
中心区域获得尽可能多的可用空间。其他区域仅在必要时扩展以填充所有可用空间。