如何将JButton放在JTextFields下面

时间:2016-01-16 19:37:49

标签: java swing user-interface jpanel

我为我的GUI创建了一个GridLayout来显示6行和4列。我试图得到两个按钮,我有“计算”和“退出”显示在第6行。对于第5行,我只有两个pane.add(四个是权重标签和文本字段)。我只是想让计算和退出按钮在他们自己的行上。我试着做pane.add();填补空白,无法让它发挥作用。我错过了什么,以便我可以在他们自己的行上获得按钮?

基本上我有

    pane.setLayout(new GridLayout(6, 4)); 

    pane.add(score1L);
    pane.add(score1TF);
    pane.add(weight1L);
    pane.add(weight1TF);
    pane.add(score2L);
    pane.add(score2TF);
    pane.add(weight2L);
    pane.add(weight2TF);
    pane.add(score3L);
    pane.add(score3TF);
    pane.add(weight3L);
    pane.add(weight3TF);
    pane.add(score4L);
    pane.add(score4TF);
    pane.add(weight4L);
    pane.add(weight4TF);

    pane.add(weightAvgL);
    pane.add(weightAvgTF);

    pane.add(calculateB);
    pane.add(exitB);

1 个答案:

答案 0 :(得分:2)

可能的选择:

  • 添加空的JLabel以填补任何空白。
  • 使用混合布局 - 嵌套JPanels,每个都使用自己的布局并向其添加组件。例如,整个JPanel可以使用BorderLayout。 textfields / labels可以在GridLayout或GridBagLayout中,使用JPanel将BorderLayout.CENTER添加到主JPanel。 JButtons可以使用JPanel保存在他们自己的GridLayout中,然后将BorderLayout.PAGE_END添加到主JPanel。
  • 使用允许更复杂布局的布局管理器,例如GridBagLayout,或者更好的第三方布局管理器,例如MigLayout。
  • 也许是最好的 - 使用JTable来保存数据网格,将其添加到JScrollPane,然后将按钮放在JScrollPane下面。