我有一个 JTable,用户可以在其中选择一行。如果发生这种情况,我想短时间“突出显示”页面的另一部分,以表明这是用户交互后更改的页面部分。
所以我的问题是:实现这一目标的最佳方法是什么?目前,我通过设置该面板的背景颜色并启动 SwingWorker 来完成此操作,该 SwingWorker 在短暂延迟后将颜色设置回来。它按预期工作,但是使用这样的 SwingWorker 是一个好主意吗?这种方法有什么缺点吗?你会如何解决这个问题?
提前致谢。
最佳答案
我想 Swing Timer 会是一个更好的选择,因为它为所有计划的事件重用单个线程并在主事件循环上执行事件代码。因此,在您的 SelectionListener
代码中,您执行以下操作:
// import javax.swing.Timer;
final Color backup = componentX.getBackground();
componentX.setBackground(Color.YELLOW);
final Timer t = new Timer(700, new ActionListener() {
public void actionPerformed(ActionEvent e) {
componentX.setBackground(backup);
}
});
t.setRepeats(false);
t.start();
关于java - swing - 组件的短时间突出显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11396859/