我有两个 Jpanel 排成一行,第一个 JPanel 用于显示多个按钮,第二个 JPanel 显示左右按钮。 我想始终显示左、右按钮(当更改屏幕尺寸时)
public class TestJPanel {
public static void main(String... args) {
JFrame frame = new JFrame();
JPanel panel = new JPanel();
for (int i = 0; i < 10; i++) {
panel.add(new JButton("Hello-" + i));
}
JPanel leftrightPanel=new JPanel();
leftrightPanel.add(new Button("LEFT"));
leftrightPanel.add(new Button("RIGHT"));
JPanel contentPane = new JPanel();
contentPane.setLayout(new BoxLayout(contentPane, BoxLayout.LINE_AXIS));
contentPane.add("West",panel);
contentPane.add("East",leftrightPanel);
frame.setContentPane(contentPane);
frame.pack();
frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
frame.setSize(400,280);
frame.setVisible(true);
}}
最佳答案
根据JavaDoc ,您用于 String, Component
的 add
方法已过时。不管怎样,String
参数只是组件的名称,与定位无关。现在,组件完全按照您的规定放置:沿着水平轴。如果您想改变这一点,可以执行多种操作,例如修改内部 JPanel 的布局、对内容面板使用 BorderLayout 以及将内部面板添加到适当的位置索引等。
当您说希望最右侧的面板和按钮始终可见时,您需要指定左侧面板及其按钮的行为。他们应该占据多条线吗?他们应该被隐藏吗?他们应该收缩吗?如果你明确你到底想要发生什么,我可以给你一个更具体的答案,但现在,答案很简单,它正在按照你的指示去做。
附加说明,您使用的 JButtons
和 Buttons
不一致。使用其中之一,最好是 JButtons
,因为您使用的所有其他组件都是 Swing。
关于java - 如何让右侧JPanel始终显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31539934/