IDE として netbeans を使用して JDialog を作成しています。サイズを netbeans で希望するサイズに変更すると、preferredSize が更新されていることがわかりますが、アプリケーションを実行すると、次のようになります。
サイズを設定するために設定する必要があるものは他にありますか?または、少なくともコントロールが見えるように適切なサイズにします...(6つあります)
IDE として netbeans を使用して JDialog を作成しています。サイズを netbeans で希望するサイズに変更すると、preferredSize が更新されていることがわかりますが、アプリケーションを実行すると、次のようになります。
サイズを設定するために設定する必要があるものは他にありますか?または、少なくともコントロールが見えるように適切なサイズにします...(6つあります)
フォーム デザイナーで、プロパティ ウィンドウの [コード] タブに切り替えます。「用紙サイズポリシー」というプロパティがあります。
これはデフォルトで pack() に設定されています。これは、含まれるコンポーネントが必要とする大きさにダイアログのサイズが変更されることを意味します。詳細については、pack() メソッドの Javadoc を参照してください。ダイアログに配置したコンポーネントがわからないと、 pack() が機能しない理由を判断するのは困難です。
これを「Generate Resize Code」に変更すると、ダイアログは定義したサイズに固定されます。
Netbeans GUI ビルダー、考えられる解決策/提案、
dialog.pack();
ところで、これは私にとってはうまくいきます、
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);
}
});
}
}
setSize()
代わりにこの方法を使用してください。何らかの理由でこれは機能しますが、setPreferredSize()
機能しません(少なくとも期待どおりではありません)。
ちなみに、通常はコンポーネントに特定のサイズを設定しないことをお勧めします。