Java 显示具有两个面板的GUI,每个面板包括三个按钮
我需要帮助设计和实现带有多个动作组件的基本GUI。目标是创建两个面板和六个按钮。每个面板有三个按钮 到目前为止,我用Java虚拟机编写代码。我的代码看起来很正确,但是输出没有显示按钮。你能帮我找出为什么按钮不显示吗 顺便说一下,我有一张照片。我希望我的设计像这样 我的代码: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
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
forwardsadd()