如何在JTextArea中的nextline中显示递增的整数

时间:2015-02-25 09:24:44

标签: java swing append newline jtextarea

我创建了一个JTextArea,我在其中创建了一个变量,当单击一个按钮时该变量会递增。但是我希望增加的数字显示在下一行中,旧值保留在上一行。

到目前为止,我已经为动作监听器编写了以下代码,并且它正在递增但是替换旧值并且不会显示在下一行:

 public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
      if(e.getActionCommand().equals("Inc")) 
    {

      String h = "/n";
      int result = Integer.parseInt(area.getText())+1;
      String aString = Integer.toString(result);

      area.setText(String.valueOf(aString));
    }

2 个答案:

答案 0 :(得分:1)

使用JTextArea append(String str) method

public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
  if(e.getActionCommand().equals("Inc")) 
{
  String text=area.getText();
  int lastValue=Integer.parseInt(text.charAt(text.length())); //gets the last value of the JTextArea text
  String aString = Integer.toString(lastValue+1); //Increment this value      
  area.append("\n"+String.valueOf(aString)); //Append this value to the JTextArea
}

它将给定文本附加到JTextArea的末尾,并使用“\ n”它插入一个新行。

答案 1 :(得分:-1)

您正在显示增量结果,您首先将结果存储在结果中,并将其字符串版本存储在aString中。无论如何,原始值(未增加的)正在迷失。尝试类似:

public void actionPerformed(ActionEvent e) {
    // TODO Auto-generated method stub
      if(e.getActionCommand().equals("Inc")) 
    {

      String h = "/n";
      int result = Integer.parseInt(area.getText())+1;
      String aString = Integer.toString(result);
      String toBeDisplayed = Integer.toString(result-1) + h + aString.  

      area.setText(String.valueOf(toBeDisplayed ));
    }