5

I am making a calculator to test my skills in java. How can make the numbers to show up in the jTextfield until i pressed one button to calculate the numbers; i want every numbers to show up in the textfield. for example if i pressed 1 and zero i want the textfield to have 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); } } 

The screenshot

2
  • can you share the complete code. it seems you are not appending the text Commented May 10, 2013 at 14:36
  • See this example for tips. Commented May 10, 2013 at 15:10

4 Answers 4

2

You want to append the text to whatever already is there - try something like

in.setText(in.getText() + num) instead of in.setText("" + num)

Sign up to request clarification or add additional context in comments.

Comments

2

To save yourself the hassle of a lot of if-else you can create an array of JButtons and go over them in a loop.
So button 0 will be at index 0.

Then, you can append the text to the JTextField as:

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 

You can loop as follows:

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

Here is the tutorial by Oracle on this subject: http://docs.oracle.com/javase/tutorial/uiswing/components/textfield.html

Comments

1

you should append with in.getText() instead of empty String

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

Comments

0

You could add ActionListener to the numeric button. For eg: if you have a JButton b1 that add 1 to the textfield... You could use it like this:

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

And similarly you could add other buttons for 1,2,3... and implement it like this.

Hope this will help you.... :-) :-)

Comments

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.