Skip to content

Commit 8d8debf

Browse files
authored
Merge pull request atarw#78 from vincenzopalazzo/fixsomeissue
Fixed some issue
2 parents e626e95 + 789dcd0 commit 8d8debf

File tree

9 files changed

+103
-38
lines changed

9 files changed

+103
-38
lines changed

src/main/java/mdlaf/MaterialLookAndFeel.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,9 @@ protected void initComponentDefaults (UIDefaults table) {
233233
table.put ("ScrollBar.thumbHighlight", MaterialColors.GRAY_300);
234234
table.put ("ScrollBar.thumbShadow", MaterialColors.GRAY_300);
235235
table.put ("ScrollBar.arrowButtonBackground", MaterialColors.GRAY_300);
236-
table.put ("ScrollBar.arrowButtonBorder", BorderFactory.createEmptyBorder ());
236+
table.put("ScrollBar.arrowButtonBorder", MaterialBorders.LIGHT_LINE_BORDER);
237+
table.put("ScrollBar[MouseHover].enable", true);
238+
table.put("ScrollBar[MouseHover].color", MaterialColors.GRAY_400);
237239

238240
table.put ("ScrollPane.background", Color.WHITE);
239241
table.put ("ScrollPane.border", BorderFactory.createEmptyBorder ());

src/main/java/mdlaf/components/button/MaterialButtonUI.java

Lines changed: 39 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,52 +2,67 @@
22

33
import mdlaf.animation.MaterialUIMovement;
44
import mdlaf.utils.MaterialDrawingUtils;
5-
65
import javax.swing.AbstractButton;
76
import javax.swing.JComponent;
87
import javax.swing.UIManager;
98
import javax.swing.plaf.ComponentUI;
109
import javax.swing.plaf.basic.BasicButtonUI;
1110
import java.awt.*;
1211

12+
/**
13+
* @contributor https://github.com/vincenzopalazzo
14+
*/
15+
1316
public class MaterialButtonUI extends BasicButtonUI {
1417

15-
public static ComponentUI createUI (final JComponent c) {
16-
return new MaterialButtonUI ();
18+
public static ComponentUI createUI(final JComponent c) {
19+
return new MaterialButtonUI();
1720
}
1821

1922
@Override
20-
public void installUI (JComponent c) {
21-
super.installUI (c);
23+
public void installUI(JComponent c) {
24+
super.installUI(c);
2225

2326
AbstractButton button = (AbstractButton) c;
24-
button.setOpaque (UIManager.getBoolean ("Button.opaque"));
25-
button.setBorder (UIManager.getBorder ("Button.border"));
26-
button.setBackground (UIManager.getColor ("Button.background"));
27-
button.setForeground (UIManager.getColor ("Button.foreground"));
28-
button.setFont (UIManager.getFont ("Button.font"));
29-
if(UIManager.getBoolean("Button.mouseHoverEnable")){
30-
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("Button.mouseHoverColor")));
31-
}
27+
button.setOpaque(UIManager.getBoolean("Button.opaque"));
28+
button.setBorder(UIManager.getBorder("Button.border"));
29+
button.setBackground(UIManager.getColor("Button.background"));
30+
button.setForeground(UIManager.getColor("Button.foreground"));
31+
button.setFont(UIManager.getFont("Button.font"));
3232
button.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
33+
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("Button.mouseHoverColor")));
3334
}
3435

3536
@Override
36-
public void paint (Graphics g, JComponent c) {
37+
public void paint(Graphics g, JComponent c) {
3738
AbstractButton b = (AbstractButton) c;
38-
g = MaterialDrawingUtils.getAliasedGraphics (g);
39-
40-
if (b.isContentAreaFilled ()) {
41-
paintBackground (MaterialDrawingUtils.getAliasedGraphics(g), b);
39+
g = MaterialDrawingUtils.getAliasedGraphics(g);
40+
if (b.isContentAreaFilled()) {
41+
paintBackground(MaterialDrawingUtils.getAliasedGraphics(g), b);
4242
}
43+
super.paint(MaterialDrawingUtils.getAliasedGraphics(g), c);
44+
}
45+
//Fix to #73 border were pixeled, fixde by https://github.com/vincenzopalazzo
46+
private void paintBackground(Graphics g, JComponent c) {
47+
//g.setColor(c.getBackground());
48+
//g.fillRoundRect(0, 0, c.getWidth(), c.getHeight(), 7, 7);
49+
Graphics2D graphics2D = (Graphics2D) g;
50+
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
51+
g = graphics2D;
52+
g.setColor(c.getBackground());
53+
g.fillRoundRect(0, 0, c.getWidth(), c.getHeight(), 7, 7);
54+
}
4355

44-
super.paint (MaterialDrawingUtils.getAliasedGraphics(g), c);
56+
@Override
57+
protected void paintButtonPressed(Graphics g, AbstractButton b) {
58+
super.paintButtonPressed(g, b);
4559
}
4660

47-
private void paintBackground (Graphics g, JComponent c) {
48-
g = MaterialDrawingUtils.getAliasedGraphics(g);
49-
g.setColor (c.getBackground ());
50-
g.fillRect (0, 0, c.getWidth (), c.getHeight());
61+
@Override
62+
public void update(Graphics g, JComponent c) {
63+
super.update(g, c);
64+
c.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));
5165
}
5266

53-
}
67+
68+
}

