300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > java绘制矩形 鼠标_如何用java在面板上用鼠标绘制出一个矩形

java绘制矩形 鼠标_如何用java在面板上用鼠标绘制出一个矩形

时间:2018-07-20 14:45:18

相关推荐

java绘制矩形 鼠标_如何用java在面板上用鼠标绘制出一个矩形

展开全部

importjava.awt.*;

importjava.awt.geom.*;

importjavax.swing.*;

importjava.awt.event.*;

importjava.util.*;

publicclassTest{

publicstaticvoidmain(String[]args){

MyFrameframe=newMyFrame();

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frame.setVisible(true);

}

}

classMyFrameextendsJFrameimplementsActionListener{

MyPanelpanel=newMyPanel();

JToolBart;

JButtonobj1;

JButtonobj2;

JButtonobj3;

publicMyFrame(){

obj1=newJButton("Line");

obj2=newJButton("yuan");

obj3=newJButton("juxing");

t=newJToolBar();

obj1.addActionListener(this);

obj2.addActionListener(this);

obj3.addActionListener(this);

t=newJToolBar();

t.add(obj1);

t.add(obj2);

t.add(obj3);

ButtonGroupbuttonGroup=newButtonGroup();

setTitle("DrawTest");

setSize(W,H);

ContainercontentPane=getContentPane();

contentPane.add(t,BorderLayout.NORTH);

contentPane.add(panel,BorderLayout.CENTER);

}

publicvoidactionPerformed(ActionEvente){

if(e.getSource()==obj1)

panel.shape=0;//直线

if(e.getSource()==obj2)

panel.shape=1;//圆

if(e.getSource()==obj3)

panel.shape=2;//长方形

panel.repaint();//这里加一句

}

publicstaticfinalintW=400;

publicstaticfinalintH=400;

}

classMyPanelextendsJPanelimplementsMouseListener{

privateArrayListpointList=newArrayList();

intshape=-1;

intx1=0,y1=0;

intx2=0,y2=0;

inti=0;

MyPanel(){

addMouseListener(this);

}

publicvoidmousePressed(MouseEvente){

x1=e.getX();y1=e.getY();

pointList.add(newPoint(x1,y1));

}

publicvoidmouseReleased(MouseEvente){

x2=e.getX();y2=e.getY();

pointList.add(newPoint(x2,y2));

repaint();

}

publicvoidmouseClicked(MouseEvente){}

publicvoidmouseMoved(MouseEvente){}

publicvoidmouseEntered(MouseEvente){}

publicvoidmouseExited(MouseEvente){}

publicvoidpaintComponent(Graphicsg){

super.paintComponent(g);

System.out.println(pointList.size());

for(inti=0;i

switch(shape){

case0:Pointp1=pointList.get(i);

Pointp2=pointList.get(i+1);

g.drawLine(p1.x,p1.y,p2.x,p2.y);

break;//如果想让636f70793231313335323631343130323136353331333337386631三个图形一起显示去掉这里的break;语句

case1:p1=pointList.get(i);

p2=pointList.get(i+1);

intwidth1=p2.x-p1.x;

intheight1=p2.y-p1.y;

g.drawOval(p1.x,p1.y,width1,height1);

break;//如果想让三个图形一起显示去掉这里的break;语句

case2:p1=pointList.get(i);

p2=pointList.get(i+1);

intwidth2=p2.x-p1.x;

intheight2=p2.y-p1.y;

g.drawRect(p1.x,p1.y,width2,height2);

break;

default:System.out.println("pleaseonceagan!");

break;

}

}

}

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。