import java.awt.*;
import java.awt.event.*;
public class DrawLine extends Frame
{
int orgX;
int orgY;
int endX;
int endY;
Frame f=new Frame("DrawLine");
public static void main(String[] args)
{
//new DrawLine().init();
DrawLine d1=new DrawLine();
d1.init();
}
public void paint(Graphics g)
{
g.drawLine(orgX,orgY,endX,endY);
}
public void init()
{
f.setSize(500,350);
f.setBounds(100,100,500,350);
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.addMouseListener(new MouseAdapter()
{
//int orgX;
//int orgY;
public void mousePressed(MouseEvent e)
{
orgX=e.getX();
orgY=e.getY();
}
public void mouseReleased(MouseEvent e)
{
endX=e.getX();
endY=e.getY();
Graphics g=f.getGraphics();
g.setColor(Color.red);
g.setFont(new Font("隶书",/*Font.ITALIC|*/Font.BOLD,20));
//设置文本字体
//g.drawString(new String(orgX+","+orgY),orgX,orgY);
//打印鼠标按下时的坐标文本
//g.drawString(new String(e.getX()+","+e.getY()),e.getX(),e.getY());
//打印鼠标释放时的坐标文本
g.drawLine(orgX,orgY,endX,endY);
}
});
}
}
import java.awt.event.*;
public class DrawLine extends Frame
{
int orgX;
int orgY;
int endX;
int endY;
Frame f=new Frame("DrawLine");
public static void main(String[] args)
{
//new DrawLine().init();
DrawLine d1=new DrawLine();
d1.init();
}
public void paint(Graphics g)
{
g.drawLine(orgX,orgY,endX,endY);
}
public void init()
{
f.setSize(500,350);
f.setBounds(100,100,500,350);
f.setVisible(true);
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
f.addMouseListener(new MouseAdapter()
{
//int orgX;
//int orgY;
public void mousePressed(MouseEvent e)
{
orgX=e.getX();
orgY=e.getY();
}
public void mouseReleased(MouseEvent e)
{
endX=e.getX();
endY=e.getY();
Graphics g=f.getGraphics();
g.setColor(Color.red);
g.setFont(new Font("隶书",/*Font.ITALIC|*/Font.BOLD,20));
//设置文本字体
//g.drawString(new String(orgX+","+orgY),orgX,orgY);
//打印鼠标按下时的坐标文本
//g.drawString(new String(e.getX()+","+e.getY()),e.getX(),e.getY());
//打印鼠标释放时的坐标文本
g.drawLine(orgX,orgY,endX,endY);
}
});
}
}
你定义的f对象是Frame,不是DrawLine对象,所以当然不会执行paint方法了。
这样改试试:
DrawLine f = null;//new Frame("DrawLine");
。
public void init() {
f = this;
f.setSize(500, 350);
。
import java.awt.Font;
import java.awt.Frame;
import java.awt.Graphics;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;public class DrawLine extends Frame {
public static void main(String[] args) {
// new DrawLine().init();
DrawLine d1 = new DrawLine();
d1.init();
} int endX; int endY; //Frame f = new Frame("DrawLine"); int orgX; int orgY; public void init() {
setSize(500, 350);
setBounds(100, 100, 500, 350);
setVisible(true);
addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
});
addMouseListener(new MouseAdapter() {
// int orgX;
// int orgY;
public void mousePressed(MouseEvent e) {
orgX = e.getX();
orgY = e.getY();
} public void mouseReleased(MouseEvent e) {
endX = e.getX();
endY = e.getY();
repaint();
//Graphics g =
//g.setColor(Color.red);
//g.setFont(new Font("隶书",/* Font.ITALIC| */Font.BOLD, 20));
// 设置文本字体
// g.drawString(new String(orgX+","+orgY),orgX,orgY);
// 打印鼠标按下时的坐标文本
// g.drawString(new
// String(e.getX()+","+e.getY()),e.getX(),e.getY());
// 打印鼠标释放时的坐标文本
//g.drawLine(orgX, orgY, endX, endY);
}
});
} public void paint(Graphics g) {
Color c = g.getColor();
g.setColor(Color.RED);
g.drawLine(orgX, orgY, endX, endY);
g.setColor(c);
}
}