查看: 1217|回复: 2
|
關于Java paint畫面會消失的問題
[复制链接]
|
|
import javax.swing.*;
import java.awt.*;
public class Test extends JFrame
{
public static void main(String [] args)
{
Test app = new Test();
app.setSize(200,200);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
};
public void paint(Graphics g)
{
super.paint(g);
g.drawString("Test", 100, 100);
};
}
當我最大化或更改視窗大小時Test會消失,請問有人試過同樣的問題嗎
我是用Java 1.5, Windows XP,如果改用Frame就不會有這樣的問題
不過試過在另一個Java 1.4,Windows ME的電腦上面又沒有問題。。 |
|
|
|
|
|
|
|
发表于 8-8-2007 10:23 PM
|
显示全部楼层
我在 Java 1.6 WindowsXP 的环境下执行也没有遇到你说的问题。
下面的 code 我加了 ComponentListener 在更改大小时 repaint。
希望有帮助。
import java.awt.Graphics;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import javax.swing.JFrame;
public class Test extends JFrame {
public static void main(String [] args) {
final Test app = new Test();
app.setSize(200,200);
app.setVisible(true);
app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
app.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent event) {
app.repaint();
System.out.println("resized");
}
});
app.addWindowFocusListener(new WindowAdapter() {
public void windowGainedFocus(WindowEvent event) {
app.repaint();
System.out.println("focused");
}
});
};
public void paint(Graphics g) {
super.paint(g);
g.drawString("Test", 100, 100);
};
} |
|
|
|
|
|
|
|

楼主 |
发表于 11-8-2007 09:00 AM
|
显示全部楼层
試了可以回避這個問題,感謝
找到好象這個問題也有其他人中過,不過也是一樣不是每個人的都會有問題
另外我試別的方法是通過JFrame add 一個 JPanel然后在JPanel做paint |
|
|
|
|
|
|
| |
本周最热论坛帖子
|