java - 如何让右侧JPanel始终显示

标签 java swing jpanel

我有两个 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, Componentadd 方法已过时。不管怎样,String参数只是组件的名称,与定位无关。现在,组件完全按照您的规定放置:沿着水平轴。如果您想改变这一点,可以执行多种操作,例如修改内部 JPanel 的布局、对内容面板使用 BorderLayout 以及将内部面板添加到适当的位置索引等。

当您说希望最右侧的面板和按钮始终可见时,您需要指定左侧面板及其按钮的行为。他们应该占据多条线吗?他们应该被隐藏吗?他们应该收缩吗?如果你明确你到底想要发生什么,我可以给你一个更具体的答案,但现在,答案很简单,它正在按照你的指示去做。

附加说明,您使用的 JButtonsButtons 不一致。使用其中之一,最好是 JButtons,因为您使用的所有其他组件都是 Swing。

关于java - 如何让右侧JPanel始终显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31539934/

相关文章:

java - JFrame 中的 JPanel 中的 JScrollPane 中的 JTextPane

java - 用于简单反序列化的 Jackson vs Gson

java - 再次调用paintComponent

java - 将两个 JPanel 添加到 JLayeredPane

java - JTable 标题中的多个可编辑行

Java布局问题

java - 为什么我的射弹(图像对象)不移动? Java Swing

java - JPA Unidrectional OneToMany 通过 JoinColumn 返回相同的记录 n 次而不是 n 个不同的记录

java - 通过/作为参数传递方法 - ANDROID

Java 将树添加到 ArrayList