2013-05-10 34 views
5

Tôi đang tạo một máy tính để kiểm tra kỹ năng của mình trong java. Làm thế nào có thể làm cho các con số để hiển thị trong jTextfield cho đến khi tôi nhấn một nút để tính toán các con số; tôi muốn mọi số hiển thị trong trường văn bản. Ví dụ nếu tôi ép 1 và zero tôi muốn textfield có 10.Máy tính Java thêm số vào trường văn bản

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

bạn có thể chia sẻ mã hoàn chỉnh. có vẻ như bạn không thêm văn bản –

+0

Xem [ví dụ này] (http://stackoverflow.com/a/7441804/418556) để biết các mẹo. –

Trả lời

1

bạn nên thêm với in.getText() thay vì chuỗi rỗng

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

Để tiết kiệm cho mình những rắc rối của rất nhiều if-else bạn có thể tạo một mảng của JButton s và đi qua chúng trong một vòng lặp.
Vì vậy, nút 0 sẽ có mặt tại chỉ số 0.

Sau đó, bạn có thể thêm văn bản vào JTextField như:

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 

Bạn có thể lặp như sau:

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

Đây là hướng dẫn của Oracle về chủ đề này: http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html

2

Bạn muốn thêm văn bản vào bất kỳ nội dung nào đã có - hãy thử một cái gì đó như

in.setText(in.getText() + num) thay vì in.setText("" + num)