小编典典

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

java

我试图在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组件在这种情况下最合适?

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

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

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


阅读 221

收藏
2020-09-28

共1个答案

小编典典

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

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

2020-09-28