java 为什么线总在改变窗口大小后才显示
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;publicclassdrawextendsJFr...
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();
}
}
} 展开
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();
}
}
} 展开
3个回答
展开全部
在你的paint(Graphics g)方法体里面加入super.paint(g);
改变窗口大小会自动调用repaint方法,repaint的时候自动执行paint方法;所以改变窗口大小会出现你的直线。
你可以在mousePressed(MouseEvent e)跟mouseReleased(MouseEvent e)里面加入repaint();语句就可以了!但是效果可能还不是你想要的,所以你还要用到鼠标移动事件,才可以!不懂的话继续追问!
改变窗口大小会自动调用repaint方法,repaint的时候自动执行paint方法;所以改变窗口大小会出现你的直线。
你可以在mousePressed(MouseEvent e)跟mouseReleased(MouseEvent e)里面加入repaint();语句就可以了!但是效果可能还不是你想要的,所以你还要用到鼠标移动事件,才可以!不懂的话继续追问!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询