Search code examples
javaswingjtextfield

Is there any way to set all result values in the textfield? It sets only last value as expected but i want all to be set in the resultTextField


I am creating a program which converts a string input to binary/octal string and shows the result in a textfield, but only last value (binary/octal string of 1 individual character ) gets shown as expected. But is there any other way to show all values?

    resultTextField = new JTextField();
    resultTextField.setBounds(10,170,200,100);
    resultTextField.setForeground(Color.green);
    resultTextField.setBackground(Color.black);
    resultTextField.setOpaque(true);
    resultTextField.setVisible(visibilty);


@Override
public void actionPerformed(ActionEvent e) {    
    if (e.getSource()==binaryButton) {
    convertToBinary();//to convert the string to binary string
    }
    
    if(e.getSource()== octaButton) {
    convertToOcta();//to convert to octal string
    }       
}   

public void convertToBinary() {
visibilty = true;

converting input text (maintextField (String)) to char array

char[] textArray = mainTextField.getText().toCharArray(); 
for(int ascii : textArray)//this will convert individual characters to their ascii value
{
    String binaryString = Integer.toBinaryString(ascii);//converts ascii value to binary string
    resultTextField.setText(binaryString); //to get result
    resultTextField.setVisible(visibilty);
    //System.out.println(binaryString);
    }
}

same thing but as in converToBinary but input gets converted octal string

public void convertToOcta() {
visibilty = true;
String text = mainTextField.getText();
char[] textArray = text.toCharArray();
for(int ascii : textArray)
{
String octalString = Integer.toOctalString(ascii);
    resultTextField.setText(octalString);
    //System.out.println(octalString); 
    }
resultTextField.setVisible(visibilty);

    }
  }

Solution

  • You just need to include the contents that were already there

    String binaryString = Integer.toBinaryString(ascii);//converts ascii value to binary string
    resultTextField.setText(resultTextField.getText() + binaryString); //to get result