我正在制作一个计算器来测试我在java中的技能。如何在jTextfield中显示数字,直到我按下一个按钮来计算数字;我希望每个数字都显示在文本字段中。例如,如果我按1和零,我希望文本字段有10。
int num;
JTextField in = new JTextField(20); // input field where numbers will up;
public void actionPerformed(ActionEvent e) {
if (e.getSource() == bouttons.get(0)) {
num = 0;
in.setText("" + num);
}
if (e.getSource() == bouttons.get(1)) {
int num = 1;
in.setText("" + num);
}
}
答案 0 :(得分:2)
为了节省很多if-else
的麻烦,你可以创建一个JButton
的数组并循环遍历它们。
所以按钮0将在索引0处。
然后,您可以将文字附加到JTextField
:
String alreadyDisplayed = in.getText(); //get the existing text
String toDisplay = alreadyDisplayed + Integer.toString(loopCounter);// append the position to the text
in.setText(toDisplay);// display the text
您可以按如下方式循环:
for(int i=0;i<jbuttonArray.length;i++){
if(e.getSource()==jbuttonArray[i]){
//insert above code here;
}
}
以下是Oracle关于此主题的教程:http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html
答案 1 :(得分:2)
您希望将文本附加到已存在的内容中 - 尝试类似
的内容 in.setText(in.getText() + num)
代替in.setText("" + num)
答案 2 :(得分:1)
你应该附加in.getText()
而不是空字符串
int num ;
JTextField in = new JTextField(20); // input field where numbers will up;
public void actionPerformed(ActionEvent e) {
if (e.getSource() == bouttons.get(0)) {
num =0;
in.setText(in.getText() + num);
}
if (e.getSource() == bouttons.get(1)) {
int num = 1;
in.setText(in.getText() + num);
}
}
答案 3 :(得分:0)
您可以将ActionListener添加到数字按钮。例如:如果您有一个JButton b1,它向文本字段中添加了1 ...您可以这样使用它:
public void actionPerformed(ActionEvent e) {
/* I'm using equals method because I feel that it is more reliable than '==' operator
* but you can also use '=='
*/
if(e.getSource().equals(b1){
in.setText(in.getText + "1");
}
}
类似地,您可以为1,2,3 ...添加其他按钮,并像这样实现它。
希望这对您有帮助。...:-):-)