Java GUI如何在按下JButton时生成事件?

Java GUI如何在按下JButton时生成事件?,java,swing,jframe,jbutton,calculator,Java,Swing,Jframe,Jbutton,Calculator,我想做一个键盘。如果我按下按钮,它必须在2点出现。(图)。我认为这是一种制作计算器的类似方法。能给我一些建议吗 事实上我甚至不知道这是否正确。我做这样的按钮行吗 这是我的密码 包分配; 导入java.awt.BorderLayout; 导入java.awt.FlowLayout; 导入java.awt.GridLayout; 导入java.awt.LayoutManager; 导入javax.swing.JButton; 导入javax.swing.JFrame; 导入javax.swing.

我想做一个键盘。如果我按下按钮,它必须在2点出现。(图)。我认为这是一种制作计算器的类似方法。能给我一些建议吗

事实上我甚至不知道这是否正确。我做这样的按钮行吗

这是我的密码

包分配;
导入java.awt.BorderLayout;
导入java.awt.FlowLayout;
导入java.awt.GridLayout;
导入java.awt.LayoutManager;
导入javax.swing.JButton;
导入javax.swing.JFrame;
导入javax.swing.JPanel;
导入javax.swing.JTextField;
公共类随机扩展JFrame{
随机的{
标题(“보안 키보드");
setLayout(新边界布局(10,10));
showNorth();
展示中心();
showSouth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
设置大小(450500);//창크기를 정한다
setVisible(true);}
void showNorth(){
JTextField area1=新的JTextField();
JTextField area2=新的JTextField();
JPanel面板=新JPanel(新网格布局(2,0));
}
区域2.setText(“보안문자를 입력하세요.");
区域1.设置水平对齐(JTextField.中心);
区域2.设置水平对齐(JTextField.中心);
区域1.可编辑设置(假);
区域2.setEditable(假);
面板。添加(区域1);
面板。添加(区域2);
添加(面板,边界布局。北);
}
void showCenter(){
JPanel p3=新JPanel(新网格布局(4,4));
p3.设置布局(新网格布局(5,5,5,5));
// 버튼 생성하기
JButton ba=新JButton(“”);
JButton bb=新JButton(“”);
JButton bc=新JButton(“”);
JButton bd=新JButton(“”);
JButton b0=新JButton(“0”);
JButton b1=新JButton(“1”);
JButton b2=新JButton(“2”);
JButton b3=新JButton(“3”);
JButton b4=新JButton(“4”);
JButton b5=新JButton(“5”);
JButton b6=新JButton(“6”);
JButton b7=新JButton(“7”);
JButton b8=新JButton(“8”);
JButton b9=新JButton(“9”);
JButton er1=新JButton(“하나\N지움");
JButton erall=新JButton(“전체\N지움");
p3.加上(ba);//버튼을 패널에 부착시킨다
p3.添加(bb);
p3.添加(bc);
p3.添加(bd);
p3.添加(b0);
p3.增加(b1);
p3.添加(b2);
p3.添加(b3);
p3.添加(b4);
p3.添加(b5);
p3.添加(b6);
p3.添加(b7);
p3.添加(b8);
p3.添加(b9);
p3.添加(er1);
p3.添加(erall);
添加(p3,BorderLayout.CENTER);//패널을 프레임의 중앙에 추가한다.
}
void showSouth(){
JPanel p4=新的JPanel();
JButton complete=新JButton(“입력완료"); // 입력완료 버튼 생성
p4.添加(完成);
p4.setLayout((LayoutManager)新的FlowLayout(FlowLayout.training));
新增(p4,南部边界布局);
}
公共静态void main(字符串[]args){
新随机数();
}
}

首先,代码需要极度重构。但作为OOP初学者,让我们深入探讨您的问题。名为Random的类需要实现ActionListener接口并重写actionPerformed方法:

    @Override
public void actionPerformed(ActionEvent e) {

    }
然后,您要做的是添加操作侦听器并为按钮设置操作命令,例如:

button.addActionListener(this);
button.addActionCommand("button")
现在,您可以知道单击了哪个按钮,并在JTextField上表示了一些内容:

@Override
public void actionPerformed(ActionEvent e) {

        if(e.getActionCommand().equals("button")){
        textField.setText("button was clicked");
    }
}

将action Listener添加到您的按钮。阅读以了解更多信息。正如@KevinAnderson所说,您需要一个
ActionListener
,用于用户与组件的交互。请参阅,同时,我建议您创建JFrame的实例,而不是扩展JFrame。您的一些方法在您的类之外。请格式化这些方法。请ut英语用于评论和文本。