yyw_84 发表于 2004-08-02 02:30

对话框大小问题

我的对话框为什么怎么也改变不了它的大小,就老跟setSize(0, 0)一样
其中代码是这样的

void a()
        {
                JFrame jFrameClearEnregister = new JFrame();
                JDialog jDialogClearEnregister = new JDialog(jFrameClearEnregister, "aaaa", true);
                JPanel jPanelClearEnregister = new JPanel();
                JLabel jLabelClearQQNum = new JLabel();
               
                jPanelClearEnregister.setLayout(null);
               
                //添加"QQ号码"标签到面板 jPanelLogin1
                jLabelClearQQNum.setFont(new java.awt.Font("Dialog", 0, 15));
                jLabelClearQQNum.setRequestFocusEnabled(true);
                jLabelClearQQNum.setText("bbbbbbbb :");
                jLabelClearQQNum.setBounds(new Rectangle(1, 1, 75, 30));
                jPanelClearEnregister.add(jLabelClearQQNum, null);               
               
               
                jDialogClearEnregister.getContentPane().add(jPanelClearEnregister);
               
//                jFrameClearEnregister.setVisible(false);
//                jFrameClearEnregister.setSize(300, 300);
                jDialogClearEnregister.setVisible(true);
                jDialogClearEnregister.setSize(335, 230);
        }

sakulagi 发表于 2004-08-02 09:01

对话框大小问题

最后两行改成这样:

jDialogClearEnregister.setSize(335, 230);
jDialogClearEnregister.setVisible(true);

yyw_84 发表于 2004-08-02 10:52

对话框大小问题

可以了,谢谢sakulagi ,能不能解释得详细一点

sakulagi 发表于 2004-08-02 12:15

对话框大小问题

setSize()的工作机理是设置一下component的相关field,然后判断如果有大小的改变,会发出一个repaint的请求。
是否能够设置到指定的大小,很很多因素有关。
控件是否可见,如果有parent,和parent的布局也有关系,以及这个component和parent之间的关系。
里面涉及到很多的awt和swing的内部工作机制。我也不能完全解释清楚。
这个问题还有两种解决方法:
JDialog jDialogClearEnregister = new JDialog(jFrameClearEnregister, "aaaa", false); 是一个解决方法。
或者干脆不要给这个dialog设置一个parent。如果你要模仿qq的界面,那么,我在2楼给出的那个方法可能是更合适的。这里提到的方法只是多些参考。

yyw_84 发表于 2004-08-02 12:57

对话框大小问题

谢谢

ccd135 发表于 2012-08-27 16:13

2楼给出的那个方法可能是更合适的
页: [1]
查看完整版本: 对话框大小问题