java事件处理.docx

上传人:b****7 文档编号:23622328 上传时间:2023-05-19 格式:DOCX 页数:11 大小:206.16KB
下载 相关 举报
java事件处理.docx_第1页
第1页 / 共11页
java事件处理.docx_第2页
第2页 / 共11页
java事件处理.docx_第3页
第3页 / 共11页
java事件处理.docx_第4页
第4页 / 共11页
java事件处理.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

java事件处理.docx

《java事件处理.docx》由会员分享,可在线阅读,更多相关《java事件处理.docx(11页珍藏版)》请在冰豆网上搜索。

java事件处理.docx

java事件处理

运行结果:

点击red按钮

点击green按钮

点击blue按钮

点击圆的内部一次

点击圆的内部二次

点击圆的内部三次

点击圆的内部四次

点击圆的内部五次

圆循环变回背景色

在圆的内部时,光标为十字

代码如下:

importjavax.swing.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.awt.font.FontRenderContext;

importjava.awt.geom.Ellipse2D;

importjava.awt.geom.Point2D;

importjava.awt.geom.Rectangle2D;

@SuppressWarnings("unused")

publicclassButtonCircle{

publicstaticvoidmain(String[]args){

EventQueue.invokeLater(newRunnable()

{

publicvoidrun()

{

JFramef=newButtonFrame();

f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

f.setVisible(true);

}

});

}}

@SuppressWarnings("serial")

classButtonFrameextendsJFrame{

publicButtonFrame(){

this.setTitle("ColorTest");

this.setSize(DEFAULT_WIDTH,DEFAULT_HEIGHT);

this.add(newButtonPanel());

}

publicstaticfinalintDEFAULT_WIDTH=800;

publicstaticfinalintDEFAULT_HEIGHT=600;

}

@SuppressWarnings("serial")

classButtonPanelextendsJPanel{

publicButtonPanel(){

JButtonb1=newJButton("Red");//构造按钮

JButtonb2=newJButton("Green");

JButtonb3=newJButton("Blue");

this.add(b1);//将按钮添加到面板上

this.add(b2);

this.add(b3);

//用适当的颜色构造监听器对象

ColorActiona1=newColorAction(Color.RED);

ColorActiona2=newColorAction(Color.GREEN);

ColorActiona3=newColorAction(Color.BLUE);

//将监听器注册到组件上

b1.addActionListener(a1);

b2.addActionListener(a2);

b3.addActionListener(a3);

//实现两个监听器对象

MouseHandlermh=newMouseHandler();

MouseMotionHandlermoh=newMouseMotionHandler();

this.addMouseListener(mh);

this.addMouseMotionListener(moh);

}

/**/

publicvoidpaintComponent(Graphicsg){

Graphics2Dg2=(Graphics2D)g;

super.paintComponent(g2);

doublecenterX=400;//设置圆的位置

doublecenterY=300;

doubleradius=150;

Ellipse2Dcircle=newEllipse2D.Double();

circle.setFrameFromCenter(centerX,centerY,centerX+radius,centerY+radius);

g2.draw(circle);//画圆

}

privateclassColorActionimplementsActionListener{

privateColorbackgroundColor;

publicColorAction(Colorc){

backgroundColor=c;

}

publicvoidactionPerformed(ActionEvente){//将圆设置为指定颜色

Graphics2Dg=(Graphics2D)getGraphics();

g.setPaint(backgroundColor);

g.fillOval(250,150,300,300);

}

}

classMouseHandlerextendsMouseAdapter{

inti=1;

publicvoidmouseClicked(MouseEvente){

intx=e.getX();

inty=e.getY();

Point2Dp=newPoint2D.Double(x,y);

Graphics2Dg=(Graphics2D)getGraphics();

Colorc=getBackground();

if((((p.getX()-400)*(p.getX()-400)+(p.getY()-300)*(p.getY()-300))<=22500)&&e.getClickCount()==1){

if(i%4==1){//点击一下,设置为背景色

g.setPaint(c);

g.fillOval(250,150,300,300);

i++;}

elseif(i%4==2){//点击第二下,设置为红色

g.setPaint(Color.RED);

g.fillOval(250,150,300,300);

i++;}

elseif(i%4==3){//点击第三下,设置为绿色

g.setPaint(Color.GREEN);

g.fillOval(250,150,300,300);

i++;}

elseif(i%4==0){//点击第四下,设置为蓝色

g.setPaint(Color.BLUE);

g.fillOval(250,150,300,300);

i++;}

}

}

}

classMouseMotionHandlerimplementsMouseMotionListener{

publicvoidmouseMoved(MouseEventme){

Point2Dp=me.getPoint();

if(((p.getX()-400)*(p.getX()-400)+(p.getY()-300)*(p.getY()-300))<=22500){//若鼠标处于圆范围内

setCursor(Cursor.getPredefinedCursor(

Cursor.CROSSHAIR_CURSOR));//将光标变为十字光标

}else

setCursor(Cursor.getDefaultCursor());

}

@Override

publicvoidmouseDragged(MouseEvente){

//TODOAuto-generatedmethodstub

}}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 表格模板 > 表格类模板

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1