使用 FlowLayout 创建框架



好的,所以我今天的编程练习遇到了一些麻烦。

练习文本如下所示:

(使用 FlowLayout 管理器)编写满足以下要求的程序:

  • 创建框架并将其布局设置为流布局
  • 创建两个面板并将它们添加到框架中
  • 每个面板包含三个按钮。该面板使用流布局

按钮应命名为"按钮 1"、"按钮 2"等。

我想我在将面板添加到框架时遇到了一些麻烦,因为当我运行程序时,它会显示一个框架

这是我的代码。

import javax.swing.*;
import java.awt.*;
public class Exercise12_1 extends JFrame {
    public Exercise12_1() {
        setLayout(new FlowLayout());
        JFrame frame = new JFrame(" Exercise 12_1 ");
        frame.setLayout(new FlowLayout());
        // Create two panels
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        panel1.setLayout(new FlowLayout());
        panel2.setLayout(new FlowLayout());
        // 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
        frame.add(panel1);
        frame.add(panel2);
    }
    public static void main(String[] args) {
        Exercise12_1 frame = new Exercise12_1();
        frame.setTitle(" Exercise 12_1 ");
        frame.setSize(600, 100);
        frame.setLocationRelativeTo(null); // center frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

如果你们中的一些人花时间在这里帮助我,我将不胜感激。谢谢。

main 方法创建一个框架:

Exercise12_1 frame = new Exercise12_1();

然后使其可见。

这个"Exercise12_1"框架的构造函数创建另一个框架,并将面板添加到另一个框架:

JFrame frame = new JFrame(" Exercise 12_1 ");
frame.setLayout(new FlowLayout());

构造函数不应创建另一个框架。它应该将面板添加到this:正在构建的框架,然后将其变为可见。

此外,您不应使用 setSize() ,而是pack() ,以使框架根据其包含的所有组件的首选大小具有最合适的大小。

检查这个:

import javax.swing.*;
import java.awt.*;
public class Exercise12_1 extends JFrame {
    public Exercise12_1() {
        setLayout(new FlowLayout());
        //JFrame frame = new JFrame(" Exercise 12_1 ");
        this.setLayout(new FlowLayout());
        // Create two panels
        JPanel panel1 = new JPanel();
        JPanel panel2 = new JPanel();
        panel1.setLayout(new FlowLayout());
        panel2.setLayout(new FlowLayout());
        // 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
        this.add(panel1);
        this.add(panel2);
    }
    public static void main(String[] args) {
        Exercise12_1 frame = new Exercise12_1();
        frame.setTitle(" Exercise 12_1 ");
        frame.setSize(600, 100);
        frame.setLocationRelativeTo(null); // center frame
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);
    }
}

您可以使用这样的代码,例如 .getContentPane().add(panel1); 来添加 Panel。

改变

frame.add(panel1);
frame.add(panel2);

this.getContentPane().add(panel1);
this.getContentPane().add(panel2);

然后它会起作用。

相关内容

  • 没有找到相关文章

最新更新