3

IDE として netbeans を使用して JDialog を作成しています。サイズを netbeans で希望するサイズに変更すると、preferredSize が更新されていることがわかりますが、アプリケーションを実行すると、次のようになります。

ここに画像の説明を入力

サイズを設定するために設定する必要があるものは他にありますか?または、少なくともコントロールが見えるように適切なサイズにします...(6つあります)

4

4 に答える 4

4

フォーム デザイナーで、プロパティ ウィンドウの [コード] タブに切り替えます。「用紙サイズポリシー」というプロパティがあります。

これはデフォルトで pack() に設定されています。これは、含まれるコンポーネントが必要とする大きさにダイアログのサイズが変更されることを意味します。詳細については、pack() メソッドの Javadoc を参照してください。ダイアログに配置したコンポーネントがわからないと、 pack() が機能しない理由を判断するのは困難です。

これを「Generate Resize Code」に変更すると、ダイアログは定義したサイズに固定されます。

ここに画像の説明を入力

于 2012-05-05T07:20:52.290 に答える
3

Netbeans GUI ビルダー、考えられる解決策/提案、

  1. あなたが行方不明かもしれません dialog.pack();
  2. jDialog を右クリック > プロパティ > (設定) 最小サイズ
  3. (提案) GUI ビルダーを捨てて、IDE を学ぶ代わりに Java を学びましょう!

ところで、これは私にとってはうまくいきます、

import javax.swing.JDialog;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;

public class DialogsTest {

    public static void main(String[] args) {
        SwingUtilities.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame f = new JFrame();

                f.setSize(400, 300);
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                f.setVisible(true);

                JPanel message = new JPanel();
                message.add(new JLabel("This is a dialog :)"));
                JDialog dialog = new JDialog(f, "Dialog");

                dialog.setContentPane(message);
                dialog.pack();
                dialog.setLocationRelativeTo(f);
                dialog.setVisible(true);
            }
        });
    }
}
于 2012-05-05T06:43:02.347 に答える
0

setSize()代わりにこの方法を使用してください。何らかの理由でこれは機能しますが、setPreferredSize()機能しません(少なくとも期待どおりではありません)。

ちなみに、通常はコンポーネントに特定のサイズを設定しないことをお勧めします。

于 2012-05-05T04:37:02.587 に答える