2013-05-10 19 views
5

Tworzę kalkulator, aby sprawdzić swoje umiejętności w języku Java. Jak sprawić, by liczby pojawiały się w polu jText, dopóki nie naciśniesz jednego przycisku, aby obliczyć liczby; Chcę, żeby wszystkie liczby pojawiały się w polu tekstowym. na przykład jeśli wciśnięty 1 i zero chcę textfield mieć 10.Kalkulator Java dodaj numery do pola tekstowego

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

można udostępnić kompletny kod. wygląda na to, że nie dodajesz tekstu. –

+0

Zobacz [ten przykład] (http://stackoverflow.com/a/7441804/418556) po wskazówki. –

Odpowiedz

1

należy dołączyć z in.getText() zamiast pusty ciąg

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

Aby zaoszczędzić sobie kłopotów z wiele z if-else można utworzyć tablicę z JButton s i przejść nad nimi w pętli.
Więc przycisk 0 będzie w indeksie 0.

Następnie można dołączyć tekst do JTextField jak:

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 

Można pętli w następujący sposób:

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

Oto samouczek firmy Oracle na ten temat: http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html

2

Chcesz dołączyć tekst do tego, co już istnieje - spróbuj czegoś jak

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