【问题标题】:How to display incremented integer in nextline in JTextArea如何在 JTextArea 的下一行显示增量整数
【发布时间】:2015-04-27 05:28:14
【问题描述】:

我创建了一个 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));
    }

【问题讨论】:

标签: java swing append newline jtextarea


【解决方案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”插入一个新行。

【讨论】:

    【解决方案2】:

    您正在显示递增的结果,您首先将其存储在 result 中,并将其 String 版本存储在 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 ));
        }
    

    【讨论】:

    • 点击“Inc”后只显示1。
    • 要继续进行此操作,请按照其中一个答案中的说明使用“area.append”。
    猜你喜欢
    • 2015-04-26
    • 1970-01-01
    • 1970-01-01
    • 2019-10-21
    • 1970-01-01
    • 2023-01-10
    • 2020-02-19
    • 1970-01-01
    • 2012-04-28
    相关资源
    最近更新 更多