你好我已经创建了一个图形计算 在Java中。现在我想添加点击 事件到特定按钮以便 处理数据,我应该添加什么 我的代码?我想拥有 像Javascript中的“onclik”之类的东西。 最大谢谢!
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JLabel;
public class Fenetre extends JFrame{
private JPanel pan = new JPanel();
private JButton bouton1 = new JButton("C");
private JButton bouton2 = new JButton("+");
private JButton bouton3 = new JButton("-");
private JButton bouton4 = new JButton("*");
private JButton bouton5 = new JButton("/");
private JButton bouton6 = new JButton("1");
private JButton bouton7 = new JButton("2");
private JButton bouton8 = new JButton("3");
private JButton bouton9 = new JButton("4");
private JButton bouton10 = new JButton("5");
private JButton bouton11 = new JButton("6");
private JButton bouton12 = new JButton("7");
private JButton bouton13 = new JButton("8");
private JButton bouton14 = new JButton("9");
private JButton bouton15 = new JButton("0");
private JButton bouton16 = new JButton(".");
private JButton bouton17 = new JButton("=");
private JLabel ecran = new JLabel();
public Fenetre(){
ecran = new JLabel("0");
this.setTitle("Calculatrice");
this.setSize(300, 450);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
//Ajout du bouton à notre content pane
pan.setLayout(null);
ecran.setBounds(100,2,100,60);
bouton1.setBounds(220,60,60,60);
bouton2.setBounds(220,130,60,60);
bouton3.setBounds(220,200,60,60);
bouton4.setBounds(220,270,60,60);
bouton5.setBounds(220,340,60,60);
bouton6.setBounds(10,60,60,60);
bouton7.setBounds(80,60,60,60);
bouton8.setBounds(150,60,60,60);
bouton9.setBounds(10,130,60,60);
bouton10.setBounds(80,130,60,60);
bouton11.setBounds(150,130,60,60);
bouton12.setBounds(10,200,60,60);
bouton13.setBounds(80,200,60,60);
bouton14.setBounds(150,200,60,60);
bouton15.setBounds(10,270,60,60);
bouton16.setBounds(80,270,60,60);
bouton17.setBounds(150,270,60,60);
pan.add(ecran);
pan.add(bouton1);
pan.add(bouton2);
pan.add(bouton3);
pan.add(bouton4);
pan.add(bouton5);
pan.add(bouton6);
pan.add(bouton7);
pan.add(bouton8);
pan.add(bouton9);
pan.add(bouton10);
pan.add(bouton11);
pan.add(bouton12);
pan.add(bouton13);
pan.add(bouton14);
pan.add(bouton15);
pan.add(bouton16);
pan.add(bouton17);
this.setContentPane(pan);
this.setVisible(true);
}
}enter code here
答案 0 :(得分:2)
您可以使用addActionListener方法
此方法接受ActionListener
实例 - 这是一个带有一个方法的接口 - actionPerformed,这将在按下按钮时执行:
例如:
b1.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
// do whatever
}
}
);
有关于挥杆事件处理的教程,如this one,非常好
答案 1 :(得分:1)
您只需要在按钮上添加ActionListener
即可触发点击操作,如下所示:
bouton1.addActionListener(
new ActionListener() {
@Override
public void actionPerformed(final ActionEvent e) {
// do something here
}
}
);
How to Write an Action Listener
这相当于onclick
所以在您的特定情况下应该足够了,但如果您需要访问更多鼠标事件,则应该添加MouseListener
作为下一个:
bouton1.addMouseListener(
new MouseListener() {
@Override
public void mouseClicked(final MouseEvent e) {
...
}
@Override
public void mousePressed(final MouseEvent e) {
...
}
@Override
public void mouseReleased(final MouseEvent e) {
...
}
@Override
public void mouseEntered(final MouseEvent e) {
...
}
@Override
public void mouseExited(final MouseEvent e) {
...
}
}
);