java按钮事件源代码 javaweb按钮事件

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

//导入3个图形界面,常用的包

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

public class ButtonDemo extends JFrame {

public ButtonDemo() {

JButton jbHello = new JButton("Hello");//按钮

jbHello.addActionListener(new ActionListener() {//给按钮添加事件接收器

@Override

public void actionPerformed(ActionEvent e) {//接受到事件后,进行下面的处理

System.out.println("Hello World");// 控制台打印输出

JOptionPane.showMessageDialog(null, "Hello World");// 弹出对话框,显示Hello World

}

});

add(jbHello);//把按钮添加到窗体

// 窗体属性的设置

setLayout(new FlowLayout());// 窗体流式布局, 按添加顺序从左到右排列组件

setSize(300, 200);// 宽300像素,高200

setLocationRelativeTo(null);// 窗体放在显示器中间

setTitle("HelloWord");// 窗体的标题

setDefaultCloseOperation(EXIT_ON_CLOSE);// 点击窗体右上角的关闭按钮时,结束程序

setVisible(true);// 窗体可见

}

public static void main(String[] args) {

new ButtonDemo();

}

}

看明白了吧, addActionListener是关键

进阶版 :加法计算器.  代码稍微长一点,.但注释很多

参考代码如下

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

//AddFrame继承自JFrame类, 并且实现了ActionListener 接口

public class AddFrame extends JFrame implements ActionListener {

// 组件

JTextField jtf1, jtf2, jtf3;// 文本框,用于:显示数字

JButton jbAdd;// 按钮,用于:当点击按钮时,计算出加法的结果

JButton jbClear;// 按钮, 用于,清空数字

public AddFrame() {// 构造方法

// 初始化组件

jtf1 = new JTextField(5);// 长度为5的文本框

JLabel jl = new JLabel("+");//文字标签

jtf2 = new JTextField(5);

jtf3 = new JTextField(6);

jtf3.setEditable(false);

jbAdd = new JButton("=");

jbAdd.addActionListener(this);//因为本类已经实现了ActionListener接口,所以添加事件的接收器就是自己(this)

jbClear = new JButton("清除");

jbClear.addActionListener(this);

//把组件,添加到窗体

add(jtf1);

add(jl);

add(jtf2);

add(jbAdd);

add(jtf3);

add(jbClear);

// 窗体属性的设置

setLayout(new FlowLayout());//窗体流式布局, 按添加顺序从左到右排列组件

setSize(380, 100);// 宽380像素,高100

setLocationRelativeTo(null);// 窗体放在显示器中间

setTitle("加法计算器");// 窗体的标题

setDefaultCloseOperation(EXIT_ON_CLOSE);// 点击窗体右上角的关闭按钮时,结束程序

setVisible(true);// 窗体可见

}

/*

*  实现ActionListener接口 就必须重写actionPerformed方法

*/

@Override

public void actionPerformed(ActionEvent e) {// 当事件产生后,就会执行actionPerformed里的方法

JButton jbTemp= (JButton) e.getSource();//得到事件源

if(jbTemp==jbAdd) {//如果是从jbAdd产生的事件.那么执行加法操作

//因为是简单案例,就不判断和处理,用户乱输入字母汉字等情况,导致的异常了

int x = Integer.parseInt(jtf1.getText());//从文本框1得到字符串,并转化成数字

int y = Integer.parseInt(jtf2.getText());

jtf3.setText(x+y+"");//计算2个数的和,并显示在文本框3上

}else if(jbTemp==jbClear) {//如果事件源是 jbClear,那么清除文本框的文字

jtf1.setText("");

jtf2.setText("");

jtf3.setText("");

}

}

// main方法

public static void main(String[] args) {

new AddFrame();//创建一个AddFrame的实例

}

}

求助能以按钮事件、文本框事件的方式,以图形用户界面的形式显示6位随机数的Java源程序?

package com.xd.gui;

import java.awt.FlowLayout;

import java.awt.event.ActionEvent;

import java.awt.event.ActionListener;

import java.awt.event.FocusEvent;

import java.awt.event.FocusListener;

import javax.swing.JButton;

import javax.swing.JFrame;

import javax.swing.JTextArea;

public class RandomNum {

private JFrame frame;

private JButton btn;

private JTextArea text;

public static void main(String[] args) {

new RandomNum();

}

public RandomNum() {

init();

}

public void init() {

frame=new JFrame();

btn =new JButton();

text=new JTextArea();

//设置组件属性

btn.setText("生成随机数");

text.setRows(5);

text.setColumns(20);

//设置流式布局,增加组件

frame.setLayout(new FlowLayout());

frame.add(btn);

frame.add(text);

//设置窗体起始位置

frame.setBounds(600, 300, 300, 300);

//添加功能

fun ();

textFun();

//设置窗体可见

frame.setVisible(true);

}

public void fun() {

btn.addActionListener(new ActionListener() {

public void actionPerformed(ActionEvent e) {

text.setText((int)(Math.random()*899999+100000)+"");

}

});

}

//文本框获得焦点显示6位随机数

public void textFun() {

text.addFocusListener(new FocusListener() {

@Override

public void focusGained(FocusEvent e) {

text.setText((int)(Math.random()*899999+100000)+"");

}

@Override

public void focusLost(FocusEvent e) {

//失去焦点什么都不做

}

});

}

}

java中什么是事件源,事件的处理过程是什么

在java的图形界面开发中,要让图形界面接收到用户的操作,就要给各个组件添加事件处理机制。

事件 :  为了实现用户对图形界面组件的操作,定义了一些事件

鼠标事件:单击,双击,滚轮等....

键盘事件 按下键盘,松开按键等...

焦点事件 :焦点获得 ,焦点失去...

窗口事件: 窗口打开,窗口关闭等....

事件源: 发声事件的场所. 比如按钮被点击,那么事件源就是按钮

文本框获得焦点. 那么事件源就是文本框

窗口被关闭,那么事件源就是窗口

事件源-----产生-----事件------被事件监听器发现------进入事件处理代码

import java.awt.Frame;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class DemoAction extends Frame {//窗口就是事件源

public DemoAction() {

this.setTitle("窗口关闭");

this.setLocation(400, 200);

this.setSize(360, 280);

//给窗口绑定一个事件监听器

this.addWindowListener(new WindowAdapter() {

@Override

public void windowClosing(WindowEvent e) {//事件WindowEvent

System.exit(0);//关闭窗口事件, 那么退出jvm

}

});

this.setVisible(true);

}

public static void main(String[] args) {

new DemoAction();

}

}


名称栏目:java按钮事件源代码 javaweb按钮事件
当前链接:http://pwwzsj.com/article/dojpggo.html