下面的代码一开始运行的时候为什么会显示出桌面的背景出来呢,要改变窗口大小时才可以显示出JFrame自己的背景出来????
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame
{
public Test()
{
super("Test");
this.setSize(400,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.setVisible(true);
}
public void paint(Graphics g)
{
g.drawLine(0,0,100,100);
}
public static void main(String args[])
{
new Test();
}
}
import java.awt.*;
import javax.swing.*;
public class Test extends JFrame
{
public Test()
{
super("Test");
this.setSize(400,300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.setVisible(true);
}
public void paint(Graphics g)
{
g.drawLine(0,0,100,100);
}
public static void main(String args[])
{
new Test();
}
}
楼主【aheqq】截止到2008-07-02 01:59:27的历史汇总数据(不包括此帖):
发帖的总数量:2 发帖的总分数:40
结贴的总数量:0 结贴的总分数:0
无满意结贴数:0 无满意结贴分:0
未结的帖子数:2 未结的总分数:40
结贴的百分比:0.00 % 结分的百分比:0.00 %
无满意结贴率:---------------------无满意结分率:---------------------
如何结贴请参考这里:http://topic.csdn.net/u/20080501/09/ef7ba1b3-6466-49f6-9d92-36fe6d471dd1.html
import java.awt.FlowLayout;
import java.awt.Graphics;import javax.swing.JFrame;
public class Test extends JFrame
{
public Test()
{
super("Test");
this.setSize(400, 300);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLayout(new FlowLayout());
this.setVisible(true);
} public void paint(Graphics g)
{
//加这一行就好了
super.paint(g);
g.drawLine(0, 0, 100, 100);
} public static void main(String args[])
{
new Test();
}
}
将只绘制你的paint(Graphics g)里要绘制的东西,不会绘制别的东西,所以你要 添加super.paint(g);来绘制JFrame本身要绘制的东西才行