ホームページ >Java >&#&チュートリアル >Java Swing で色が変化する点滅ボタンを作成するにはどうすればよいですか?

Java Swing で色が変化する点滅ボタンを作成するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-03 08:17:13683ブラウズ

How Can I Create Flashing Buttons with Changing Colors in Java Swing?

Java でのボタンの点滅

Java Swing では、ボタンの外観を変更すると、データベースのステータスが変化したときなど、さまざまな状態を示すことができます。 。この記事では、ボタンの色を変更し、点滅効果を追加して特定のステータスを強調表示する方法について説明します。

ボタンの色の変更

ボタンの色を変更するには、次のコマンドを使用できます。 setForeground() メソッドを使用してテキストの色を変更します。対応する setBackground() メソッドは背景色に影響しますが、すべてのプラットフォームで表示されるわけではありません。別の方法は、ボタンの背景として色付きの JPanel を使用することです。

点滅効果の追加

点滅効果を作成するには、Timer オブジェクトを利用できます。 Timer は actionPerformed() メソッドを繰り返し呼び出して、ボタンの色を定期的に変更できるようにします。タイマー間隔を 100 ミリ秒などの短い期間に設定すると、点滅効果が得られます。

コード例

次のコード スニペットは、毎秒色が変わる点滅ボタン:

import java.awt.Color;
import java.awt.EventQueue;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.Timer;

public class ButtonTest extends JPanel implements ActionListener {

    private static final int N = 4;
    private static final Random rnd = new Random();
    private final Timer timer = new Timer(1000, this);
    private final List<ButtonPanel> panels = new ArrayList<ButtonPanel>();

    public ButtonTest() {
        this.setLayout(new GridLayout(N, N, N, N));
        for (int i = 0; i < N * N; i++) {
            ButtonPanel bp = new ButtonPanel(i);
            panels.add(bp);
            this.add(bp);
        }
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        for (JPanel p : panels) {
            p.setBackground(new Color(rnd.nextInt()));
        }
    }

    private static class ButtonPanel extends JPanel {

        public ButtonPanel(int i) {
            this.setBackground(new Color(rnd.nextInt()));
            this.add(new JButton("Button " + String.valueOf(i)));
        }
    }

    public static void main(String[] args) {
        EventQueue.invokeLater(new Runnable() {

            @Override
            public void run() {
                JFrame f = new JFrame("ButtonTest");
                f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                ButtonTest bt = new ButtonTest();
                f.add(bt);
                f.pack();
                f.setLocationRelativeTo(null);
                f.setVisible(true);
                bt.timer.start();
            }
        });
    }
}

このコードは、ボタンのグリッドを生成します。ランダムに選ばれた色で。タイマーは、actionPerformed() メソッドを毎秒呼び出します。これにより、すべてのボタンの色が別のランダムな色に更新され、継続的な点滅効果が作成されます。

以上がJava Swing で色が変化する点滅ボタンを作成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。