java 为什么线总在改变窗口大小后才显示

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

public class draw extends JFrame{
int x,y,x1,y1;

public static void main(String[] args) {
new draw().drawing();
}
public void drawing()
{
setSize(500,500);
addMouseListener(new mintor());
setVisible(true);

System.out.print("success");

}

public void paint(Graphics g){
g.drawLine(x, y, x1, y1);
System.out.print("success1");

}

class mintor extends MouseAdapter
{
public void mousePressed(MouseEvent e){
x=e.getX();
y=e.getY();
}

public void mouseReleased(MouseEvent e){
x1=e.getX();
y1=e.getY();
}
}
}

在你的paint(Graphics g)方法体里面加入super.paint(g);
改变窗口大小会自动调用repaint方法,repaint的时候自动执行paint方法;所以改变窗口大小会出现你的直线。
你可以在mousePressed(MouseEvent e)跟mouseReleased(MouseEvent e)里面加入repaint();语句就可以了!但是效果可能还不是你想要的,所以你还要用到鼠标移动事件,才可以!不懂的话继续追问!
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-05-02
因为你没有doLayout
layout();
第2个回答  2013-05-02
你监听的是鼠标是件,所以在鼠标点击之后才触发绘制的方法。。。是这样吧、?
相似回答