Heim >Java >javaLernprogramm >Wie kann ich in Java Swing blinkende Schaltflächen mit wechselnden Farben erstellen?
Blinkende Schaltflächen in Java
In Java Swing kann die Änderung des Erscheinungsbilds einer Schaltfläche verschiedene Zustände anzeigen, beispielsweise wenn sich ein Datenbankstatus ändert . In diesem Artikel erfahren Sie, wie Sie die Farben von Schaltflächen ändern und einen Blinkeffekt hinzufügen, um bestimmte Status hervorzuheben.
Schaltflächenfarben ändern
Um die Farbe einer Schaltfläche zu ändern, können Sie verwenden die Methode setForeground(), um die Textfarbe zu ändern. Die entsprechende setBackground()-Methode beeinflusst die Hintergrundfarbe, ist jedoch möglicherweise nicht auf allen Plattformen sichtbar. Eine Alternative besteht darin, ein farbiges JPanel als Hintergrund der Schaltfläche zu verwenden.
Hinzufügen eines Blinkeffekts
Um einen Blinkeffekt zu erstellen, kann ein Timer-Objekt verwendet werden. Der Timer ruft wiederholt die Methode actionPerformed() auf, sodass Sie die Farbe der Schaltfläche regelmäßig ändern können. Indem Sie das Timer-Intervall auf eine kurze Dauer einstellen, z. B. 100 Millisekunden, erzielen Sie einen Blinkeffekt.
Codebeispiel
Der folgende Codeausschnitt zeigt, wie man einen erstellt Blinkende Schaltfläche, die jede Sekunde ihre Farbe ändert:
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(); } }); } }
Dieser Code generiert ein Raster von Schaltflächen mit jeweils einem zufälligen Symbol ausgewählte Farbe. Der Timer ruft jede Sekunde die Methode actionPerformed() auf, die die Farbe aller Schaltflächen auf eine andere zufällige Farbe aktualisiert und so einen kontinuierlichen Blinkeffekt erzeugt.
Das obige ist der detaillierte Inhalt vonWie kann ich in Java Swing blinkende Schaltflächen mit wechselnden Farben erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!