我目前正在java
尝试制作一个计算器。我创建了所有数字按钮,操作,数字显示等。我还将功能添加到每个按钮。一切都运作良好。然后我添加了一个按钮,我可以插入一个点(小数点)。但是这不适合插入JTextField
。以下是按钮1的actionPerfomed()
和dot
按钮....
one.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
numdisp.setText(numdisp.getText()+one.getText()); //numdisp is the number displayer(JTextField)
}
//Other buttons like button2,button3,button4,etc.... are not mentioned as they have the same set of code....
dot.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
numdisp.setText(dot.getText()+numdisp.getText());
});
当您按one
按钮时,JTextField
会显示数字1.然后按下dot
按钮。 JTextField
显示" 1。"。到目前为止一切都很好。然后再按1。预期的结果是" 1.1"但相反它显示" 11。"。为什么会出现这个奇怪的问题?怎么解决?
答案 0 :(得分:1)
ActionListeners中的逻辑是不同的。在一种情况下,您可以在开头添加按钮的文本。在另一种情况下,您可以在最后添加按钮的文本。
因此,更好的解决方案是不使用不同的ActionListener,而是共享相同的ActionListener,因此所有按钮的逻辑都是相同的,您不必创建多个侦听器。这样你就不太可能犯错误。
结帐setText method with panel and button。此示例将向您展示如何: