1

Java GUIアプリケーションを作成するために、Eclipseとwindowsbuilderを使用しています。スイング パネルのコンポーネントのパディングを維持するのに問題があります。コンポーネントを配置するために、windowbuilder デザイナーでグループ レイアウトを使用しています。しかし、残念ながら、ウィンドウのサイズが変更されたときにパディングを維持することはできません。

通常サイズのウィンドウ
通常のウィンドウ

最大化されたウィンドウ サイズ変更または最大化時のウィンドウ

ウィンドウのサイズが変更されると、コンポーネントのパディングが正しく維持されるように、3 番目の画像のように、アプリで水平方向と垂直方向のギャップのサイズを自動的に変更したいと考えています。 欲しいウィンドウパディング

コード:

public myframe() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 450, 300);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        contentPane.setLayout(new BorderLayout(0, 0));
        setContentPane(contentPane);

        JPanel panel = new JPanel();
        contentPane.add(panel, BorderLayout.CENTER);

        JButton btnNewButton = new JButton("New button");
        GroupLayout gl_panel = new GroupLayout(panel);
        gl_panel.setHorizontalGroup(
            gl_panel.createParallelGroup(Alignment.TRAILING)
                .addGroup(Alignment.LEADING, gl_panel.createSequentialGroup()
                    .addGap(166)
                    .addComponent(btnNewButton)
                    .addContainerGap(169, Short.MAX_VALUE))
        );
        gl_panel.setVerticalGroup(
            gl_panel.createParallelGroup(Alignment.LEADING)
                .addGroup(gl_panel.createSequentialGroup()
                    .addGap(37)
                    .addComponent(btnNewButton)
                    .addContainerGap(192, Short.MAX_VALUE))
        );
        panel.setLayout(gl_panel);
    }
4

1 に答える 1

0

私はこれに対する解決策を見つけました::) .addGap() を .addContainerGap() に置き換えるだけで、それを行った後は正常に機能しました。

于 2012-12-10T15:49:18.033 に答える