老兄,明明可以显示嘛!我刚用下面的代码测试了 import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; public class test2 extends JFrame { static B b = new B(); public static void main(String[] args) { test2 tt = new test2(); tt.getContentPane().add (b); tt.setSize (200,300); tt.setVisible (true); }
}class B extends A { public B() { } }class A extends JPanel { JButton btn = new JButton ("hello"); public A() { add(btn); } }不用上面的代码试试看!在我这儿那个Button确实是显示了!
to wxyxl(断肠人) : you are right. 但我不明白为什么b被说明为static,请说明
你再看看下面的代码: import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; public class test2 extends JFrame { B b = new B(); public test2() { getContentPane().add (b); setSize (200,300); setVisible (true); } public static void main(String[] args) { test2 tt = new test2(); }
}class B extends A { public B() { } }class A extends JPanel { JButton btn = new JButton ("hello"); public A() { add(btn); } } Java语言有一个规定就是在静态函数中不能调用非静态函数,否则编译都通不过!
thanks wxyxl(断肠人) , i see
呵呵!其实断肠人的第一个程序b不定义成static也行,只要在引用时加上对象名即可: import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.event.*; public class test2 extends JFrame { B b = new B(); //〈-------- public static void main(String[] args) { test2 tt = new test2(); tt.getContentPane().add (tt.b); //〈--------- tt.setSize (200,300); tt.setVisible (true); }
}class B extends A { public B() { } }class A extends JPanel { JButton btn = new JButton ("hello"); public A() { add(btn); } }to woxin():如果你的问题解决了的话,请你给此贴加分吧。
to lmy2000(pluto) : 原来这样,谢谢指教!
I do not know why i could not add the points to wxyxl(断肠人)
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class test2 extends JFrame
{
static B b = new B();
public static void main(String[] args)
{
test2 tt = new test2();
tt.getContentPane().add (b);
tt.setSize (200,300);
tt.setVisible (true);
}
}class B extends A
{
public B()
{
}
}class A extends JPanel
{
JButton btn = new JButton ("hello");
public A()
{
add(btn);
}
}不用上面的代码试试看!在我这儿那个Button确实是显示了!
you are right.
但我不明白为什么b被说明为static,请说明
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class test2 extends JFrame
{
B b = new B();
public test2()
{
getContentPane().add (b);
setSize (200,300);
setVisible (true);
}
public static void main(String[] args)
{
test2 tt = new test2();
}
}class B extends A
{
public B()
{
}
}class A extends JPanel
{
JButton btn = new JButton ("hello");
public A()
{
add(btn);
}
}
Java语言有一个规定就是在静态函数中不能调用非静态函数,否则编译都通不过!
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.*;
public class test2 extends JFrame
{
B b = new B(); //〈--------
public static void main(String[] args)
{
test2 tt = new test2();
tt.getContentPane().add (tt.b); //〈---------
tt.setSize (200,300);
tt.setVisible (true);
}
}class B extends A
{
public B()
{
}
}class A extends JPanel
{
JButton btn = new JButton ("hello");
public A()
{
add(btn);
}
}to woxin():如果你的问题解决了的话,请你给此贴加分吧。
原来这样,谢谢指教!