不使用BorderLayout位置JButton

时间:2016-12-11 12:15:48

标签: java jframe

我有Jlabels并希望定位到 panel.remove(jlabel1); panel.remove(jlabel2); //Some other code panel.add(jlabel1) panel.add(jlabel2) 的左下角。这是我的代码:

BorderLayout.SOUTH

稍后在代码中,我更新{{1}}(如果重要):

{{1}}

通过这一切,我希望JButton留在JPanel的底部。我怎样才能解决这个问题? {{1}}没有任何结果。感谢。

1 个答案:

答案 0 :(得分:0)

简短的回答是BorderLayout.SOUTH没有做任何事情,因为您要添加button的面板没有BorderLayout

查看布局管理器的Java Tutorials部分以获得更好的解释 https://docs.oracle.com/javase/tutorial/uiswing/layout/index.html

与此同时,这段代码(现场制作并完全未经测试)应该会为您提供一些有关您需要的方向的建议:

panel = new JPanel(new BorderLayout());
panel.setPreferredSize(new Dimension(130, 300));
JPanel buttonPanel = new JPanel(new FlowLayout(FlowLayout.LEFT));
buttonPanel.add(button);
panel.add(buttonPanel, BorderLayout.SOUTH);
JPanel labelPanel = newJPanel(new FlowLayout(FlowLayout.LEFT));
labelPanel.add(jLabel1);
labelPanel.add(jLabel2);
panel.add(labelPanel, BorderLayout.CENTER));