10

のインセットを設定する方法はありJFrameますか? 私は試した

frame.getContentPane().getInsets().set(10, 10, 10, 10);

frame.getInsets().set(10, 10, 10, 10);

しかし、どれも機能していないようです。

4

5 に答える 5

26
JPanel contentPanel = new JPanel();

Border padding = BorderFactory.createEmptyBorder(10, 10, 10, 10);

contentPanel.setBorder(padding);

yourFrame.setContentPane(contentPanel);

つまり、基本的にcontentPanelは、フレームのメイン コンテナーです。

于 2013-01-02T06:13:03.737 に答える
4

InsetsofをオーバーライドするJFrameことは、実際の問題に対する解決策ではありません。あなたの質問に答えるために、のインセットを設定することはできませんJFrame。JFrame を拡張し、getInsetsメソッドをオーバーライドして、必要なインセットを提供する必要があります。

于 2013-01-02T06:39:36.160 に答える
2

LayOutConstraint のオブジェクトを作成し、そのインセットを設定する必要があります。以下の例のように、GridBagLayout() を使用し、GridBagConstraint() オブジェクトを使用しました。

    GridBagConstraints c = new GridBagConstraints();
    JPanel panel = new JPanel(new GridBagLayout());
    c.insets = new Insets(5, 5, 5, 5); // top, left, bottom, right
    c.anchor = GridBagConstraints.LINE_END;

    // Row 1
    c.gridx = 0;
    c.gridy = 0;
    c.anchor = GridBagConstraints.LINE_START;
    panel.add(isAlgoEnabledLabel, c);
于 2013-01-02T06:01:02.833 に答える