Java 如何实现窗口重绘?
如题,在窗口画一条线,最小化后能重新显示出来,如何修改下面的带码:importjava.awt.*;importjava.awt.event.*;publicclassG...
如题,在窗口画一条线,最小化后能重新显示出来,如何修改下面的带码:
import java.awt.*;
import java.awt.event.*;
public class GUIPaint extends Frame{
/**
* @param args
*/
Frame f = new Frame();
int x;
int y;
int endx;
int endy;
public void paint(Graphics g)
{
g.drawLine(x, y, endx, endy);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
GUIPaint gg = new GUIPaint();
gg.getAdd();
}
public void getAdd()
{
f.setSize(300,300);
f.setVisible(true);
f.addWindowListener(new MyListener());
f.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
x=e.getX();
y=e.getY();
}
public void mouseReleased(MouseEvent e)
{
endx=e.getX();
endy=e.getY();
Graphics p = f.getGraphics();
p.drawString(x+","+y, x, y);
p.drawString(e.getX()+","+e.getY(),e.getX(),e.getY());
p.setColor(Color.BLUE);
p.drawLine(x,y, e.getX(), e.getY());
}
});
}
}
class MyListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
e.getWindow().dispose();
}
}
本人是菜鸟,最好能解释一下,谢谢~ 展开
import java.awt.*;
import java.awt.event.*;
public class GUIPaint extends Frame{
/**
* @param args
*/
Frame f = new Frame();
int x;
int y;
int endx;
int endy;
public void paint(Graphics g)
{
g.drawLine(x, y, endx, endy);
}
public static void main(String[] args) {
// TODO Auto-generated method stub
GUIPaint gg = new GUIPaint();
gg.getAdd();
}
public void getAdd()
{
f.setSize(300,300);
f.setVisible(true);
f.addWindowListener(new MyListener());
f.addMouseListener(new MouseAdapter(){
public void mousePressed(MouseEvent e)
{
x=e.getX();
y=e.getY();
}
public void mouseReleased(MouseEvent e)
{
endx=e.getX();
endy=e.getY();
Graphics p = f.getGraphics();
p.drawString(x+","+y, x, y);
p.drawString(e.getX()+","+e.getY(),e.getX(),e.getY());
p.setColor(Color.BLUE);
p.drawLine(x,y, e.getX(), e.getY());
}
});
}
}
class MyListener extends WindowAdapter
{
public void windowClosing(WindowEvent e)
{
e.getWindow().dispose();
}
}
本人是菜鸟,最好能解释一下,谢谢~ 展开
3个回答
展开全部
你要绘制的代码写在paint方法里
在需要绘制的地方调用repaint方法
在需要绘制的地方调用repaint方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
继承自JFrame使用
this.repaint();方法
this.repaint();方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据你的题意,改变窗口大小要重绘最简单就是调用repaint,但这个最好要有触发条件,建议加上WindowListener,这个接口中有窗体改变的相应函数,然后在这个函数中加上repaint,而且在这个相应函数中你还可以添加其他的功能,不如改变这条直线的其实位置,要不然很可能在缩小窗口时,你画的直线无法看到,网上有java api.chm这个帮助文档,建议下载,有什么不懂得,可以在其中找详细解释!
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询