java 中的paint自动执行两次吗?
解决方案 »
- Spring集成RMI实现客户访问服务器,如何实现冗余服务器操作?
- JAVA的抛出异常类
- 模拟银行 (求助:救命问题啊)
- 请各位指点下以下程序的输出问题。。
- JOptionPane中的InputDialog!急!
- 自学了一段时间的JAVA!心中一直有一个疑问!JAVA是做什么用的?
- 对于java我们应该还要做点什么?
- 使用Vector的一个问题
- 请告诉我---Java2是什么东东?和Java有什么区别?JDK是什么?和JBuilder有什么区别?
- 是Java虚拟机将类加载到内存的吧??????
- 问一个关于paint()和update()的问题
- Cannot initialize context because there is already a root application
包括:
1、第一次显示
2、被缩放
3、被其它窗口遮住
4、重新可见
等等java定义为:任何应该被调用的时候,都会调用paint()方法来重绘。所以不明白你的问题是什么意思。
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyCanvas extends Canvas{
private static int re=0;
public void paint(Graphics g) {
System.out.println(re++);}
}
public class TestFrame extends Frame{
TestFrame(String s) {
super(s);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} public static void main(String[] args) {
// TODO Auto-generated method stub
TestFrame f = new TestFrame("Test");
f.setBounds(350, 50, 600, 710);
MyCanvas mc =new MyCanvas();
f.add(mc);
System.out.println(" ");
//之前没执行paint
f.setVisible(true);//执行了两次paint
}
}
这是为什么啊?
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyCanvas extends Canvas{
private static int re=0;
public void paint(Graphics g) {
System.out.println(re++);}
}
public class TestFrame extends Frame{
TestFrame(String s) {
super(s);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} public static void main(String[] args) {
// TODO Auto-generated method stub
TestFrame f = new TestFrame("Test");
f.setBounds(350, 50, 600, 710);
MyCanvas mc =new MyCanvas();
f.add(mc);
System.out.println(" ");
//之前没执行paint
f.setVisible(true);//执行了两次paint
}
}
这是为什么啊?
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MyCanvas extends Canvas{
private static int re=0;
public void paint(Graphics g) {
System.out.println(re++);}
}
public class TestFrame extends Frame{
TestFrame(String s) {
super(s);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
} public static void main(String[] args) {
// TODO Auto-generated method stub
TestFrame f = new TestFrame("Test");
f.setBounds(350, 50, 600, 710);
MyCanvas mc =new MyCanvas();
f.add(mc);
System.out.println(" ");
//之前没执行paint
f.setVisible(true);//执行了两次paint
}
}
这是为什么啊?怎么避免呢?
因为我在做一个动态演示过程,尅是他老是自动刷两遍