java按钮被点击事件

我有一个JFrame页面,该页面有三个按钮A、B、C;当我点击按钮A,执行事件A;当我点击按钮B,执行事件B;当我点击按钮C,执行事件A和事件B两个事件。请问怎么写代码?谢谢大神!

添加按钮监听。回见内容写成方法,然后调用即可。大概像下面这样

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.JButton;
public class Test {
public static void main(String [] args){
JButton A = new JButton("A");
JButton B = new JButton("B");
JButton C = new JButton("C");
A.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
methodA();
}
});
B.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
methodB();
}
});
C.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
methodA();
methodB();
}
});
}
public static void methodA(){
//执行A方法
}
public static void methodB(){
//执行B方法
}
}

追问

是这样的,我想做成这样:
一个JFrame页面,该页面有三个按钮A、B、C;当我点击按钮A,执行事件A;当我点击按钮B,执行事件B;当我点击按钮C,执行事件A和事件B两个事件。该页面是与数据库相连的,当我进入的时候,从数据库去取一个数据(该数据有三个值A、B、C)。执行程序的时候,如果从数据库取到的数是A,自动执行按钮A的事件(我并没有点击按钮A);取到什么值,执行的就是相对应的按钮的事件。

追答

JFrame的代码我就不写给你了,那个代码量太大了。就算我写了这里也贴不下。
我不明白你到底想做什么。既然根据从数据库中取出来的值执行方法,那你这三个按钮的意义又在哪里呢?
不过不管你要写成什么样的,总体过程是没变的。首先你可以先从数据库中取数据,然后根据取出来的数据做个判断,用if-else也行,switch-case也行,生成不同的分支,然后写A和B两个方法,根据分支选择执行A或者B。
这样有什么难的嘛?

追问

JAVA自动点击 按钮的代码怎么写。 Delphi 中,程序自动点击某个按钮A,我只要陪写上 A.Click;程序就会执行按钮A的事件。请问一下:Java 中也可以这样么?JAVA写成A.Click就报错。我是想先从数据库取值,自动执行界面上的按钮的事件,当我点击按钮的时候,我会修改数据库的值。我就是想让程序打开的时候,得到上次程序执行的事件。

追答

因为已经将处理事务的过程写成方法了,所以你只需要直接调用哪个方法即可。java里没有自动点击按钮的方法,但是可以自动调用方法。比如你在加载完这个界面后直接调用methodA(),那不就和自动点击A没区别了吗?

追问

这个methodA()就是A的事件,这个按钮A的事件是:

这个就是那个按钮的事件,我怎么调用这个事件使他自动执行事件的操作。

追答

抽取成方法啊。比如下面代码:

public void actionPerformed(ActionEvent e){
    int a = 0 ;
    int b = 0;
    int c = a + b;
}

你可以将代码变成这样:

public void actionPerformed(ActionEvent e){
    methodA();
}

private void methodA(){
    int a = 0 ;
    int b = 0;
    int c = a + b;
}

当需要自动调用的时候直接调用methodA()即可。

温馨提示:内容为网友见解,仅供参考
第1个回答  2017-08-31
可以把要执行的过程,写成2个函数

void funcA(){
}

void funcB(){
}

在A按钮事件中,就执行 funcA
在B按钮事件中,就执行funcB
同样,在C按钮事件中,执行 funcA和 funcB

~
~
~
~
相似回答