[fixes #989] Use changelistener for foreground change + don't change on non OSX-devices
This commit is contained in:
parent
1358260593
commit
2f6a8c8db9
@ -5,38 +5,49 @@ import javax.swing.Action;
|
|||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
import javax.swing.JButton;
|
import javax.swing.JButton;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.event.ChangeEvent;
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
|
|
||||||
public class SelectColorButton extends JButton {
|
public class SelectColorButton extends JButton {
|
||||||
public SelectColorButton() {
|
public SelectColorButton() {
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorButton(Icon icon) {
|
public SelectColorButton(Icon icon) {
|
||||||
super(icon);
|
super(icon);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorButton(String text) {
|
public SelectColorButton(String text) {
|
||||||
super(text);
|
super(text);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorButton(Action a) {
|
public SelectColorButton(Action a) {
|
||||||
super(a);
|
super(a);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorButton(String text, Icon icon) {
|
public SelectColorButton(String text, Icon icon) {
|
||||||
super(text, icon);
|
super(text, icon);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private void addChangeListenerSelectColor() {
|
||||||
|
addChangeListener(new ChangeListener() {
|
||||||
@Override
|
@Override
|
||||||
public void paint(Graphics g) {
|
public void stateChanged(ChangeEvent e) {
|
||||||
if (getModel().isArmed()) {
|
if (UIManager.getColor("Button.selectForeground") == null
|
||||||
setForeground(UIManager.getColor("Button.selectForeground"));
|
|| UIManager.getColor("Button.foreground") == null)
|
||||||
}
|
return;
|
||||||
else {
|
if (getModel().isArmed()) {
|
||||||
setForeground(UIManager.getColor("Button.foreground"));
|
setForeground(UIManager.getColor("Button.selectForeground"));
|
||||||
}
|
}
|
||||||
super.paint(g);
|
else {
|
||||||
|
setForeground(UIManager.getColor("Button.foreground"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -4,7 +4,12 @@ import javax.swing.JToggleButton;
|
|||||||
import javax.swing.Action;
|
import javax.swing.Action;
|
||||||
import javax.swing.Icon;
|
import javax.swing.Icon;
|
||||||
import javax.swing.UIManager;
|
import javax.swing.UIManager;
|
||||||
|
import javax.swing.event.ChangeEvent;
|
||||||
|
import javax.swing.event.ChangeListener;
|
||||||
import java.awt.Graphics;
|
import java.awt.Graphics;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.awt.event.MouseEvent;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is a replacement for the standard JToggleButton. Its purpose is to be able
|
* This class is a replacement for the standard JToggleButton. Its purpose is to be able
|
||||||
@ -15,43 +20,57 @@ import java.awt.Graphics;
|
|||||||
public class SelectColorToggleButton extends JToggleButton {
|
public class SelectColorToggleButton extends JToggleButton {
|
||||||
public SelectColorToggleButton(Action a) {
|
public SelectColorToggleButton(Action a) {
|
||||||
super(a);
|
super(a);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton(String text) {
|
public SelectColorToggleButton(String text) {
|
||||||
super(text);
|
super(text);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton() {
|
public SelectColorToggleButton() {
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton(Icon icon) {
|
public SelectColorToggleButton(Icon icon) {
|
||||||
super(icon);
|
super(icon);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton(Icon icon, boolean selected) {
|
public SelectColorToggleButton(Icon icon, boolean selected) {
|
||||||
super(icon, selected);
|
super(icon, selected);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton(String text, boolean selected) {
|
public SelectColorToggleButton(String text, boolean selected) {
|
||||||
super(text, selected);
|
super(text, selected);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton(String text, Icon icon) {
|
public SelectColorToggleButton(String text, Icon icon) {
|
||||||
super(text, icon);
|
super(text, icon);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
public SelectColorToggleButton(String text, Icon icon, boolean selected) {
|
public SelectColorToggleButton(String text, Icon icon, boolean selected) {
|
||||||
super(text, icon, selected);
|
super(text, icon, selected);
|
||||||
|
addChangeListenerSelectColor();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
private void addChangeListenerSelectColor() {
|
||||||
public void paint(Graphics g) {
|
addChangeListener(new ChangeListener() {
|
||||||
if (isSelected()) {
|
@Override
|
||||||
setForeground(UIManager.getColor("ToggleButton.selectForeground"));
|
public void stateChanged(ChangeEvent e) {
|
||||||
}
|
if (UIManager.getColor("ToggleButton.selectForeground") == null
|
||||||
else {
|
|| UIManager.getColor("ToggleButton.foreground") == null)
|
||||||
setForeground(UIManager.getColor("ToggleButton.foreground"));
|
return;
|
||||||
}
|
if (isSelected()) {
|
||||||
super.paint(g);
|
setForeground(UIManager.getColor("ToggleButton.selectForeground"));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
setForeground(UIManager.getColor("ToggleButton.foreground"));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user