gpt4 book ai didi

java - 从另一个按钮的 mouseClicked 方法访问一个按钮?

转载 作者:行者123 更新时间:2023-12-01 12:37:54 27 4
gpt4 key购买 nike

所以我对如何从另一个组件的 mouseClicked 方法访问其他屏幕组件/变量(我不知道如何调用它们,但是像文本框、按钮等)有点困惑。例如,假设单击一个按钮后,另一个按钮就会被禁用。我的意思是,在这个简单的计算器示例(带有两个文本框和一个加减按钮)中,它完全没有意义,但我只是想理解这个概念。使用其他编程语言,您可以直接访问它们,但是使用 java,我不确定......无论如何,这里是相关的代码:

     JButton btnAdd = new JButton("Add");
btnAdd.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int num1 = Integer.parseInt(textField.getText().toString());
int num2 = Integer.parseInt(textField_1.getText().toString());
int total = num1 + num2;
btnSubtract.setEnabled(false);
JOptionPane.showMessageDialog(null, total);
}
});

JButton btnSubtract = new JButton("Subtract");
btnSubtract.setBounds(144, 124, 89, 23);
frame.getContentPane().add(btnSubtract);
}
}

或者,如果我需要编辑其他内容,这里也是所有自动生成的代码:

public class SimpleCalcApp {

private JFrame frame;
private JTextField textField;
private JTextField textField_1;

/**
* Launch the application.
*/
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
SimpleCalcApp window = new SimpleCalcApp();
window.frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

/**
* Create the application.
*/
public SimpleCalcApp() {
initialize();
}

/**
* Initialize the contents of the frame.
*/
private void initialize() {
frame = new JFrame();
frame.setBounds(100, 100, 450, 300);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.getContentPane().setLayout(null);

textField = new JTextField();
textField.setBounds(147, 27, 86, 20);
frame.getContentPane().add(textField);
textField.setColumns(10);

textField_1 = new JTextField();
textField_1.setBounds(147, 59, 86, 20);
frame.getContentPane().add(textField_1);
textField_1.setColumns(10);

JButton btnAdd = new JButton("Add");
btnAdd.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int num1 = Integer.parseInt(textField.getText().toString());
int num2 = Integer.parseInt(textField_1.getText().toString());
int total = num1 + num2;
btnSubtract.setEnabled(false);
JOptionPane.showMessageDialog(null, total);
}
});
btnAdd.setBounds(144, 90, 89, 23);
frame.getContentPane().add(btnAdd);

JButton btnSubtract = new JButton("Subtract");
btnSubtract.setBounds(144, 124, 89, 23);
frame.getContentPane().add(btnSubtract);
}
}

我希望这只是一个简单的修复,但谁知道呢,Java 对于像我这样的新手来说似乎相当抽象。不管怎样,提前感谢大家的回答:)

最佳答案

您只需访问它即可。不要忘记将该字段设为final,因为您是从匿名类内部访问它。

JButton btnAdd = new JButton("Add");
final JButton btnSubtract = new JButton("Subtract");

btnAdd.addMouseListener(new MouseAdapter() {
@Override
public void mouseClicked(MouseEvent arg0) {
int num1 = Integer.parseInt(textField.getText().toString());
int num2 = Integer.parseInt(textField_1.getText().toString());
int total = num1 + num2;
btnSubtract.setEnabled(false);
JOptionPane.showMessageDialog(null, total);
}
});
btnAdd.setBounds(144, 90, 89, 23);
btnSubtract.setBounds(144, 124, 89, 23);

frame.getContentPane().add(btnAdd);
frame.getContentPane().add(btnSubtract);

关于java - 从另一个按钮的 mouseClicked 方法访问一个按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25406674/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com