首頁 > Java > java教程 > 如何根據資料庫狀態動態改變Java Swing中的按鈕顏色?

如何根據資料庫狀態動態改變Java Swing中的按鈕顏色?

DDD
發布: 2024-12-26 15:09:14
原創
780 人瀏覽過

How to Dynamically Change Button Colors in Java Swing Based on Database Status?

Java Swing 按鈕顏色

在此範例中,我們將探索如何根據資料庫狀態的特定變更動態變更 Java Swing 中按鈕的顏色。我們的目標是將綠色分配給代表餐廳中無人值守餐桌的按鈕,將橙色分配給那些待處理訂單的按鈕,並為正在處理的桌子實現閃爍效果。

要更改按鈕的顏色,我們可以利用setForeground() 和 setBackground() 方法。為了更改文字​​顏色,我們使用 setForeground(),但請注意 setBackground() 在不同平台上可能不會產生一致的結果。因此,我們建議改用彩色面板,如下面的程式碼片段所示:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

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<>();

 

    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();

            }

        });

    }

}

登入後複製

在此程式碼中,ButtonPanel 內部類別擴展了JPanel,並包含一個帶有標識按鈕編號的文字的按鈕。 setBackground() 方法用於動態設定每個按鈕面板的顏色。

要為指示正在處理的表格的按鈕實現閃爍效果,可以使用 Timer 物件。 Timer 會定期觸發 ActionEvent,在事件處理程序中,您可以變更按鈕的顏色以建立閃爍效果。

以上是如何根據資料庫狀態動態改變Java Swing中的按鈕顏色?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板