在鼠标按下的两点之间画一条线
class Mouse extends JFrame{
int x,y,x1,y1,test;
JPanel p=new JPanel();
Mouse(){
this.getContentpane.add(p);
p.addMouseListener(new MousePress());
this.setSize(500,500);
this.show();
}
class MousePress extends MouseAdapter{
public void mousePressed(mouseEvent e){
test++;
x=e.getX();
y=e.getY();
if(test%2==0)
repaint();
}
}
public void paintComponent(Graphics g){
super.paintComponent();
g.drawLine(x,y,x1,y1);
}
}
有哪位大哥帮我改改
class Mouse extends JFrame{
int x,y,x1,y1,test;
JPanel p=new JPanel();
Mouse(){
this.getContentpane.add(p);
p.addMouseListener(new MousePress());
this.setSize(500,500);
this.show();
}
class MousePress extends MouseAdapter{
public void mousePressed(mouseEvent e){
test++;
x=e.getX();
y=e.getY();
if(test%2==0)
repaint();
}
}
public void paintComponent(Graphics g){
super.paintComponent();
g.drawLine(x,y,x1,y1);
}
}
有哪位大哥帮我改改
你给它们都弄好了就差不多了,还有,你让test单纯的++也有点太……
还不如让test 就为 0 或者 1 这两个值来的好……
import java.awt.*;
import java.awt.event.*;
class Mouse extends Frame{
int x,y,x1,y1;
int test=2;
Panel p=new Panel();
Mouse(){
this.add(p);
p.addMouseListener(new MousePress());
this.setSize(400,400);
this.show();
}
private class MousePress extends MouseAdapter{
public void mousePressed(MouseEvent e){
if(test%2==0){
x=e.getX();
y=e.getY();
}
else{
x1=e.getX();
y1=e.getY();
draw();
}
}
}
public void draw(){
Graphics g=this.getGraphics();
g.drawLine(x,y,x1,y1);
}
public static void main(String[] args){
new Mouse();
}
}
如果还不行。。哪位大哥能帮我做一下。。让我参考。。在下感激不尽啊~!
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class DrawLine extends JFrame {
private int x1,y1,x2,y2;
private int flag;
private JLabel status;
public DrawLine()
{
super("Drawing line between to points:");
flag=0;
status=new JLabel();
getContentPane().add(status,BorderLayout.SOUTH);
addMouseListener(
new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if(flag==0)
{
x1=e.getX();
y1=e.getY();
flag=1;
status.setText("["+x1+","+y1+"]"+"["+x2+","+y2+"]");
return;
}
if(flag==1)
{
x2=e.getX();
y2=e.getY();
draw();
}
status.setText("["+x1+","+y1+"]"+"["+x2+","+y2+"]");
}
});
setSize(400,165);
show();
}
public void draw()
{
Graphics g=this.getGraphics();
g.drawLine(x1,y1,x2,y2);
}
public static void main(String args[])
{
DrawLine app=new DrawLine();
app.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
}
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class DrawLine extends JFrame {
private int x1,y1,x2,y2;
private int flag;
private JLabel status;
public DrawLine()
{
super("Drawing line between to points:");
flag=0;
status=new JLabel();
getContentPane().add(status,BorderLayout.SOUTH);
addMouseListener(
new MouseAdapter()
{
public void mousePressed(MouseEvent e)
{
if(flag==0)
{ repaint();
x1=e.getX();
y1=e.getY();
flag=1;
status.setText
("["+x1+","+y1+"]"+"["+x2+","+y2+"]");
return;
}
if(flag==1)
{
x2=e.getX();
y2=e.getY();
draw();
flag=0;
}
status.setText
("["+x1+","+y1+"]"+"["+x2+","+y2+"]");
}
});
setSize(400,165);
show();
}
public void draw()
{
Graphics g=this.getGraphics();
g.drawLine(x1,y1,x2,y2);
}
public static void main(String args[])
{
DrawLine app=new DrawLine();
app.addWindowListener(
new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
}
);
}
}