窗口底部的JButtons截止

时间:2018-01-25 21:26:50

标签: java jframe jpanel jbutton

我一直在学习如何在Java中创建GUI,作为一项任务的一部分,我们需要有两行按钮,一行在另一行之上。我有所有的按钮,但是底部的按钮正在中途切断。我无法弄清楚如何让它们完全显示出来。我已经尝试调整窗口的Y尺寸,但它们仍然保持截止状态。有没有人知道如何让底部的三个按钮完全显示? Image of what's happening

相关代码

JPanel rightA = new JPanel();
JPanel bottomB = new JPanel();
JPanel bottomB2 = new JPanel();
JLabel jlName = new JLabel("Item Name: ");
JLabel jlNum = new JLabel("Number of: ");
JLabel jlCost = new JLabel("Cost: ");
JLabel jlOwed = new JLabel("Amount Owed: ");
JButton jbCalculate = new JButton("Calculate");
JButton jbSave = new JButton("Save");
JButton jbClear = new JButton("Clear");
JButton jbExit = new JButton("Exit");
JButton jbLoad = new JButton("Load");
JButton jbPrev = new JButton("<Prev");
JButton jbNext = new JButton("Next>");
this.setTitle("Items Order Calculator");
this.setMinimumSize(new Dimension(400, 200));
rightA.add(jlName);
rightA.add(jtfName);
rightA.add(jlNum);
rightA.add(jtfNum);
rightA.add(jlCost);
rightA.add(jtfCost);
rightA.add(jlOwed);
rightA.add(jtfOwed);
bottomB.add(jbCalculate);
bottomB.add(jbSave);
bottomB.add(jbClear);
bottomB.add(jbExit);
bottomB2.add(jbLoad);
bottomB2.add(jbPrev);
bottomB2.add(jbNext);
jtfOwed.setEnabled(false);
rightA.setLayout(new GridLayout(4, 2));
this.add(rightA, BorderLayout.EAST);
bottomB.add(bottomB2);
this.add(bottomB, BorderLayout.SOUTH);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setVisible(true);

1 个答案:

答案 0 :(得分:0)

我认为问题在于您将bottomB2面板添加到bottomB面板中,并且它们没有正确地传达它们的优先尺寸。

尝试使用边框布局创建另一个面板,并将其添加到此面板的北部和南部区域。然后将这个新的底部面板添加到南方的gui中。

JPanel bottomAll = new JPanel(new BorderLayout());
bottomAll.add(bottomB, BorderLayout.NORTH);
bottomAll.add(bottomB2, BorderLayout.SOUTH);
this.add(bottomAll, BorderLayout.SOUTH);