用setSize()也无法改变对话框的大小,为什么?

解决方案 »

  1.   


    import javax.swing.*;
    import javax.swing.border.*;
    import java.awt.event.*;
    import java.awt.List.*;
    import java.awt.*;
    public class AboutDialog extends JDialog implements ActionListener{
    private JPanel jPanel=new JPanel();
    JButton jButton=new JButton("OK");
    private JLabel jLabel=new JLabel("作者:");
    public AboutDialog(){
    setTitle("123");
    setResizable(true); Border  border1= BorderFactory.createCompoundBorder  (BorderFactory.createLineBorder (Color.green,2),BorderFactory.createEmptyBorder(2,10,2,10));
    Border  border2=BorderFactory.createEtchedBorder(Color.pink,Color.blue); jLabel.setFont(new Font("宋体_GB2132",java.awt.Font.BOLD,18));
    jButton.setBorder(border2);
    jButton.setBackground(Color.lightGray);
    jButton.setBounds(60,150, 30, 15);
    jButton.addActionListener(this);
    jButton.setBounds(new Rectangle(20,20,80,20));  
    jPanel.setBorder(border1);
      jPanel.setLayout(null);
    jPanel.add(jButton,null);  
    jPanel.setLayout(new BorderLayout());
    jPanel.add(jLabel,BorderLayout.NORTH);
    jPanel.setBackground(Color.pink);
    this.add(jPanel); Toolkit kit=Toolkit.getDefaultToolkit();
    Dimension screenSize=kit.getScreenSize();
    int ScreenHeight=screenSize.height;
    int ScreenWidth=screenSize.width;
        setSize(600,800);
    setLocation((ScreenWidth-this.getWidth())/2,(ScreenHeight-this.getHeight())/2);
    setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE); pack();
    this.setVisible(true);

      }
    public void actionPerformed(ActionEvent e){
    //System.exit(0);
    this.dispose();

    public static void main(String[] args){
    AboutDialog a=new AboutDialog();
    }
    }
      

  2.   

    pack()造成的,把pack()去掉再看看
      

  3.   

    用了pack()后,setSize也没有用了
    JDK:pack()调整此窗口的大小,以适合其子组件的首选大小和布局。