当前位置: 首页 > 知识库问答 >
问题:

JTextField的闪烁颜色

马边浩
2023-03-14

我有一个JTextField,如果它有无效内容,它就会被清除。我想背景闪烁红色一到两次,以表明用户,这已经发生了。我尝试过:

field.setBackground(Color.RED);
field.setBackground(Color.WHITE);

但它是红色的,时间很短,不可能被看到。有什么提示吗?

共有2个答案

酆景辉
2023-03-14

您需要扩展公共类Timer这样做:

private class FlashTask extends TimerTask{
    public void run(){
       // set colors here
    }
}

您可以设置计时器,使其以您喜欢的任何时间间隔执行,以创建闪烁效果

根据文件:

公共void scheduleAtFixedRate(TimerTask任务,长延迟,长周期)

将指定的任务调度为重复的固定速率执行,在指定的延迟之后开始。

祁飞翰
2023-03-14

正确的解决方案是使用Swing计时器,因为计时器的ActionListener中的所有代码都将在Swing事件线程上调用,这可以防止出现间歇性错误。例如:

public void flashMyField(final JTextField field, Color flashColor, 
     final int timerDelay, int totalTime) {
  final int totalCount = totalTime / timerDelay;
  javax.swing.Timer timer = new javax.swing.Timer(timerDelay, new ActionListener(){
    int count = 0;

    public void actionPerformed(ActionEvent evt) {
      if (count % 2 == 0) {
        field.setBackground(flashColor);
      } else {
        field.setBackground(null);
        if (count >= totalCount) { 
          ((Timer)evt.getSource()).stop();
        }
      }
      count++;
    }
  });
  timer.start();
}

它将通过flashMyField调用(someTextField,Color.RED,5002000)

警告:代码尚未编译或测试。

 类似资料:
  • 问题内容: 我不知道这有可能吗? 但是我想更改光标闪烁的颜色…通常是黑色的.... 我正在做一个基于java-swing的项目,在那…要求之一就是更改光标闪烁的颜色。 … 这可能吗? 问题答案: “光标”用于指不闪烁的鼠标光标。 因此,我假设您正在谈论文本组件中使用的插入符号: 编辑: 以上建议针对一个文本字段执行此操作。要为所有文本字段更改它,您应该能够在程序开始时使用以下命令:

  • 我怎样才能使背景色在每次按下按钮时连续闪现2个新颜色?现在它只显示两种颜色,但它们不会连续闪烁或闪烁。

  • 这款应用目前以黑屏开始,当按下中间的按钮时,它会在每次按下按钮时改变背景颜色。但我希望应用程序闪烁或闪烁2种不同的颜色:而不是只显示一种不闪烁的颜色。

  • 这是因为在开发模式下,为了通过 Webpack 实现热加载,CSS代码是打包在 JavaScript 代码中,并动态打到页面中去,从而元素重绘引起了闪烁。 不用担心,在生产模式下,CSS代码会单独打包至独立的文件并置于head标签内,不会出现页面闪烁的现象。

  • 我在Lollipop上的共享元素转换中看到了奇怪的事情。共享元素在开始动画之前闪烁(请看视频https://www.youtube.com/watch?v=DCoyyC_S-9A) 我不知道为什么会这样。但是,当我添加

  • 我试图用pyplay制作一个游戏,我几乎完成了,但我想让被画在墙上的盒子不闪烁,这些红色的盒子在整个游戏中闪烁,我不想让它们闪烁,最后,我在一个if条件下调用player碰撞函数,在这里每当我制作新的碰撞器时,我每次都要在if条件下添加函数,我想要的是碰撞器对象自动调用这个函数,而不需要我在if语句中为碰撞器的每个实例调用它对象。请指导我如何这样做。