我一直在从事这个项目的工作,而我一直被困在这个问题上。我是新手,对编程术语不太了解,所以如果有人可以帮助解释为什么我的程序无法正常工作,那将是很好的。

该程序的目的是在10x10布局中显示随机生成的1和0的矩阵,并在顶部具有一些具有功能的按钮。我只是想知道如何显示所有内容。

提前致谢。

更新::提供我所有的代码会有所帮助

public class Module5 extends JFrame {

private static JTextArea area = new JTextArea();
private static JFrame frame = new JFrame();
private static JPanel general = new JPanel();
private static JPanel buttons = new JPanel();
private static JPanel numbers = new JPanel();
private static JButton button0 = new JButton("Reset to 0");
private static JButton button1 = new JButton("Resset to 1");
private static JButton buttonReset = new JButton("Reset");
private static JButton quit = new JButton("Quit");

public static class Numbers extends JPanel {

    public Numbers() {
        area.setText(Integer.toString((int) Math.round(Math.random())));
        this.add(area);
    }

    public void Module5(){

        numbers.setLayout(new GridLayout(10, 10));
        for (int i = 0; i < 100; i++) {
            this.add(new Numbers());
        }
    }
}

public static void main (String[] args) {

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setSize(300, 300);
    frame.setVisible(true);

    general.setLayout(new BoxLayout(general, BoxLayout.Y_AXIS));
    general.add(buttons);
    general.add(numbers);

    buttons.add(button0);
    buttons.add(button1);
    buttons.add(buttonReset);

    buttons.add(quit);
    quit.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e)
        {
            System.exit(0);
        }
    });
}


}

最佳答案

由于这看起来确实像作业,因此我将为您提供一些指针,但是不会提供代码。


Module5的构造函数移出数字类,然后移到其自己的类中。还要从中删除void返回类型,以使其成为正确的构造函数。
将您主体中的代码移到Module5的构造函数中。这是主要框架,因此在构建新框架时应在此处而不是在主框架中进行初始化。并暂时删除setVisible调用(此问题已在编号6中解决)
完成1和2后,摆脱frame变量,您的Module5JFrame,因此与frame有关的任何事情都可以更改为关键字this(表示此Module5对象)
还要将area变量移动到Numbers类中-否则,每个Number本质上将共享相同的文本区域,这不是您想要的。
不要将变量设为static,而不必如此。
完成所有这些操作后,通过使您的主要方法像这样(我将为您提供的一段代码)来确保其在事件分发线程上运行

public static void main(String[] args)
{
    SwingUtilities.invokeLater(new Runnable()
    {
        @Override
        public void run()
        {
            Module5 mod5 = new Module5();
            mod5.setVisible(true);
        }
    });
}

关于java - 如何显示具有多个布局的多个JPanel?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31844136/

10-09 03:59