Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 显示具有两个面板的GUI,每个面板包括三个按钮_Java_Swing_Button_User Interface_Grid Layout - Fatal编程技术网

Java 显示具有两个面板的GUI,每个面板包括三个按钮

Java 显示具有两个面板的GUI,每个面板包括三个按钮,java,swing,button,user-interface,grid-layout,Java,Swing,Button,User Interface,Grid Layout,我需要帮助设计和实现带有多个动作组件的基本GUI。目标是创建两个面板和六个按钮。每个面板有三个按钮 到目前为止,我用Java虚拟机编写代码。我的代码看起来很正确,但是输出没有显示按钮。你能帮我找出为什么按钮不显示吗 顺便说一下,我有一张照片。我希望我的设计像这样 我的代码: import javax.swing.*; import java.awt.*; public class FlowlayoutExperiment extends JFrame { FlowLayout ex

我需要帮助设计和实现带有多个动作组件的基本GUI。目标是创建两个面板和六个按钮。每个面板有三个按钮

到目前为止,我用Java虚拟机编写代码。我的代码看起来很正确,但是输出没有显示按钮。你能帮我找出为什么按钮不显示吗

顺便说一下,我有一张照片。我希望我的设计像这样

我的代码:

import javax.swing.*;
import java.awt.*;

public class FlowlayoutExperiment extends JFrame {

    FlowLayout experimentLayout = new FlowLayout();

    private JButton firstButton = new JButton("Button 1");
    private JButton secondButton = new JButton("Button 2");
    private JButton thirdButton = new JButton("Button 3");
    private JButton fourthButton = new JButton("Button 4");
    private JButton fifthButton = new JButton("Button 5");
    private JButton sixthButton = new JButton("Button 6");

    public FlowlayoutExperiment ()
    {

        JPanel group1 = new JPanel();
        setLayout(new GridLayout(3,1));

        group1.add(firstButton);
        group1.add(secondButton);
        group1.add(thirdButton);        

        JPanel group2 = new JPanel();
        setLayout(new GridLayout(3,1));
        group2.add(fourthButton);
        group2.add(fifthButton);
        group2.add(sixthButton);

         }
   public static void main(String[] args) 
   {

        FlowlayoutExperiment frame = new FlowlayoutExperiment();
        frame.setTitle("Button Panel Example");
        frame.setSize(600, 75);
        frame.setLocationRelativeTo(null);
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setVisible(true);

    }
}

你好像忘了给任何东西添加组

public FlowlayoutExperiment ()
{

    JPanel group1 = new JPanel();
    setLayout(new GridLayout(3,1));

    group1.add(firstButton);
    group1.add(secondButton);
    group1.add(thirdButton);        

    JPanel group2 = new JPanel();
    setLayout(new GridLayout(3,1));
    group2.add(fourthButton);
    group2.add(fifthButton);
    group2.add(sixthButton);

    // This is important ;)
    add(group1);
    add(group2);

 }
您还可以设置框架的布局,而不是组

你可能想改变

    JPanel group1 = new JPanel();
    setLayout(new GridLayout(3,1));
    //...
    JPanel group2 = new JPanel();
    setLayout(new GridLayout(3,1));


按钮不显示。这是因为您没有将2个JPanel添加到框架中

您可以向构造函数FlowLayoutExperience添加两行代码。它将使按钮显示出来。 this.getContentPane().add(group1)

public FlowlayoutExperiment() {

    JPanel group1 = new JPanel();
    setLayout(new GridLayout(3, 1));

    group1.add(firstButton);
    group1.add(secondButton);
    group1.add(thirdButton);

    JPanel group2 = new JPanel();
    setLayout(new GridLayout(3, 1));
    group2.add(fourthButton);
    group2.add(fifthButton);
    group2.add(sixthButton);

    this.getContentPane().add(group1);
    this.getContentPane().add(group2);

}
this.getContentPane().add(group2)

public FlowlayoutExperiment() {

    JPanel group1 = new JPanel();
    setLayout(new GridLayout(3, 1));

    group1.add(firstButton);
    group1.add(secondButton);
    group1.add(thirdButton);

    JPanel group2 = new JPanel();
    setLayout(new GridLayout(3, 1));
    group2.add(fourthButton);
    group2.add(fifthButton);
    group2.add(sixthButton);

    this.getContentPane().add(group1);
    this.getContentPane().add(group2);

}

您创建了两个面板,但没有将它们添加到框架中。此外,以下两种解决方案都无法按预期工作,因为您无法将两个组件添加到框架的默认布局管理器BorderLayout的中心。因此,您需要将框架的布局更改为FlowLayout,或者可以将一个面板添加到西部,另一个添加到东部。我建议您阅读上的Swing教程以了解更多信息。无需
getContentPane()
JFrame
forwards
add()