Skip to content

Commit

Permalink
added support for jtoolbar, jcombobox
Browse files Browse the repository at this point in the history
  • Loading branch information
atarw committed Jul 27, 2018
1 parent 755612b commit 5943931
Show file tree
Hide file tree
Showing 11 changed files with 415 additions and 220 deletions.
2 changes: 1 addition & 1 deletion .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

403 changes: 190 additions & 213 deletions .idea/workspace.xml

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ public class MaterialUISwingDemo {
frame.add (content, BorderLayout.CENTER);

// on hover, button will change to a light blue
MaterialUIMovement.add (button, MaterialColors.BLUE_400);
MaterialUIMovement.add (button, MaterialColors.LIGHT_BLUE_500);

frame.pack ();
frame.setVisible (true);
Expand Down
Binary file modified lib/material-ui-swing.jar
Binary file not shown.
2 changes: 1 addition & 1 deletion src/MaterialUISwingDemo.java
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,7 @@ public static void main (String[] args) {
// there will be 5 intermediate colors displayed in the transition from the original components color to the new one specified
// the "frame rate" of the transition will be 1000 / 30, or 30 FPS
// the animation will take 5 * 1000 / 30 = 166.666... milliseconds to complete
MaterialUIMovement.add (button, MaterialColors.BLUE_400, 5, 1000 / 30);
MaterialUIMovement.add (button, MaterialColors.LIGHT_BLUE_500, 5, 1000 / 30);

// make everything visible to the world
frame.pack ();
Expand Down
15 changes: 11 additions & 4 deletions src/mdlaf/MaterialLookAndFeel.java
Original file line number Diff line number Diff line change
Expand Up @@ -2,12 +2,14 @@

import mdlaf.components.button.MaterialButtonUI;
import mdlaf.components.checkbox.MaterialCheckBoxUI;
import mdlaf.components.combobox.MaterialComboBoxUI;
import mdlaf.components.label.MaterialLabelUI;
import mdlaf.components.menu.MaterialMenuUI;
import mdlaf.components.menubar.MaterialMenuBarUI;
import mdlaf.components.menuitem.MaterialMenuItemUI;
import mdlaf.components.panel.MaterialPanelUI;
import mdlaf.components.password.MaterialPasswordFieldUI;
import mdlaf.components.popupmenu.MaterialPopupMenuUI;
import mdlaf.components.radiobutton.MaterialRadioButtonUI;
import mdlaf.components.scrollbar.MaterialScrollBarUI;
import mdlaf.components.spinner.MaterialSpinnerUI;
Expand All @@ -16,6 +18,7 @@
import mdlaf.components.table.MaterialTableUI;
import mdlaf.components.textfield.MaterialTextFieldUI;
import mdlaf.components.togglebutton.MaterialToggleButtonUI;
import mdlaf.components.toolbar.MaterialToolBarUI;
import mdlaf.components.tree.MaterialTreeUI;
import mdlaf.resources.MaterialBorders;
import mdlaf.resources.MaterialColors;
Expand Down Expand Up @@ -45,6 +48,10 @@ public class MaterialLookAndFeel extends BasicLookAndFeel {
private static final String tabbedPaneUI = MaterialTabbedPaneUI.class.getCanonicalName ();
private static final String toggleButtonUI = MaterialToggleButtonUI.class.getCanonicalName ();
private static final String scrollBarUI = MaterialScrollBarUI.class.getCanonicalName ();
private static final String comboBoxUI = MaterialComboBoxUI.class.getCanonicalName ();
private static final String popupMenuUI = MaterialPopupMenuUI.class.getCanonicalName ();
private static final String toolbarUI = MaterialToolBarUI.class.getCanonicalName ();
// private static final String sliderUI = MaterialSliderUI.class.getCanonicalName ();

@Override
public String getName () {
Expand Down Expand Up @@ -91,13 +98,16 @@ protected void initClassDefaults (UIDefaults table) {
table.put ("TabbedPaneUI", tabbedPaneUI);
table.put ("ToggleButtonUI", toggleButtonUI);
table.put ("ScrollBarUI", scrollBarUI);
table.put ("ComboBoxUI", comboBoxUI);
table.put ("PopupMenuUI", popupMenuUI);
table.put ("ToolBarUI", toolbarUI);
// table.put ("SliderUI", sliderUI);
}

@Override
protected void initComponentDefaults (UIDefaults table) {
super.initComponentDefaults (table);

table.put ("ComboBox.font", MaterialFonts.REGULAR);
table.put ("OptionPane.font", MaterialFonts.REGULAR);
table.put ("ScrollPane.font", MaterialFonts.REGULAR);
table.put ("TextArea.font", MaterialFonts.REGULAR);
Expand All @@ -106,9 +116,6 @@ protected void initComponentDefaults (UIDefaults table) {
table.put ("MenuItem.selectionBackground", MaterialColors.GRAY_200);
table.put ("MenuItem.selectionForeground", Color.BLACK);

table.put ("PopupMenu.border", BorderFactory.createLineBorder (MaterialColors.GRAY_200, 1));
table.put ("PopupMenu.background", Color.WHITE);

table.put ("Menu.selectionBackground", MaterialColors.GRAY_200);
table.put ("Menu.selectionForeground", Color.BLACK);
table.put ("Menu.disabledForeground", new Color (0, 0, 0, 100));
Expand Down
24 changes: 24 additions & 0 deletions src/mdlaf/components/combobox/MaterialComboBoxRenderer.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
package mdlaf.components.combobox;

import mdlaf.resources.MaterialColors;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JList;
import javax.swing.plaf.basic.BasicComboBoxRenderer;
import java.awt.Color;
import java.awt.Component;

public class MaterialComboBoxRenderer extends BasicComboBoxRenderer {

@Override
public Component getListCellRendererComponent (JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
JComponent component = (JComponent) super.getListCellRendererComponent (list, value, index, isSelected, cellHasFocus);

component.setForeground (Color.BLACK);
component.setBackground (isSelected || cellHasFocus ? MaterialColors.GRAY_200 : Color.WHITE);
component.setBorder (BorderFactory.createEmptyBorder (5, 5, 5, 5));

return component;
}
}
53 changes: 53 additions & 0 deletions src/mdlaf/components/combobox/MaterialComboBoxUI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
package mdlaf.components.combobox;

import mdlaf.resources.MaterialBorders;
import mdlaf.resources.MaterialColors;
import mdlaf.resources.MaterialDrawingUtils;
import mdlaf.resources.MaterialFonts;
import mdlaf.resources.MaterialImages;

import javax.swing.BorderFactory;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JComponent;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicComboBoxUI;
import java.awt.Color;
import java.awt.Graphics;

public class MaterialComboBoxUI extends BasicComboBoxUI {

public static ComponentUI createUI (JComponent c) {
return new MaterialComboBoxUI ();
}

@Override
public void installUI (JComponent c) {
super.installUI (c);

JComboBox<?> comboBox = (JComboBox<?>) c;
comboBox.setFont (MaterialFonts.REGULAR);
comboBox.setBackground (Color.WHITE);
comboBox.setForeground (Color.BLACK);
comboBox.setBorder (BorderFactory.createCompoundBorder (MaterialBorders.LIGHT_LINE_BORDER, BorderFactory.createEmptyBorder (0, 5, 0, 0)));
comboBox.setLightWeightPopupEnabled (true);
comboBox.setRenderer (new MaterialComboBoxRenderer ());
}

@Override
protected JButton createArrowButton () {
JButton button = new JButton (new ImageIcon (MaterialImages.DOWN_ARROW));

button.setOpaque (true);
button.setBackground (MaterialColors.GRAY_300);
button.setBorder (BorderFactory.createEmptyBorder ());

return button;
}

@Override
public void paint (Graphics g, JComponent c) {
super.paint (MaterialDrawingUtils.getAliasedGraphics (g), c);
}
}
33 changes: 33 additions & 0 deletions src/mdlaf/components/popupmenu/MaterialPopupMenuUI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
package mdlaf.components.popupmenu;

import mdlaf.resources.MaterialBorders;
import mdlaf.resources.MaterialDrawingUtils;

import javax.swing.JComponent;
import javax.swing.JPopupMenu;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicPopupMenuUI;
import java.awt.Color;
import java.awt.Graphics;

public class MaterialPopupMenuUI extends BasicPopupMenuUI {

public static ComponentUI createUI (JComponent c) {
return new MaterialPopupMenuUI ();
}

@Override
public void installUI (JComponent c) {
super.installUI (c);

JPopupMenu popupMenu = (JPopupMenu) c;
popupMenu.setBorder (MaterialBorders.LIGHT_LINE_BORDER);
popupMenu.setBackground (Color.WHITE);
popupMenu.setForeground (Color.BLACK);
}

@Override
public void paint (Graphics g, JComponent c) {
super.paint (MaterialDrawingUtils.getAliasedGraphics (g), c);
}
}
60 changes: 60 additions & 0 deletions src/mdlaf/components/slider/MaterialSliderUI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
package mdlaf.components.slider;

import mdlaf.resources.MaterialBorders;
import mdlaf.resources.MaterialDrawingUtils;
import mdlaf.resources.MaterialFonts;

import javax.swing.BorderFactory;
import javax.swing.JComponent;
import javax.swing.JSlider;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicSliderUI;
import java.awt.Color;
import java.awt.Graphics;

public class MaterialSliderUI extends BasicSliderUI {

public MaterialSliderUI (JSlider slider) {
super (slider);
}

public static ComponentUI createUI (JComponent c) {
return new MaterialSliderUI ((JSlider) c);
}

@Override
public void installUI (JComponent c) {
super.installUI (c);

JSlider slider = (JSlider) c;
slider.setFont (MaterialFonts.REGULAR);
slider.setBackground (Color.WHITE);
slider.setForeground (Color.BLACK);
slider.setBorder (BorderFactory.createCompoundBorder (MaterialBorders.LIGHT_LINE_BORDER, BorderFactory.createEmptyBorder (5, 5, 5, 5)));
}

/*@Override
public void paintThumb (Graphics g) {
g = MaterialDrawingUtils.getAliasedGraphics (g);
g.setColor (Color.RED);
g.fillOval (this.thumbRect.x, this.thumbRect.y, this.getThumbSize ().height, this.getThumbSize ().height);
}
@Override
public void paintTrack (Graphics g) {
g = MaterialDrawingUtils.getAliasedGraphics (g);
g.setColor (this.slider.getForeground ());
g.drawLine (this.trackRect.x, this.trackRect.y + this.trackRect.height / 2, this.trackRect.x + this.trackRect.width, this.trackRect.y + this.trackRect.height / 2);
}*/

@Override
public void paintFocus (Graphics g) {

}

@Override
public void paint (Graphics g, JComponent c) {
super.paint (MaterialDrawingUtils.getAliasedGraphics (g), c);
}
}
41 changes: 41 additions & 0 deletions src/mdlaf/components/toolbar/MaterialToolBarUI.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
package mdlaf.components.toolbar;

import mdlaf.resources.MaterialBorders;
import mdlaf.resources.MaterialColors;
import mdlaf.resources.MaterialDrawingUtils;
import mdlaf.resources.MaterialFonts;

import javax.swing.JComponent;
import javax.swing.JToolBar;
import javax.swing.plaf.ComponentUI;
import javax.swing.plaf.basic.BasicToolBarUI;
import java.awt.Color;
import java.awt.Graphics;

public class MaterialToolBarUI extends BasicToolBarUI {

public static ComponentUI createUI (JComponent c) {
return new MaterialToolBarUI ();
}

@Override
public void installUI (JComponent c) {
super.installUI (c);
JToolBar toolBar = (JToolBar) c;

toolBar.setFont (MaterialFonts.REGULAR);
toolBar.setBackground (Color.WHITE);
toolBar.setForeground (Color.BLACK);
toolBar.setBorder (MaterialBorders.LIGHT_SHADOW_BORDER);

this.dockingBorderColor = null;
this.floatingBorderColor = null;
this.dockingColor = MaterialColors.LIGHT_GREEN_A100;
this.floatingColor = MaterialColors.GRAY_200;
}

@Override
public void paint (Graphics g, JComponent c) {
super.paint (MaterialDrawingUtils.getAliasedGraphics (g), c);
}
}

0 comments on commit 5943931

Please sign in to comment.