Skip to content

Commit 7e7117a

Browse files
added support to RadioButtonMenuItem
1 parent 06ce784 commit 7e7117a

File tree

3 files changed

+58
-25
lines changed

3 files changed

+58
-25
lines changed

src/MaterialUISwingDemo.java

Lines changed: 6 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -2,30 +2,7 @@
22
import mdlaf.animation.MaterialUIMovement;
33
import mdlaf.resources.MaterialColors;
44

5-
import javax.swing.JButton;
6-
import javax.swing.JCheckBox;
7-
import javax.swing.JComboBox;
8-
import javax.swing.JFrame;
9-
import javax.swing.JLabel;
10-
import javax.swing.JMenu;
11-
import javax.swing.JMenuBar;
12-
import javax.swing.JMenuItem;
13-
import javax.swing.JPanel;
14-
import javax.swing.JPasswordField;
15-
import javax.swing.JProgressBar;
16-
import javax.swing.JRadioButton;
17-
import javax.swing.JScrollPane;
18-
import javax.swing.JSlider;
19-
import javax.swing.JSpinner;
20-
import javax.swing.JTabbedPane;
21-
import javax.swing.JTable;
22-
import javax.swing.JTextField;
23-
import javax.swing.JToggleButton;
24-
import javax.swing.JToolBar;
25-
import javax.swing.JTree;
26-
import javax.swing.SpinnerListModel;
27-
import javax.swing.UIManager;
28-
import javax.swing.UnsupportedLookAndFeelException;
5+
import javax.swing.*;
296
import java.awt.BorderLayout;
307
import java.awt.Dimension;
318

@@ -52,6 +29,11 @@ public static void main (String[] args) {
5229
JMenuItem item1 = new JMenuItem ("Item 1 (Animated)");
5330
JMenuItem item2 = new JMenuItem ("Item 2 (Not animated)");
5431

32+
//Test RadioButtonMenuItem
33+
JRadioButtonMenuItem jRadioButtonMenuItem = new JRadioButtonMenuItem();
34+
jRadioButtonMenuItem.setText("prova RadioButtonMenuItem");
35+
menu1.add(jRadioButtonMenuItem);
36+
5537
menu1.add (item1);
5638
menu2.add (item2);
5739

src/mdlaf/MaterialLookAndFeel.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import mdlaf.components.popupmenu.MaterialPopupMenuUI;
1313
import mdlaf.components.progressbar.MaterialProgressBarUI;
1414
import mdlaf.components.radiobutton.MaterialRadioButtonUI;
15+
import mdlaf.components.radiobuttonmenuitem.MaterialRadioButtonMenuItemUI;
1516
import mdlaf.components.scrollbar.MaterialScrollBarUI;
1617
import mdlaf.components.slider.MaterialSliderUI;
1718
import mdlaf.components.spinner.MaterialSpinnerUI;
@@ -55,7 +56,12 @@ public class MaterialLookAndFeel extends MetalLookAndFeel {
5556
private static final String toolbarUI = MaterialToolBarUI.class.getCanonicalName ();
5657
private static final String sliderUI = MaterialSliderUI.class.getCanonicalName ();
5758
private static final String progressBarUI = MaterialProgressBarUI.class.getCanonicalName();
58-
59+
private static final String radioButtonMenuItemUI = MaterialRadioButtonMenuItemUI.class.getCanonicalName();
60+
61+
public static String getRadioButtonMenuItemUI() {
62+
return radioButtonMenuItemUI;
63+
}
64+
5965
public static String getProgressbarui() {
6066
return progressBarUI;
6167
}
@@ -110,6 +116,7 @@ protected void initClassDefaults (UIDefaults table) {
110116
table.put ("ToolBarUI", toolbarUI);
111117
table.put ("SliderUI", sliderUI);
112118
table.put("ProgressBarUI", progressBarUI);
119+
table.put("RadioButtonMenuItemUI", radioButtonMenuItemUI);
113120
}
114121

115122
@Override
@@ -260,5 +267,8 @@ protected void initComponentDefaults (UIDefaults table) {
260267
table.put ("Tree.closedIcon", new ImageIcon (MaterialImages.RIGHT_ARROW));
261268
table.put ("Tree.openIcon", new ImageIcon (MaterialImages.DOWN_ARROW));
262269
table.put ("Tree.selectionBorderColor", null);
270+
271+
//table.put("RadioButtonMenuItem.selectedIcon", new ImageIcon(MaterialImages.RADIO_BUTTON_ON));
272+
//table.put("RadioButtonMenuItem.icon", new ImageIcon(MaterialImages.RADIO_BUTTON_OFF));
263273
}
264274
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package mdlaf.components.radiobuttonmenuitem;
2+
3+
import mdlaf.resources.MaterialBorders;
4+
import mdlaf.resources.MaterialColors;
5+
import mdlaf.resources.MaterialDrawingUtils;
6+
import mdlaf.resources.MaterialImages;
7+
8+
import javax.swing.*;
9+
import javax.swing.plaf.ComponentUI;
10+
import javax.swing.plaf.basic.BasicRadioButtonMenuItemUI;
11+
import java.awt.*;
12+
13+
public class MaterialRadioButtonMenuItemUI extends BasicRadioButtonMenuItemUI {
14+
15+
public static ComponentUI createUI(JComponent c){
16+
return new MaterialRadioButtonMenuItemUI();
17+
}
18+
19+
@Override
20+
public void installUI(JComponent c) {
21+
super.installUI(c);
22+
JRadioButtonMenuItem j = (JRadioButtonMenuItem) c;
23+
j.setBackground(MaterialColors.WHITE);
24+
j.setBorder(UIManager.getBorder ("MenuItem.border"));
25+
}
26+
27+
@Override
28+
public void paint(Graphics g, JComponent c) {
29+
super.paint(MaterialDrawingUtils.getAliasedGraphics(g), c);
30+
}
31+
32+
@Override
33+
protected void paintMenuItem(Graphics g, JComponent c, Icon checkIcon, Icon arrowIcon, Color background, Color foreground, int defaultTextIconGap) {
34+
JRadioButtonMenuItem j = (JRadioButtonMenuItem) c;
35+
if(j.isSelected()){
36+
super.paintMenuItem(MaterialDrawingUtils.getAliasedGraphics(g), c, new ImageIcon(MaterialImages.RADIO_BUTTON_ON), arrowIcon, background, foreground, defaultTextIconGap);
37+
return;
38+
}
39+
super.paintMenuItem(MaterialDrawingUtils.getAliasedGraphics(g), c, new ImageIcon(MaterialImages.RADIO_BUTTON_OFF), arrowIcon, background, foreground, defaultTextIconGap);
40+
}
41+
}

0 commit comments

Comments
 (0)