[英]Button action to change the color of all tabbedpane panel java swing
[英]Java8 Swing Change Color of jToggle Button
在 IntelliJ 中,我使用 Java8 和 JavaSwing(GUI)。 我有一個 jToggle 按鈕,我想根據是否單擊它來更改顏色。 我對按鈕的形狀和彎曲角很好,只是想改變按鈕的通用藍色。 我目前有:
laserOnOff.setBackground(Color.GREEN);
laserOnOff.setOpaque(true);
laserOnOff.setBorderPainted(false);
但這會改變按鈕的形狀,當我切換按鈕時,只有文本的背景會改變顏色。 我也試過
UIManager.put("ToggleButton.select", Color.GREEN);
SwingUtilities.updateComponentTreeUI(laserOnOff);
但這沒有用。 什么是能夠更改 jToggle 按鈕顏色的簡單方法?
也許我誤解了你的問題。 盡管如此,這里還是一個包含單個JToggleButton
的Swing應用程序的最小示例。 最初該按鈕具有白色背景,其文本為Laser Off 。 當用戶單擊按鈕時,文本變為Laser on ,背景顏色變為綠色。 當用戶第二次點擊按鈕時,文本恢復為關閉激光,背景顏色也恢復為白色。 因此,該按鈕會隨着按鈕的每次連續激活而不斷切換其文本和背景顏色。 我希望這可以幫助你。
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JToggleButton;
import javax.swing.UIDefaults;
import javax.swing.UIManager;
import javax.swing.WindowConstants;
public class TogglTst implements ActionListener, Runnable {
@Override // java.lang.Runnable
public void run() {
createAndShowGui();
}
@Override // java.awt.event.ActionListener
public void actionPerformed(ActionEvent actnEvnt) {
Object src = actnEvnt.getSource();
JToggleButton toggle = (JToggleButton) src;
if (toggle.isSelected()) {
toggle.setText("Laser On");
}
else {
toggle.setText("Laser Off");
}
}
private void createAndShowGui() {
JFrame frame = new JFrame("JSP");
frame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
frame.add(createButtonsPanel(), BorderLayout.PAGE_END);
frame.setSize(450, 300);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private JPanel createButtonsPanel() {
JPanel buttonsPanel = new JPanel();
JToggleButton toggle = new JToggleButton("Laser Off");
toggle.setBackground(Color.WHITE);
toggle.addActionListener(this);
buttonsPanel.add(toggle);
return buttonsPanel;
}
public static void main(String[] args) {
UIDefaults dflts = UIManager.getLookAndFeelDefaults();
dflts.put("ToggleButton.select", Color.GREEN);
EventQueue.invokeLater(new TogglTst());
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.