Topic: [请教]用覆盖JFrame的paint方法画图的问题

  Print this page

1.[请教]用覆盖JFrame的paint方法画图的问题 Copy to clipboard
Posted by: macroxmu
Posted on: 2005-11-30 12:44

用覆盖paint(Graphics g)的方法画图,
把窗口最大化和最小化时是正常的,但是在改变窗口大小后绘制的图形就消失了,
请问是什么原因?是不是改变窗口大小这个事件无法repaint?
应该如何解决?
测试代码如下:
/* pai.java */
import javax.swing.*;
import java.awt.*;
public class pai extends JFrame{
public pai(){
this.setSize(800,500);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String args[]){
pai p=new pai();
}
public void paint(Graphics g){
g.drawLine(0,0,800,500);
}
}

2.Re:[请教]用覆盖JFrame的paint方法画图的问题 [Re: macroxmu] Copy to clipboard
Posted by: Infinite
Posted on: 2005-12-06 13:58

“但是在改变窗口大小后绘制的图形就消失了,“???
不明白什么意思,好像没有消失就是了。

3.Re:[请教]用覆盖JFrame的paint方法画图的问题 [Re: Infinite] Copy to clipboard
Posted by: macroxmu
Posted on: 2005-12-10 16:55

现在是可以啊,但是只要你双击标题栏把这个窗口最大化的话里面画的线就消失了。

4.Re:[请教]用覆盖JFrame的paint方法画图的问题 [Re: macroxmu] Copy to clipboard
Posted by: Infinite
Posted on: 2005-12-11 02:37

呵呵,我照做了,还是没问题,看看你提供的代码和你运行的版本有没有出入?
macroxmu wrote:
现在是可以啊,但是只要你双击标题栏把这个窗口最大化的话里面画的线就消失了。

5.Re:[请教]用覆盖JFrame的paint方法画图的问题 [Re: macroxmu] Copy to clipboard
Posted by: macroxmu
Posted on: 2005-12-12 21:42

不可能吧-_||
我用的是jdk1.5的
附件中左边是把窗口拉大之前的,右边是把窗口拉大之后的。
把窗口拉大之后里面画的线就消失了。
当时把它最小化后在还原又出现了。

6.Re:[请教]用覆盖JFrame的paint方法画图的问题 [Re: macroxmu] Copy to clipboard
Posted by: losfound
Posted on: 2005-12-14 22:10

窗口大小改变时重画窗口:

import javax.swing.*;
import java.awt.*;
import java.awt.event.ComponentAdapter;
import java.awt.event.ComponentEvent;

public class pai extends JFrame {
public pai() {
this.setSize(800, 500);
this.setVisible(true);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
}

public static void main(String args[]) {
pai p = new pai();
p.addComponentListener(new ComponentAdapter() {
public void componentResized(ComponentEvent e) {
e.getComponent().repaint();
}
});
}

public void paint(Graphics g) {
g.drawLine(0, 0, 800, 500);
}
}

7.Re:[请教]用覆盖JFrame的paint方法画图的问题 [Re: macroxmu] Copy to clipboard
Posted by: fairy_ap
Posted on: 2005-12-15 15:31

俺也一样试过了,那个确实可以正常显示啊,即使与最大化来回切换也是显示正常的啊:)


   Powered by Jute Powerful Forum® Version Jute 1.5.6 Ent
Copyright © 2002-2021 Cjsdn Team. All Righits Reserved. 闽ICP备05005120号-1
客服电话 18559299278    客服信箱 714923@qq.com    客服QQ 714923