Butang Berkelip dalam Java
Dalam Java Swing, menukar rupa butang boleh menunjukkan keadaan yang berbeza, seperti apabila status pangkalan data berubah . Artikel ini membincangkan cara mengubah suai warna butang dan menambah kesan berkelip untuk menyerlahkan status tertentu.
Menukar Warna Butang
Untuk menukar warna butang, anda boleh menggunakan kaedah setForeground() untuk mengubah warna teks. Kaedah setBackground() yang sepadan mempengaruhi warna latar belakang tetapi mungkin tidak kelihatan pada semua platform. Alternatifnya ialah menggunakan JPanel berwarna sebagai latar belakang butang.
Menambah Kesan Berkelip
Untuk mencipta kesan berkelip, objek Pemasa boleh digunakan. Pemasa berulang kali memanggil kaedah actionPerformed(), membolehkan anda menukar warna butang secara berkala. Dengan menetapkan selang Pemasa kepada tempoh yang singkat, cth., 100 milisaat, anda mencapai kesan berkelip.
Contoh Kod
Coretan kod berikut menunjukkan cara mencipta butang berkelip yang bertukar warna setiap saat:
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(); } }); } }
Kod ini menjana grid butang, masing-masing dengan warna yang dipilih secara rawak. Pemasa menggunakan kaedah actionPerformed() setiap saat, yang mengemas kini warna semua butang kepada warna rawak yang lain, mencipta kesan berkelip berterusan.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencipta Butang Berkelip dengan Warna Bertukar dalam Java Swing?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!