Цвет кнопок Java Swing
Я использую NET Beans IDE для разработки моего приложения в LINUX. Я использовал синтетический пакет для создания нового внешнего вида. Все хорошо до сих пор.
Теперь мой следующий этап – добавлять цвета к кнопкам, когда изменяется состояние базы данных.
Например:
- Как я могу установить элемент управления в JTableHeader JTable?
- Перенаправление System.out в JTextPane
- SwingWorker, Thread.sleep () или javax.swing.timer? Мне нужно «вставить паузу»,
- Добавляет ли JLabel в JPanel «скрыть» JPanel?
- Есть ли свойство «word wrap» для JLabel?
В ресторане у меня есть 2 стола, и когда 8 человек пришли поужинать, и я создам 2 таблицы в своем программном обеспечении, так как люди без присмотра, я хочу, чтобы кнопки для этих двух таблиц были зелеными. Когда заказ обрабатывается для любой из этих таблиц, цвет кнопки обрабатываемой таблицы должен быть изменен на оранжевый. Когда он находится в процессе обработки, он должен мигать цветом. Как это сделать в java? Я позабочусь о обновлении базы данных, я просто хочу знать, как изменить цвета кнопок и добавить технологию мигания.
- Как заполнить данные в JTable с помощью базы данных?
- Обновление JLabel каждые X секунд из ArrayList - Java
- Автоматизированные тесты для Java Swing GUI
- Эффективный размер экрана с Java
- removeAll не удаляется при следующей проверке?
- Разница между validate (), revalidate () и invalidate () в графическом интерфейсе Swing
- Как установить цвет фона JLabel?
- Закрытие программы JOptionPane
Вот вопрос и несколько ответов, связанных с миганием компонента.
Добавление: вы можете узнать больше в статье « Как использовать кнопки» . В частности, вы можете использовать setForeground()
чтобы изменить цвет текста кнопки, но соответствующая setBackground()
не хорошо читается на некоторых платформах. Использование Border
– одна из альтернатив; цветная панель, показанная ниже, является другой.
package overflow; 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 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(); } }); } }