所以我正在尝试创建一个图形用户界面,我之前在 Java 中修改过图形用户界面,但我对它们仍然是新手。所以我在这里发布的是我的 JLabel(butLabel 和 cbLabel)充满了按钮和复选框。遗憾的是,我的 JFrame 将只显示设置为 BorderLayout.CENTER 的那个。 NORTH & SOUTH 永远不会显示,即使我只将 butLabel 设置为 SOUTH,甚至不使用 cbLabel。我在看什么??非常感谢,谢谢!
public class mainWindow
{
JFrame frame = new JFrame("Main Window");
JLabel butLabel = new JLabel();
JLabel cbLabel = new JLabel();
JButton showBut = new JButton("Show");
JButton exitBut = new JButton("Exit");
JButton addBut = new JButton("Add");
JButton remBut = new JButton("Remove");
JCheckBox aCB = new JCheckBox("Airplane");
JCheckBox bCB = new JCheckBox("Boat");
JCheckBox cCB = new JCheckBox("Clock");
public mainWindow()
{
frame.setLayout(new BorderLayout()); //I know this is set by default to BorderLayout but I just did it when I was out of options to try.
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setMinimumSize(new Dimension(360, 480));
butLabel.setLayout(new GridLayout(1,4));
cbLabel.setLayout(new GridLayout(2, 2));
butLabel.add(showBut);
butLabel.add(exitBut);
butLabel.add(addBut);
butLabel.add(remBut);
cbLabel.add(aCB);
cbLabel.add(bCB);
cbLabel.add(cCB);
frame.add(butLabel, BorderLayout.CENTER);
frame.add(cbLabel, BorderLayout.NORTH);
}
public void setVisible()
{
butLabel.setVisible(true);//Didn't think I needed butLabel.setVisible or the cbLabel.setVisible but
cbLabel.setVisible(true);//again I was trying things that I thought might make sense.
frame.setVisible(true);
}
}
最佳答案
不要使用 Label 对元素进行分组,而是使用 JPanel 我试过全部替换
Label
与
Panel
有效
关于java - JButtons 仅在 BorderLayout.CENTER 中出现在 JFrame 上,而不是在 SOUTH 或 NORTH 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26454324/