2013-05-10 13 views
5

Ich mache einen Taschenrechner, um meine Fähigkeiten in Java zu testen. Wie kann man die Zahlen im jTextfield erscheinen lassen, bis ich einen Knopf gedrückt habe, um die Zahlen zu berechnen; Ich möchte, dass alle Zahlen im Textfeld angezeigt werden. wenn ich zum Beispiel 1 gedrückt und Null i das Textfeld 10.Java Rechner Zahlen zum Textfeld hinzufügen

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); 
    } 
} 

The screenshot

+0

können Sie den vollständigen Code teilen. es scheint, dass Sie den Text nicht anhängen –

+0

Sehen Sie [dieses Beispiel] (http://stackoverflow.com/a/7441804/418556) für Tipps. –

Antwort

1

Sie mit in.getText() statt leerer String anhängen soll haben wollen

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); 

    } 

} 
2

Um sich den Aufwand sparen von viele if-else Sie können ein Array von JButton s erstellen und über sie in einer Schleife gehen.
So Taste 0 werden 0

Dann bei Index sein, der Sie den Text der JTextField als anfügen können:

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 

Sie Schleife wie folgt:

for(int i=0;i<jbuttonArray.length;i++){ 
    if(e.getSource()==jbuttonArray[i]){ 
     //insert above code here; 
    } 
} 

Hier ist die Tutorial von Oracle zu diesem Thema: http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html

2

Sie möchten den Text an was bereits vorhanden ist anhängen - versuchen Sie etwas wie

in.setText(in.getText() + num) statt in.setText("" + num)