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