java swing无法扩展JFrame的高度?

标签 java swing height layout-manager pack

我创建了一个 JFrame 并设置了一个 JPanel 作为其内容面板,我在该容器中添加了大约 30 个按钮,但 JFrame 向我显示了一行按钮,并且不允许我扩展高度。

public class UIDemo{
    private JPanel contentPanel = new JPanel();
    private JButton buttons[] = new JButton[30];
    public UIDemo(JFrame frame){
        for(int i = 0; i < buttons.length; i++){
           buttons[i] = new JButton("Button"+Integer.toString(i));
           contentPanel.add(buttons[i]);
        }//Add all buttons into content panel.

        frame.setContentPane(contentPanel);
        frame.pack();
        frame.setVisible(true);
    }
    public static void main(String[] args){
        SwingUtilities.invokeLater(new Runnable(){
             public void run(){
                 new UIDemo(new JFrame());
             }
        });
    }
}

最佳答案

  • JPanel在API中实现了FlowLayout

  • FlowLayout 仅接受 PreferredSize,则 JPanel 中的 JComponents 无法调整大小

  • 看看GridLayout

  • 另一个选项是 GridBagLayout 或今天的自定义 MigLayout

关于java swing无法扩展JFrame的高度?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13268943/

相关文章:

java - 如何让 JFrame 真正全屏?

java - 在 JTable 上动态调整行高

html - 无法在 Chrome 中将 flexbox 子项高度设置为 100%

android - 如何在设置 `ImageView` 时设置 `layout_weight` 的高度以匹配其宽度?

java - 如何获取两个 EditText 字段的值并进行简单的数学计算

java - 将自签名证书添加到 JRE keystore

java - 像 Swing 中的小部件一样的命令行

css - 在 IE7 中如何将文本垂直对齐到固定高度容器中的底部

java - JLabel 没有在 JTabbedPane 上移动?

java - Spock spring模块在运行测试时导致NoSuchMethodError