窗口的显示问题原来是f.pack();的原因,
那第三个问题是怎么回事?
第一个答对的,马上结帐,————50分相送。

解决方案 »

  1.   

    这样:
    import java.awt.*;
    import java.awt.event.*;
    import javax.swing.*;
    public class BorderLayoutDemo
    {
            public BorderLayoutDemo()
            {
                    final JFrame f=new JFrame();                Container contentPane=f.getContentPane();
                    contentPane.setLayout(new BorderLayout());
                    f.setSize(600,400);//****第一个位置,调整参数数值不能改变窗口大小                contentPane.add(new JButton("East"),BorderLayout.EAST);
                    contentPane.add(new JButton("West"),BorderLayout.WEST);
                    contentPane.add(new JButton("North"),BorderLayout.NORTH);
                    contentPane.add(new JButton("south"),BorderLayout.SOUTH);
              contentPane.add(new JButton("Center"),BorderLayout.CENTER);
              f.setTitle("BorderLayout");
              f.pack();          //f.setSize(600,400);//*****第二个位置,能够显示自己调整大小的窗口
              f.setVisible(true);
              f.addWindowListener(new WindowAdapter()
              {
                      public void windowClosing(WindowEvent e)
                      {
                              f.dispose();//第三个位置,如果使用此语句,就会发生错误!!!!!
                              System.exit(0);
                      }
              });
            }
            public static void main(String[] args)
            {
                    new BorderLayoutDemo();
            }
    }
      

  2.   

    new WindowAdapter()是内部匿名类,所以f必须是final
      

  3.   


      f.addWindowListener(new WindowAdapter()
      {
       public void windowClosing(WindowEvent e)
       {
       //f.dispose();第三个位置,如果使用此语句,就会发生错误!!!!!
       System.exit(0);
       }
      });
    换成
     f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    就行了