gpt4 book ai didi

java - 如何使用 JMenu 项在 JTextArea 中的单独行上显示整数?

转载 作者:行者123 更新时间:2023-12-02 09:48:51 25 4
gpt4 key购买 nike

我正在使用一个带有四个 JMenuItems(名为 Inc、Dec、Reset、Quit)的 JMenu(名为 Count)。当我单击任何菜单项时,我希望它在 JTextArea 中显示整数。例如,每次我单击 Inc 时,它都应该显示从 0 开始垂直列出的整数。现在的问题是,当我按 Dec 菜单项时,它不会采用列出的最后一个数字。

我尝试使用 getText 方法,但我不断收到 NumberFormatException 并说输入字符串是一堆数字,例如:

0
1
2
3
4

据我所知,我知道我需要能够跟踪最后一个数字,以便所有菜单项(除了退出菜单项之外)都可以访问它并更改它。我只是不知道该怎么做。

这是我尝试过的一种方法,它给了我上面提到的错误。

//newLine = "\n";

public void actionPerformed(ActionEvent ae) {

String ac = ae.getActionCommand();

if(ac.equals("Inc")) {

jta.append(count + newLine);
count++;

}
else if(ac.equals("Dec")) {

count = Integer.parseInt(jta.getText());
countText = Integer.toString(count);
jta.append(countText + newLine);
count--;

}
else if(ac.equals("Reset")) {

jta.selectAll();
jta.replaceSelection("0");
count = 0;

}
else if(ac.equals("Quit")) {

System.exit(0);

}

}

我在期待

0
1
2
3
4
3
2
1

当我点击 Inc 和 Dec 时显示在 TextArea 中

但它只是

0
1
2
3
4

然后我得到一个 NumberFormatException 说输入字符串是:

0
1
2
3
4

如果可能,我希望输入字符串只是文本区域中的最后一个整数。

我希望这是有道理的。这是我第一次在 stackoverflow 上发帖。

最佳答案

当您获取文本时,它返回“0 1 2 3 4”,无法解析整数,因此出现异常。如果要获取文本字段中的最后一个整数,则需要检索文本并找到表示最后一个整数的子字符串。查看 String 的 javadoc,尤其是 lastIndexOf()、split() 和 substring() 方法。

如果您将每个整数放在单独的行上,并跟踪实例变量“count”中输入的最后一个数字,那么您只需调用 jta.append( (count-1) + newLine); 根本不需要检索文本。

请注意,您的代码不会保存最后输入的数字 - 它会保存 (last+1)

关于java - 如何使用 JMenu 项在 JTextArea 中的单独行上显示整数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56465661/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com