How to dynamically change arrow buttons in BasicScrollBarUI
We have daughter class:
public class MacOsScrollUi extends BasicScrollBarUI {
private ImageIcon decreaseIconDefault;
private ImageIcon increaseIconDefault;
private ImageIcon decreaseIconEneterd;
private ImageIcon increaseIconEntered;
public MacOsScrollUi(){
decreaseIconDefault = new ImageIcon(...);
increaseIconDefault = new ImageIcon(...);
decreaseIconEneterd = new ImageIcon(...);
increaseIconEntered = new ImageIcon(...);
}
...
@Override protected JButton createIncreaseButton(int orientation) {
JButton increaseButton = new JButton(decreaseIconDefault);
return decreaseButton ;
}
@Override protected JButton createDecreaseButton(int orientation) {
JButton decreaseButton = new JButton(decreaseButtonDefault);
return decreaseButton ;
}
...
}
In classMacOsScrollUi we create two methods for set new arrow Icon for increase and decrease buttons:
public void setButtonsPressed(){
decrButton.setIcon(decreaseIconEneterd);
incrButton.setIcon(increaseIconDefault);
}
public void setButtonsDefault(){
decrButton.setIcon(decreaseIconDefault );
incrButton.setIcon(increaseIconDefault );
}
And now we can simply change arrow buttons in any position of code:
MacOsScrollUi scrollUi = new MacOsScrollUi(); ... scrollUi.setButtonsPressed(); //and we can set default butoons - scrollUi.setButtonsDefault();