Ⅰ java BUTTON事件
这个比较简单,在您的JFrame中的SOUTH加两个按钮(可以先放在JPanel中),用于控制JPanel的切换。在CENTER(默认)添加一个主JPanel,设置布局方式为CardLayout,每个Card放置一个JPanel,然后用按钮控制就行了。
Ⅱ java怎么给按钮添加事件
解决方法:
(1)public void actionPerformed(ActionEvent e) {
}
这么一个方法,然后再在构造方法里面添加注册事件,button.addActionListener(this);
(2)在res/layout中的activity_main.xml添加一个按钮,命名为button1。
(3)在MainActivity.Java中添加按钮事件绑定:
Ⅲ JAVA jbutton事件
JButton bt1= new JButton("按钮一");//声明 bt1 ,一个jbutton
bt1.addActionListener(this); //在后面监听 bt1
JButton bt2= new JButton("按钮二");//声明 bt2 ,一个jbutton
bt2.addActionListener(this); //在后面监听 bt2
你在actionCommand这个方法体里面添加多一个判断就可以了
if(e.getSource() == b1){
//do something
}else if(e.getSource() == b2){
//do something
}
Ⅳ Java点击button事件问题!求救!
已改好:如下
下面是Test .java
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class Test extends JFrame implements ActionListener{
JButton buttonRoom;
static RunTest room[] = new RunTest[5];
static int[] roomID = {1,2,3,4,5};
public static void main(String args[]) {
new Test().launchFrame();
}
public void launchFrame() {
setSize(300, 200);
this.setTitle("choose room");
setLocation(200, 300);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(new FlowLayout());
setVisible(true);
for (int i = 0; i < roomID.length; i++) {
buttonRoom = new JButton( i+"");
room[i] = new RunTest(roomID[i]);
add(buttonRoom);
buttonRoom.addActionListener(this);
}
}
public void actionPerformed(ActionEvent e) {
System.out.println("sss"+ e.getActionCommand());
int a=Integer.parseInt(e.getActionCommand());
// room[0] = new RunTest(a+1); 这是我自己写的,我觉得也行,下面是在你的基础上修改的
// room[0].room();
switch(a){
case 1:
room[0] = new RunTest(roomID[1]);room[0].room();break;
case 2:
room[1] = new RunTest(roomID[2]);room[1].room();break;
case 3:
room[2] = new RunTest(roomID[3]);room[2].room();break;
case 4:
room[3] = new RunTest(roomID[4]);room[3].room();break;
case 5:
room[4] = new RunTest(roomID[5]);room[4].room();break;
}
}
}
-----------------------------------------------------------------------------------------------------------
以下是RunTest .java
import javax.swing.JFrame;
public class RunTest extends JFrame {
int roomID;
public RunTest(int roomID){
this.roomID = roomID;
}
public void setRoomID(int roomID){
this.roomID = roomID;
}
public int getRoomID(){
return roomID;
}
public void room() {
setSize(400, 300);
this.setTitle("room"+roomID);
setLocation(600+roomID*4, 300+roomID*6);
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setLayout(null);
setVisible(true);
}
}
提醒两点,一是switch case用法后要加break;二是数组的坐标是从0开始的
Ⅳ java中,button事件
Button shutDown;
FirstOne1(String str) {
super(str);
Button shutDown = new Button("停止");
add(shutDown);
shutDown.addActionListener(this);
}
public void actionPerformed(ActionEvent event) {
if(event.getSource()==shutDown){
System.out.println("why??"); //此处按按钮后也无法print出来,为什么?
}
}
}
楼主,你在类的下面定义了一个成员变量shutdown 然后又在构造方法中定义了一个局部变量shutdown ,这样在给shutdown 添加监听器的时候,你实际是给局部变量shutdown 添加了监听器,而在你的事件里的event.getSource()==shutDown又是给成员变量定义的,简单的说,你界面里的shutDown是你构造器里的局部shutDown,而你事件里的shutDown是你成员变量的shutDown,两个不是同一个按钮,自然不会有反应
Button shutDown = new Button("停止");改成
shutDown = new Button("停止");就可以了
Ⅵ java中如何为button添加响应事件
你的界面类可以 implements ActionListener
然后实现 public void actionPerformed(ActionEvent e) { }
这样你的按钮应该加上Button.AddActionListener(this);
不过如果你有多于一个的Button就很麻烦了
也可以这样
File Interface.java
文件开始
class Interface extends JFrame{
......
Button1.addActionListener(Action1);
Button2.addActionListener(Action2);
......
}
class Action1 implement ActionListener{
public void actionPerformed(ActionEvent e){
// 实现按钮1行为的代码
....
}
}
class Action2 implement ActionListener{
// 实现按钮2行为的代码
public void actionPerformed(ActionEvent e){
....
}
}
文件结束
Ⅶ java中如何给button添加事件
Java Swing本身提供了现成的按钮控件JButton 创建一个新的按钮:JButton about = new JButton; 这个按钮该放到菜单区:toolBar.add(about); 要为按钮添加事件响应,需要使用about.addActionListener(this)来告诉程序监听按钮按下时的事件,ActionListener是一个程序接口。 public class KyodaiUI extends JFrame implements ActionListener {...}实现ActionListener接口是为了告诉程序我要进行事件处理了。 最后我们得添加响应事件的代码: public void actionPerformed(ActionEvent e) { if (e.getSource() == about) {
Ⅷ Java GUI的Button按钮事件
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();
}
}
看你喜欢那个了,我编了很长时间啊,楼主给我分吧,哈哈!
Ⅸ Java给按钮添加事件
赞一个, 提前学习, 做好预先 , 是个好习惯.
java图形界面主要有AWT, SWING, SWT, JavaFx等技术
JButton (按钮)是SWING里面很常用的组件. 直接添加按钮到窗口,并不会产生任何交互效果.
要想产生交互效果,就需要了解awt,swing的事件处理机制:
事件:用户对组件的一个操作,称之为一个事件;
事件源:发生事件的组件就是事件源;
事件处理器:负责处理事件的方法;
比如 点击按钮,弹出HelloWord,
那么 事件是 点击按钮 ,事件源就是按钮,事件处理器就会弹出对话框,显示HelloWord.
常用的事件(Event) 有:
鼠标事件(MouseEvent:鼠标按下,移入,移除,滚轮..)
键盘事件(KeyEvent:键盘按下,释放..)
动作事件(ActionEvent:当按钮、菜单项被点击,在JTextField中按Enter键时...触发该事件。)
按钮添加接收器, 不同的事件,接收器不同.
比如ActionEvent 那么他的接收器是ActionListener
KeyEvent 那么他的接收器就是KeyListener
基础知识,大概就是这些.
所以想要JButton产生交互,你就需要给他添加事件处理器,当发生这些事件时,出发该处理器,进行处理.
写2个例子,第一个简单的:点击按钮,弹出Hello World
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//AddFrame继承自JFrame类,并且实现了ActionListener接口
{
//组件
JTextFieldjtf1,jtf2,jtf3;//文本框,用于:显示数字
JButtonjbAdd;//按钮,用于:当点击按钮时,计算出加法的结果
JButtonjbClear;//按钮,用于,清空数字
publicAddFrame(){//构造方法
//初始化组件
jtf1=newJTextField(5);//长度为5的文本框
JLabeljl=newJLabel("+");//文字标签
jtf2=newJTextField(5);
jtf3=newJTextField(6);
jtf3.setEditable(false);
jbAdd=newJButton("=");
jbAdd.addActionListener(this);//因为本类已经实现了ActionListener接口,所以添加事件的接收器就是自己(this)
jbClear=newJButton("清除");
jbClear.addActionListener(this);
//把组件,添加到窗体
add(jtf1);
add(jl);
add(jtf2);
add(jbAdd);
add(jtf3);
add(jbClear);
//窗体属性的设置
setLayout(newFlowLayout());//窗体流式布局,按添加顺序从左到右排列组件
setSize(380,100);//宽380像素,高100
setLocationRelativeTo(null);//窗体放在显示器中间
setTitle("加法计算器");//窗体的标题
setDefaultCloseOperation(EXIT_ON_CLOSE);//点击窗体右上角的关闭按钮时,结束程序
setVisible(true);//窗体可见
}
/*
*实现ActionListener接口就必须重写actionPerformed方法
*/
@Override
publicvoidactionPerformed(ActionEvente){//当事件产生后,就会执行actionPerformed里的方法
JButtonjbTemp=(JButton)e.getSource();//得到事件源
if(jbTemp==jbAdd){//如果是从jbAdd产生的事件.那么执行加法操作
//因为是简单案例,就不判断和处理,用户乱输入字母汉字等情况,导致的异常了
intx=Integer.parseInt(jtf1.getText());//从文本框1得到字符串,并转化成数字
inty=Integer.parseInt(jtf2.getText());
jtf3.setText(x+y+"");//计算2个数的和,并显示在文本框3上
}elseif(jbTemp==jbClear){//如果事件源是jbClear,那么清除文本框的文字
jtf1.setText("");
jtf2.setText("");
jtf3.setText("");
}
}
//main方法
publicstaticvoidmain(String[]args){
newAddFrame();//创建一个AddFrame的实例
}
}
Ⅹ 关于java点击button启动事件的问题
可能是在操作数据结束之后没有更新控件根据你的描述感觉这个可能性比较大。
改法:只要在数据更新后 更新相应的控件即可。
可能是数据更新后没有再次从服务器取得新的数据,你的对象还是之前的对象,数据没有变,所以即使你更新页面,页面还是不变。
改法:数据更新后从新从服务器取回更新的数据,根据新数据进行控件的更新。