gpt4 book ai didi

java - 无法在 JFrame 上显示所有按钮

转载 作者:行者123 更新时间:2023-12-01 18:02:45 24 4
gpt4 key购买 nike

下面是我的代码。我无法添加所有 6 个按钮。一次仅显示 Button1 - 3 或 Button4-6。

请让我知道我哪里出错了。

// This class contains the main method and launches the Main screen 
import javax.swing.*;
import java.awt.*;

public class LearningHome{
public static void main(String[] args){
JFrame mainFrame = new JFrame("Welcome to the Learning! ");

try {

mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.setSize(800, 800);
mainFrame.setVisible(true); // Without this property the frame will not be visible

FlowLayout mainLayout = new FlowLayout();
JPanel mainPanel = new JPanel();

mainPanel.setLayout(mainLayout);

mainPanel.add(new JButton(" Button 1 "));
mainPanel.add(new JButton(" Button 2 "));
mainPanel.add(new JButton(" Button 3 "));

JPanel subPanel = new JPanel();

subPanel.setLayout(mainLayout);

subPanel.add(new JButton(" Button 4 "));
subPanel.add(new JButton(" Button 5 "));
subPanel.add(new JButton(" Button 6 "));

mainFrame.add(mainPanel, mainLayout.LEFT);
mainFrame.setLocationRelativeTo(null);
mainFrame.add(subPanel, mainLayout.RIGHT);
}
}

最佳答案

您没有提到您寻求的确切布局,并且有很多方法可以安排组件,但要解决您的具体评论

I am not able to add all the 6 buttons. Only Button1 - 3 or Button4-6 are getting displayed at a time

  1. 将所有元素添加到 JFrame在它变得可见之前(例如,在将组件添加到 mainFrame.setVisible(true) 后移动 mainFrame 。这样 LayoutManager 就可以根据需要排列组件
  2. 考虑调用 mainFrame.pack();在调用 setVisible 之前(参见What does .pack() do?)
  3. 默认LayoutManager对于 JFrame 的内容 Pane 是 BorderLayout (JPanel 的默认值为 FlowLayout - 因此无需显式设置布局)...如果您希望添加两个面板以便它们排成一行,请考虑使用适当的 BorderLayout 参数组合。

例如:

mainFrame.add(mainPanel, BorderLayout.WEST);
mainFrame.add(mainPanel, BorderLayout.EAST);
mainFrame.pack();//call these methods after adding components
mainFrame.setVisible(true);

您也可以使用适当的 BorderLayout 参数将它们堆叠成两行。例如:

mainFrame.add(mainPanel, BorderLayout.CENTER);
mainFrame.add(mainPanel, BorderLayout.SOUTH);

关于java - 无法在 JFrame 上显示所有按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39427836/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com