[code="java"]
import javax.swing.*;
import java.awt.*;
public class DrawMessage extends JPanel {
public static void main(String[] args) {
JFrame frame = new JFrame("DrawMessage");
frame.getContentPane().add(new DrawMessage());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(300, 200);
frame.setVisible(true);
}
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.drawString("Welcome to Java", 40, 40);
}
}
[/code]
frame.getContentPane().add(new DrawMessage());
这句我不能理解,这里的new DrawMessage(),怎么可以在类中创建自身的对象呢?!
[quote]这个,学习方法的时候,不是直接用out();就OK了么?
还是没能理解能说详细点么。[/quote]
你说的那个out必须是静态方法,才可以直接使用out。这样
[code="java"]public static void out(){
//输出。
}[/code]
paintComponent()在new DrawMessage()的时候不执行,只在调用它的时候执行。比如
[code="java"]DrawMessage msg=new DrawMessage();
msg.paintComponent();[/code]
这什么奇怪的啊。可以在类中创建自身的对象,我们在学习java的时候,特别是测试第一个方法的时候不是这样写吗?
[code="java"]public class Me {
/**
* @param args
*/
public static void main(String[] args) {
Me me=new Me();
me.out();
}
public void out(){
System.out.println("Hello World...");
}
}[/code]
这不就是在Me这个类中创建一个Me的引用吗。。呵呵