java - swing - 组件的短时间突出显示

标签 java swing swingworker

我有一个 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/

相关文章:

java - 登录 SwingWorker

java - 在 Cancel() 上停止 SwingWorker doInBackground() 中的持久方法

java - 尝试弄清楚递归基础知识

java - Android - 从静态 'helper' 方法注册接收器(无法获取上下文)?

java - 公开课 DiscoLight 帮助

java - 使用 FlowLayout 定位子面板

java - 使用 SwingWorker java 在线程池中等待任务

JAVA SPLIT - 分割而不删除空格

java - 如何将 JButton 传递给 Action Listener 类

java - JFrame中的图像显示