相关疑难解决方法(0)

如何在摇摆中淡化图像?

我有一个继承自JPanel的类,上面有一个图像,我想设置一个小动画来显示面板/图像,然后在事件触发时将其淡出.

我可能会设置一个线程并触发动画,但我该怎么做呢?

java animation swing fade

23
推荐指数
3
解决办法
2万
查看次数

Javax.swing计时器重复正常,但ActionListener不执行任何操作

我试图在文本字段中闪烁背景颜色.我的计时器设置如下:

 Flash flash = new Flash();                      //set up timer
 tmr = new javax.swing.Timer(1000, new Flash());
 tmr.addActionListener(flash);
 tmr.setInitialDelay(0);
 tmr.setRepeats(true);
 tmr.start();                 
Run Code Online (Sandbox Code Playgroud)

我的actionListener如下:

 static class Flash implements ActionListener
 {
    public void actionPerformed(ActionEvent evt)
    {
        if (flasher)
        {
            SpreademPanel.historyPnl.NameTxt.setBackground(Color.white);
        }
        else
        {
            SpreademPanel.historyPnl.NameTxt.setBackground(Color.pink);
        }
        flasher = !flasher;
    } //actionPerformed
} //Flash
Run Code Online (Sandbox Code Playgroud)

现在,当我把它放在调试中并按照动作执行时,程序会反复执行闪存并在两个备选项之间切换.但是在屏幕上,只有第一个切换发生.之后,没有动作,虽然闪光灯仍在运转.

这有什么不对?

在此先感谢您的帮助.

java swing javax.swing.timer

4
推荐指数
1
解决办法
7316
查看次数

Java Swing:延迟后更改文本

基本上,我有这个游戏,一旦猜到正确答案,它开始一个新单词的新游戏.我想显示Correct!但三秒后,将其更改为空字符串.我怎么做?

我的尝试:

if (anagram.isCorrect(userInput.getText()))
    {

        anagram = new Anagram();
        answer.setText("CORRECT!");
        word.setText(anagram.getRandomScrambledWord());
        this.repaint();
        try
        {
        Thread.currentThread().sleep(3000);
        }
        catch (Exception e)
        {
        }
        answer.setText("");

    } else
    {
        answer.setForeground(Color.pink);
        answer.setText("INCORRECT!");
    }
Run Code Online (Sandbox Code Playgroud)

编辑:

我的解决方案

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
    {
        // TODO add your handling code here:
    if (anagram.isCorrect(userInput.getText()))
    {
        answer.setText("CORRECT!");

        ActionListener taskPerformer = new ActionListener()
    {
    public void actionPerformed(ActionEvent evt)
    {
        anagram = new Anagram();
        word.setText(anagram.getRandomScrambledWord());
        answer.setText("");
        userInput.setText("");
    }
    };
    Timer timer = new Timer(3000, taskPerformer);
    timer.setRepeats(false);
    timer.start();
    } else
    {
        answer.setForeground(Color.pink); …
Run Code Online (Sandbox Code Playgroud)

java swing timer delay

3
推荐指数
1
解决办法
2150
查看次数

标签 统计

java ×3

swing ×3

animation ×1

delay ×1

fade ×1

javax.swing.timer ×1

timer ×1