刚学java,在学边界布局时,遇到一问题,求高手不吝赐教~
写了一段代码如下:
import javax.swing.*;
import java.awt.*;public class Exam7_7{
Exam7_7()
{
JFrame jf=new JFrame();
jf.setSize(400,300);
jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JButton jbtn1=new JButton("东");
JButton jbtn2=new JButton("西");
JButton jbtn3=new JButton("南");
JButton jbtn4=new JButton("北");
JButton jbtn5=new JButton("中");
JPanel jp=new JPanel();

BorderLayout b1=new BorderLayout(3,5);
jp.setLayout(b1);

jp.add(jbtn1,b1.EAST);
jp.add(jbtn2,b1.WEST);
jp.add(jbtn3,b1.SOUTH);
jp.add(jbtn4,b1.NORTH);
jp.add(jbtn5,b1.CENTER);

jf.add(jp);
jf.setVisible(true);



}
     
  public static void main(String[] args)
  {
 new Exam7_7();
  }
}
编译通过,没显示错误,但运行时却无法执行,显示如下错误:ava.lang.Error: Do not use javax.swing.JFrame.add() use javax.swing.JFrame.getContentPane().add() instead
at javax.swing.JFrame.createRootPaneException(JFrame.java:465)
at javax.swing.JFrame.addImpl(JFrame.java:491)
at java.awt.Container.add(Container.java:307)
at Exam7_7.<init>(Exam7_7.java:27)
at Exam7_7.main(Exam7_7.java:36)
Exception in thread "main" 请高手解答下,在此感激之至!

解决方案 »

  1.   

    没问题啊;你的JDK版本是多少?
      

  2.   

    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);放到后边最后边试试还有就是希望lz下次代码的时候,按照论坛的规则发,要不然很少人看你这样乱的代码!
      

  3.   

    恩,我这也没问题,你就照它给的提示将jp.add换成jp.getContentPane().add试试
      

  4.   

    你看的书太老了,异常里已经说的很明白了,要把jf.add(jp);改成
    jf.getContentPane().add(jp);
      

  5.   

    Do not use javax.swing.JFrame.add() use javax.swing.JFrame.getContentPane().add() instead这就是问题,楼主翻译一下应该就会明白的。我路过的,呵呵
      

  6.   

    1.42版的 JDK
    不能直接对Frame进行add
    必须对Frame的contentPane进行add
    要用jf.getContentPane().add(jp);
      

  7.   

    感觉你用的书有点老了awt??  学校里面的书真永远都不换
    楼主换点比较新的书看吧!!
      

  8.   

    代码感觉相当之正确啊。肯定是jdk低了