如何解决Java GUI如何在按下JButton时发出事件?
我想做一个键盘。如果我按下按钮,它必须出现在2.(pic)。我认为这是制作计算器的类似方法。我可以给我一些建议吗?
实际上,我什至不知道这项权利是否正确。我可以制作这样的JButton吗?
这是我的代码。
package assignment;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.LayoutManager;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class Random extends JFrame {
Random() {
setTitle("보안 키보드");
setLayout(new BorderLayout(10,10));
showNorth();
showCenter();
showSouth();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setSize(450,500);// 창크기를 정한다
setVisible(true);}
void showNorth() {
JTextField area1 = new JTextField();
JTextField area2 = new JTextField();
JPanel panel = new JPanel(new GridLayout(2,0));
}
area2.setText("보안문자를 입력하세요.");
area1.setHorizontalAlignment(JTextField.CENTER);
area2.setHorizontalAlignment(JTextField.CENTER);
area1.setEditable(false);
area2.setEditable(false);
panel.add(area1);
panel.add(area2);
add(panel,BorderLayout.NORTH);
}
void showCenter() {
JPanel p3 = new JPanel(new GridLayout(4,4));
p3.setLayout(new GridLayout(5,5,5));
// 버튼 생성하기
JButton ba = new JButton("");
JButton bb = new JButton("");
JButton bc = new JButton("");
JButton bd = new JButton("");
JButton b0 = new JButton("0");
JButton b1 = new JButton("1");
JButton b2 = new JButton("2");
JButton b3 = new JButton("3");
JButton b4 = new JButton("4");
JButton b5 = new JButton("5");
JButton b6 = new JButton("6");
JButton b7 = new JButton("7");
JButton b8 = new JButton("8");
JButton b9 = new JButton("9");
JButton er1 = new JButton("하나\n지움");
JButton erall = new JButton("전체\n지움");
p3.add(ba);// 버튼을 패널에 부착시킨다
p3.add(bb);
p3.add(bc);
p3.add(bd);
p3.add(b0);
p3.add(b1);
p3.add(b2);
p3.add(b3);
p3.add(b4);
p3.add(b5);
p3.add(b6);
p3.add(b7);
p3.add(b8);
p3.add(b9);
p3.add(er1);
p3.add(erall);
add(p3,BorderLayout.CENTER); // 패널을 프레임의 중앙에 추가한다.
}
void showSouth() {
JPanel p4 = new JPanel();
JButton complete = new JButton("입력완료"); // 입력완료 버튼 생성
p4.add(complete);
p4.setLayout((LayoutManager) new FlowLayout(FlowLayout.TRAILING));
add(p4,BorderLayout.SOUTH);
}
public static void main(String[] args) {
new Random();
}
}
解决方法
首先,代码需要极端的重构。但是,作为您的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");
}
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。