src/main/java/mdlaf/components/combobox/MaterialComboBoxUI.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,7 @@
33
import mdlaf.animation.MaterialUIMovement;
44
import mdlaf.utils.MaterialBorders;
55
import mdlaf.utils.MaterialDrawingUtils;
6-
7-
import javax.swing.BorderFactory;
6+
import mdlaf.utils.MaterialManagerListener;
87
import javax.swing.Icon;
98
import javax.swing.JButton;
109
import javax.swing.JComboBox;
@@ -14,8 +13,12 @@
1413
import javax.swing.plaf.ComponentUI;
1514
import javax.swing.plaf.basic.BasicArrowButton;
1615
import javax.swing.plaf.basic.BasicComboBoxUI;
17-
import java.awt.*;
16+
import java.awt.Cursor;
17+
import java.awt.Graphics;
1818

19+
/**
20+
* @contributor https://github.com/vincenzopalazzo
21+
*/
1922
public class MaterialComboBoxUI extends BasicComboBoxUI {
2023

2124
public static ComponentUI createUI (JComponent c) {
@@ -46,6 +49,7 @@ protected JButton createArrowButton () {
4649
else {
4750
button = new BasicArrowButton (SwingConstants.SOUTH);
4851
}
52+
MaterialManagerListener.removeAllMouseListener(button);
4953
button.setOpaque (true);
5054
button.setBackground (UIManager.getColor ("ComboBox.buttonBackground"));
5155
if(UIManager.getBoolean("ComboBox.mouseHoverEnabled")){

src/main/java/mdlaf/components/password/MaterialPasswordFieldUI.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@
2727
import java.beans.PropertyChangeEvent;
2828
import java.beans.PropertyChangeListener;
2929

30+
/**
31+
* @contributor https://github.com/vincenzopalazzo
32+
*/
3033
public class MaterialPasswordFieldUI extends BasicPasswordFieldUI implements FocusListener, PropertyChangeListener {
3134

3235
private Color focusedBackground;

src/main/java/mdlaf/components/scrollbar/MaterialScrollBarUI.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
package mdlaf.components.scrollbar;
22

3+
import mdlaf.animation.MaterialUIMovement;
34
import mdlaf.utils.MaterialDrawingUtils;
5+
import mdlaf.utils.MaterialManagerListener;
46

57
import javax.swing.JButton;
68
import javax.swing.JComponent;
@@ -43,21 +45,27 @@ public void paint (Graphics g, JComponent c) {
4345
protected JButton createDecreaseButton (int orientation) {
4446
JButton button = new BasicArrowButton (orientation);
4547

48+
MaterialManagerListener.removeAllMouseListener(button);
4649
button.setOpaque (true);
4750
button.setBackground (UIManager.getColor ("ScrollBar.arrowButtonBackground"));
4851
button.setBorder (UIManager.getBorder ("ScrollBar.arrowButtonBorder"));
49-
52+
if(UIManager.getBoolean("ScrollBar[MouseHover].enable")){
53+
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("ScrollBar[MouseHover].color")));
54+
}
5055
return button;
5156
}
5257

5358
@Override
5459
protected JButton createIncreaseButton (int orientation) {
5560
JButton button = new BasicArrowButton (orientation);
5661

62+
MaterialManagerListener.removeAllMouseListener(button);
5763
button.setOpaque (true);
5864
button.setBackground (UIManager.getColor ("ScrollBar.arrowButtonBackground"));
5965
button.setBorder (UIManager.getBorder ("ScrollBar.arrowButtonBorder"));
60-
66+
if(UIManager.getBoolean("ScrollBar[MouseHover].enable")){
67+
button.addMouseListener(MaterialUIMovement.getMovement(button, UIManager.getColor("ScrollBar[MouseHover].color")));
68+
}
6169
return button;
6270
}
6371
}

src/main/java/mdlaf/components/slider/MaterialSliderUI.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,9 @@
1010
import javax.swing.plaf.basic.BasicSliderUI;
1111
import java.awt.*;
1212

13-
//TODO cambio grafica slider
13+
/**
14+
* @contributor https://github.com/vincenzopalazzo
15+
*/
1416
public class MaterialSliderUI extends BasicSliderUI {
1517

1618
private static final int NORMAL_THUMB_RADIUS = 7;
@@ -25,7 +27,12 @@ public static ComponentUI createUI (JComponent c) {
2527
return new MaterialSliderUI ((JSlider) c);
2628
}
2729

30+
// I fixig paint the circle bacuse this was painted wrong
31+
// @contributor https://github.com/vincenzopalazzo
2832
private static void drawCircle (Graphics g, int x, int y, int radius) {
33+
Graphics2D graphics2D = (Graphics2D) g;
34+
graphics2D.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
35+
g = graphics2D;
2936
g.fillOval (x - radius, y - radius, radius * 2, radius * 2);
3037
}
3138

src/main/java/mdlaf/components/spinner/MaterialSpinnerUI.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,21 +1,19 @@
11
package mdlaf.components.spinner;
22

33
import mdlaf.animation.MaterialUIMovement;
4-
import mdlaf.components.textfield.MaterialTextFieldUI;
5-
import mdlaf.components.textpane.MaterialTextPaneUI;
64
import mdlaf.utils.MaterialBorders;
75
import mdlaf.utils.MaterialDrawingUtils;
8-
import org.jdesktop.swingx.JXTextField;
9-
6+
import mdlaf.utils.MaterialManagerListener;
107
import javax.swing.*;
118
import javax.swing.plaf.ComponentUI;
129
import javax.swing.plaf.basic.BasicArrowButton;
1310
import javax.swing.plaf.basic.BasicSpinnerUI;
14-
import javax.swing.plaf.basic.BasicTextFieldUI;
1511
import java.awt.*;
16-
import java.awt.event.ActionEvent;
17-
import java.awt.event.ActionListener;
1812

13+
14+
/**
15+
* @contributor https://github.com/vincenzopalazzo
16+
*/
1917
public class MaterialSpinnerUI extends BasicSpinnerUI {
2018

2119

@@ -58,6 +56,7 @@ protected Component createNextButton() {
5856
} else {
5957
button = new BasicArrowButton(SwingConstants.NORTH);
6058
}
59+
MaterialManagerListener.removeAllMouseListener(button);
6160
button.setOpaque(true);
6261
button.setBackground(UIManager.getColor("Spinner.arrowButtonBackground"));
6362
button.setBorder(UIManager.getBorder("Spinner.arrowButtonBorder"));
@@ -78,6 +77,7 @@ protected Component createPreviousButton() {
7877
} else {
7978
button = new BasicArrowButton(SwingConstants.SOUTH);
8079
}
80+
MaterialManagerListener.removeAllMouseListener(button);
8181
button.setOpaque(true);
8282
button.setBackground(UIManager.getColor("Spinner.arrowButtonBackground"));
8383
button.setBorder(UIManager.getBorder("Spinner.arrowButtonBorder"));

src/main/java/mdlaf/components/textfield/MaterialTextFieldUI.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,9 @@
2222
import java.beans.PropertyChangeEvent;
2323
import java.beans.PropertyChangeListener;
2424

25+
/**
26+
* @contributor https://github.com/vincenzopalazzo
27+
*/
2528
public class MaterialTextFieldUI extends BasicTextFieldUI implements FocusListener, PropertyChangeListener {
2629

2730
private boolean drawLine;
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package mdlaf.utils;
2+
3+
import javax.swing.*;
4+
import java.awt.event.MouseListener;
5+
6+
/**
7+
* @author https://github.com/vincenzopalazzo
8+
*/
9+
public class MaterialManagerListener {
10+
11+
/**
12+
* Look this if you would change this function
13+
* https://bugs.java.com/bugdatabase/view_bug.do?bug_id=4380536
14+
*/
15+
public static void removeAllMouseListener(JButton button){
16+
if(button == null){
17+
throw new IllegalArgumentException("Argument is null");
18+
}
19+
for(MouseListener mouseListener : button.getListeners(MouseListener.class)){
20+
button.removeMouseListener(mouseListener);
21+
}
22+
}
23+
}

0 commit comments

Comments
 (0)