gpt4 book ai didi

java - 如何在 Swing 应用程序中实现循环逻辑?

转载 作者:行者123 更新时间:2023-11-29 07:49:52 25 4
gpt4 key购买 nike

我的标题有点含糊,但我想不出一个明确的标题。

首先,用两个代码片段来建立引用点(希望我没有错别字):

使用Scanner输入

'''
Scanner sc = new Scanner(System.in);
for (int i=0; i<10; ++ i) {
System.out.print("Please input a value:");
String answer = sc.next();
// do something with this string
}
...

使用JOptionPane输入:

...
for (int i=0; i<10; ++ i) {
String answer = JOptionPane.showInputDialog("Please input a value");
// do something with this string
{

因此,在上述示例中,我们要求用户输入一个值固定次数。如何在 Swing 应用程序中实现相同类型的功能?

我可以使用 JPanel(作为其内容 Pane )创建 JFrame 并添加 JLabel(带提示)和 JTextField 添加到此面板。我还可以为文本字段创建 ActionListener,使用 ActionPerformed 方法来检索值并处理它。字符串处理不是一项长时间运行的任务,因此我认为我不需要单独的工作线程。

由于我们无法真正强制用户做任何事情,我打算使用javax.swing.Timer 来确保及时响应。

我不明白的是如何实现循环或任何其他形式的控制以确保用户输入(和程序检索)值的确切次数。如何将此类逻辑注入(inject)事件驱动系统?

一旦我设置了 GUI 部分并提交了它的实例以在 EDT 上调用,我似乎放弃了所有控制。

我最初提交我的文本字段时是否将 setEditable 设置为 false,然后创建一个将 invokeAndWaitRunnable< 的循环 启用编辑(并在 ActionPerformed 中禁用它)?

请指出正确的方向。

最佳答案

好吧,这取决于你想如何实现它......

你可以...

提供所需的字段数(在您的示例中为 10 个)和一个 JButton,以便在填写完所有字段之前,单击该按钮只会向用户提供一条消息并重新聚焦无效字段...

你可以...

为用户提供单个字段(和标签)和按钮。在他们填写该字段之前,按下按钮会提示他们并重新聚焦该字段。

当用户填写所需信息并单击按钮时,您会增加一个计数器,重置该字段并继续直到您的计数器达到它的限制...

你可以...

使用只有一列五行的 JTable...这是对第一个解决方案的简化(取决于您的观点)解决方案...

关于java - 如何在 Swing 应用程序中实现循环逻辑?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22058121/

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