我正在使用 netbeans 作为我的 IDE 创建一个 JDialog。我在netbeans中将大小更改为我想要的大小,我可以看到它更新了prefferredSize,但是当我运行我的应用程序时,它看起来像这样:
我还需要设置其他东西来设置大小吗?或者至少使其尺寸合适,以便我可以看到控件...(上面有 6 个)
我正在使用 netbeans 作为我的 IDE 创建一个 JDialog。我在netbeans中将大小更改为我想要的大小,我可以看到它更新了prefferredSize,但是当我运行我的应用程序时,它看起来像这样:
我还需要设置其他东西来设置大小吗?或者至少使其尺寸合适,以便我可以看到控件...(上面有 6 个)
在表单设计器中切换到属性窗口的“代码”选项卡。有一个名为“表单大小策略”的属性。
这默认为 pack() ,这意味着对话框的大小被调整为与包含的组件需要的一样大。有关更多详细信息,请阅读 pack() 方法的 Javadocs。在不知道您在对话框中放置了哪些组件的情况下,很难说出为什么 pack() 不适合您。
如果您将其更改为“生成调整大小代码”,对话框将坚持您定义的大小:
我猜您可能正在使用 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()
没有(至少不像预期的那样)。
顺便说一句,通常建议不要在组件上设置特定大小。