【发布时间】:2014-10-13 22:14:05
【问题描述】:
所以我对如何从另一个组件的 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 似乎相当抽象。无论如何,提前感谢任何答案的家伙:)
【问题讨论】:
-
我从您的标题中删除了标签。有关标题中标签的更多信息,您可以阅读元帖子meta.stackexchange.com/questions/19190/…
标签: java variables button methods call