当前位置: 首页 > 面试题库 >

在Swing组件中使用时间延迟以迭代方式显示String数组的内容。爪哇

韩征
2023-03-14
问题内容

我试图在Java Swing组件中以幻灯片形式显示一个字符串数组(一个一个地显示)。我还试图在迭代之间添加延迟时间。

我试图通过使用JTextArea并向其中添加一个动作侦听器来做到这一点。这是我现在拥有的代码:

private class myActionListener implements ActionListener {
    public void actionPerformed(ActionEvent e) {
        // A BUNCH OF TEXT PROCESSING

        //NOTE: myInfo.getContents() returns an ArrayList<myType>.
        Iterator<myType> iterator = myInfo.getContents().iterator();

        int i = 0;
        while (iterator.hasNext()) {
            myTextArea.setText(iterator.next().toString());
            // to add time betweeen iterations i wanted to use the thread
            // delay method.
        }
    }
}

我的代码不起作用,因为JTextArea没有动作侦听器。

更新
说明:许多答复指出,我应该对JTextArea使用ActionListener;否则,请执行以下操作。但是,Eclipse并没有向我显示JTextArea具有一个名为addActionListener的方法。

我有点卡在这里, 您认为哪种Java Swing组件在这种情况下最合适?

我数组中的文本可能很长,所以单行标签不是一个好的选择。

我还有什么其他选择或方法?

非常感谢您的帮助和建议。


问题答案:

用你的ActionListener一个组合javax.Swing.Timer。在ActionListener分配给Timer将在与指定的延迟定期调用。

有关更多信息,请参见计时器教程。



 类似资料:
  • 问题内容: 我正在尝试在上设置工具提示。我用来确定要显示哪些工具提示文本的方法相当占用CPU资源- 因此,我只想在鼠标停止短时间(例如1秒钟)后才显示它。 我知道我可以使用,但是这将立即设置所有摆动组件上的工具提示的延迟时间,我不希望这样。 问题答案: 好吧,我建议在另一个线程上执行CPU密集型任务,以免中断正常的GUI任务。 那将是一个更好的解决方案。(而不是试图解决问题) 编辑 您可以为中的每

  • 这是我的代码,当我执行时,我得到的只是一个空白窗口。首先,当我尝试执行时,我得到了这个错误: “无法对非静态字段面板进行静态引用” 所以我把它放在构造器中,但什么都不会显示。

  • 我得到了一个apiendpoint,它返回一个数组地址和一些地址的价格信息,但它不返回lat/lang,所以我使用geocode在地图上显示地址的标记,并在每次单击标记时显示infowindow。现在,我希望infowindow的内容是从Endpoint返回的数组中的地址的价格。希望到目前为止一切都很清楚。现在的问题是,每次我单击marker,infowindow只显示每个infowindow上数

  • 问题内容: 我想展示如何使用进行合并排序。我想做的是在一段时间后使可见。我尝试了很多方法,但是所有这些都同时出现,没有中间延迟。 但是,当我单击按钮时,所有标签都出现在相同的momenet上,尽管我一直保持延迟。 问题答案: 有很多原因导致此方法无法正常工作。首先,这种方式行不通。它在后台等待,直到给定的延迟过去,然后调用注册的s 方法。 其次,如果它确实以这种方式工作,它将阻止事件调度线程,从而

  • 我有一个方法,我想延迟一秒钟,而延迟运行应该有一个加载动画(ProgressBar)。 当该方法现在运行时,加载动画不会出现。当我不调用超时时,它会出现,当我不使它不可见后,它会在超时后出现。 那么,在超时运行时,如何显示加载动画?线程也有同样的问题。睡眠(1000)

  • 问题内容: 我有一个React组件,其中有许多子组件。我不希望立即渲染子组件,而是要经过一段时间的延迟(对于每个子组件而言,它们是统一的还是不同的)。 我想知道-有没有办法做到这一点? 问题答案: 我认为最直观的方法是给孩子一个“ wait” ,在从父代传递过来的持续时间内隐藏该组件。通过将默认状态设置为隐藏,React仍会立即渲染组件,但是直到状态更改后它才可见。然后,您可以设置为调用一个函数,