问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

Java GUI的Button按钮事件

发布网友 发布时间:2022-04-26 09:56

我来回答

3个回答

热心网友 时间:2022-06-27 02:03

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Xiti13
{ public static void main(String args[])
{ new WindowCanvas();
}
}
class Mycanvas extends Canvas
{ int x,y,r;
Color c=new Color(0,0,0);
Mycanvas()
{ setBackground(Color.cyan);
}
public void setColor(Color c)
{ this.c=c;
}
public void setX(int x)
{ this.x=x;
}
public void setY(int y)
{ this.y=y;
}
public void setR(int r)
{ this.r=r;
}
public void paint(Graphics g)
{ g.setColor(c);
g.fillOval(x,y,2*r,2*r);
}
}
class WindowCanvas extends JFrame implements ActionListener
{ Mycanvas canvas;
TextField inputR,inputX,inputY;
Button buttonRed,buttonGreen,buttonYellow,buttonEnter;
Color c=new Color(0,0,0);
int x=0,y=0,r=0;
WindowCanvas()
{ canvas=new Mycanvas();
inputR=new TextField(5);
inputX=new TextField(4);
inputY=new TextField(4);
buttonRed=new Button("red");
buttonRed.setBackground(Color.red);
buttonGreen=new Button("green");
buttonGreen.setBackground(Color.green);
buttonYellow=new Button("yellow");
buttonYellow.setBackground(Color.yellow);
buttonEnter=new Button("确定");
buttonEnter.addActionListener(this);
buttonRed.addActionListener(this);
buttonGreen.addActionListener(this);
buttonYellow.addActionListener(this);
Panel pNorth=new Panel(),pSouth=new Panel();
pNorth.add(new Label("颜色:"));
pNorth.add(buttonRed);
pNorth.add(buttonGreen);
pNorth.add(buttonYellow);
pNorth.add(new Label("圆的位置坐标:"));
pNorth.add(inputX);
pNorth.add(inputY);
pSouth.add(new Label("圆的半径:"));
pSouth.add(inputR);
pSouth.add(buttonEnter);
add(canvas,BorderLayout.CENTER);
add(pNorth,BorderLayout.NORTH);
add(pSouth,BorderLayout.SOUTH);
setBounds(100,100,500,200);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e)
{ Button b=(Button)e.getSource();
if(b==buttonEnter)
{ try{x=Integer.parseInt(inputX.getText());
y=Integer.parseInt(inputY.getText());
r=Integer.parseInt(inputR.getText());
canvas.setX(x);
canvas.setY(y);
canvas.setR(r);
canvas.setColor(c);
canvas.repaint();
}
catch(NumberFormatException ee)
{ x=0;y=0;r=0;
}
}
else
{ c=b.getBackground();
canvas.setX(x);
canvas.setY(y);
canvas.setR(r);
canvas.setColor(c);
canvas.repaint();
}
}
}

上面是第一个代码,那个可以随便改圆的位置,下面是第二个:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class SignalFrame extends JFrame implements ActionListener
{ Button button1,button2,button3;
Color c;
SignalFrame()
{
button1=new Button("红灯");
button2=new Button("绿灯");
button3=new Button("黄灯");
button1.setBackground(Color.red);
button2.setBackground(Color.green);
button3.setBackground(Color.yellow);
button1.addActionListener(this);
button2.addActionListener(this);
button3.addActionListener(this);
add(button1);
add(button2);
add(button3);
setLayout(new FlowLayout());
setBounds(100,100,200,300);
setVisible(true);
validate();
}
public void paint(Graphics g)
{ g.setColor(c);
g.fillOval(50,80,100,100);
}
public void update(Graphics g)
{ g.clearRect(50,80,100,100);
paint(g);
}
public void actionPerformed(ActionEvent e)
{ if(e.getSource()==button1)
{ c=Color.red;
repaint();
}
else if(e.getSource()==button2)
{ c=Color.green;
repaint();
}
else if(e.getSource()==button3)
{ c=Color.yellow;
repaint();
}
}
}
public class HLD
{ public static void main(String args[])
{ SignalFrame frame;
frame=new SignalFrame();
}
}
看你喜欢那个了,我编了很长时间啊,楼主给我分吧,哈哈!

热心网友 时间:2022-06-27 02:04

代码的话很多,我只能告诉你一下方法。

在JPanel里画,在里面取到graphics(paint方法的参数就是)。

按钮添加actionlistener,事件体是用graphics的setcolor改变颜色,然后调用jpanel的repaint方法重绘一下就行了。

热心网友 时间:2022-06-27 02:04

在三个按钮的click事件里分别把red、blue和orange赋给圆的属性ForeColor的值就可以了。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
高启强与陈书婷结婚是哪一集 陈舒婷和高启强第几集结婚 高启强陈书婷结婚是第几集 高启强和陈书婷结婚是第几集 高启强和陈书婷第几集结的婚 狂飙高启强第几集和大嫂在一起的 2021年清明节时间(是公历几月几号) js中类似`${xx,xxxy}`的语句是什么意思? 用支付宝帐号注册的淘宝帐号但是淘宝显示未绑定支付宝帐号如图 银行黑户影响子女什么 button事件 JSP 页面中有个Button按钮,我想在进入页面后就让它自动点击一次,怎么... 如何为BUTTON按钮添加事件 梦到自己有三块手表,有什么寓意? 梦见捡到四块手表 基本户不注销是否影响法人代表以后贷款和注册新公司? 梦见捡了个挎包里面有钱有手表还有其他东西是什么意思? 公司已经注销,银行基本户没有注销,会有影响吗? 银行公司基本户不注销可以吗? 公司已注销,公司银行基本户可以不注销吗 公司银行账户不注销 直接换成另一个公保留这个账号行吗? 营业执照注销了,银行基本户没注销,银行通知去销户,存款人也不处理,银行该如何? 公司营业执照注销以后那么一般不注销我查查隐瞒一般户不注销基本户注销可以吗 手机号被别人的绑定了自己的微信登不上怎么办? 我的手机号被别人用微信绑定了自己的登不上了该怎么办? 微信手机号码被别人绑定了怎么办 就是手机号,被别人绑定了怎么找回? 我的手机号被别人用微信绑定了自己的登不上了该怎么办? 手机号码被别人绑定了微信,怎么样解绑然后在绑定自己的呢? 怎么设置电脑待机快捷键 按钮控件(BUTTON)的事件有多少种 多个button事件,如何判断哪个被点击 请写出button的单击事件 table里加的Button按钮单击事件怎么写 java事件处理button如何单击按钮退出 javascript的button按钮的onclick事件怎么写 HTML问题:一个button标签的onclick没写的话,它是怎么触发事件的? ASP.NET多个按钮button调用同一事件,如何区分是哪一button被点击 我的button按钮的onclick事件调用JS里的方法怎么不触发 怎样取消js button按钮的事件 被别人用手机号绑定了 我该怎么办 怎么找回我的微信 我真的很急怎么办 我的手机号被别人用微信绑定了自己的登不上了该怎么办? 手机号被别人的绑定了自己的微信登不上怎么办? 空调保温棉上加锡纸作用 热水管套好保温棉管后再包一层铝箔纸,这层铝箔纸起什么作用? 铝板幕墙保温棉需要锡箔纸吗 保温袋里面的那一层反光的面料是什么材料啊? 保温岩棉锡箔纸会大面积着火吗? 做幕墙的保温岩棉的防水锡纸层易燃吗? 保温袋外面是锡纸吗