📄 metalborders.java
字号:
public void paintBorder( Component c, Graphics g, int x, int y, int w, int h ) { AbstractButton b = (AbstractButton) c; ButtonModel model = b.getModel(); if ( model.isRollover() && !( model.isPressed() && !model.isArmed() ) ) { super.paintBorder( c, g, x, y, w, h ); } } } /** * A border which is like a Margin border but it will only honor the margin * if the margin has been explicitly set by the developer. * * Note: This is identical to the package private class * BasicBorders.RolloverMarginBorder and should probably be consolidated. */ static class RolloverMarginBorder extends EmptyBorder { public RolloverMarginBorder() { super(3,3,3,3); // hardcoded margin for JLF requirements. } public Insets getBorderInsets(Component c) { return getBorderInsets(c, new Insets(0,0,0,0)); } public Insets getBorderInsets(Component c, Insets insets) { Insets margin = null; if (c instanceof AbstractButton) { margin = ((AbstractButton)c).getMargin(); } if (margin == null || margin instanceof UIResource) { // default margin so replace insets.left = left; insets.top = top; insets.right = right; insets.bottom = bottom; } else { // Margin which has been explicitly set by the user. insets.left = margin.left; insets.top = margin.top; insets.right = margin.right; insets.bottom = margin.bottom; } return insets; } } public static class ToolBarBorder extends AbstractBorder implements UIResource, SwingConstants { protected MetalBumps bumps = new MetalBumps( 10, 10, MetalLookAndFeel.getControlHighlight(), MetalLookAndFeel.getControlDarkShadow(), UIManager.getColor("ToolBar.background")); public void paintBorder( Component c, Graphics g, int x, int y, int w, int h ) { g.translate( x, y ); if ( ((JToolBar) c).isFloatable() ) { if ( ((JToolBar) c).getOrientation() == HORIZONTAL ) { int shift = MetalLookAndFeel.usingOcean() ? -1 : 0; bumps.setBumpArea( 10, h - 4 ); if( MetalUtils.isLeftToRight(c) ) { bumps.paintIcon( c, g, 2, 2 + shift ); } else { bumps.paintIcon( c, g, w-12, 2 + shift ); } } else // vertical { bumps.setBumpArea( w - 4, 10 ); bumps.paintIcon( c, g, 2, 2 ); } } if (((JToolBar) c).getOrientation() == HORIZONTAL && MetalLookAndFeel.usingOcean()) { g.setColor(MetalLookAndFeel.getControl()); g.drawLine(0, h - 2, w, h - 2); g.setColor(UIManager.getColor("ToolBar.borderColor")); g.drawLine(0, h - 1, w, h - 1); } g.translate( -x, -y ); } public Insets getBorderInsets( Component c ) { return getBorderInsets(c, new Insets(0,0,0,0)); } public Insets getBorderInsets(Component c, Insets newInsets) { if (MetalLookAndFeel.usingOcean()) { newInsets.set(1, 2, 3, 2); } else { newInsets.top = newInsets.left = newInsets.bottom = newInsets.right = 2; } if ( ((JToolBar) c).isFloatable() ) { if ( ((JToolBar) c).getOrientation() == HORIZONTAL ) { if (c.getComponentOrientation().isLeftToRight()) { newInsets.left = 16; } else { newInsets.right = 16; } } else {// vertical newInsets.top = 16; } } Insets margin = ((JToolBar) c).getMargin(); if ( margin != null ) { newInsets.left += margin.left; newInsets.top += margin.top; newInsets.right += margin.right; newInsets.bottom += margin.bottom; } return newInsets; } } private static Border buttonBorder; /** * Returns a border instance for a JButton * @since 1.3 */ public static Border getButtonBorder() { if (buttonBorder == null) { buttonBorder = new BorderUIResource.CompoundBorderUIResource( new MetalBorders.ButtonBorder(), new BasicBorders.MarginBorder()); } return buttonBorder; } private static Border textBorder; /** * Returns a border instance for a text component * @since 1.3 */ public static Border getTextBorder() { if (textBorder == null) { textBorder = new BorderUIResource.CompoundBorderUIResource( new MetalBorders.Flush3DBorder(), new BasicBorders.MarginBorder()); } return textBorder; } private static Border textFieldBorder; /** * Returns a border instance for a JTextField * @since 1.3 */ public static Border getTextFieldBorder() { if (textFieldBorder == null) { textFieldBorder = new BorderUIResource.CompoundBorderUIResource( new MetalBorders.TextFieldBorder(), new BasicBorders.MarginBorder()); } return textFieldBorder; } public static class TextFieldBorder extends Flush3DBorder { public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { if (!(c instanceof JTextComponent)) { // special case for non-text components (bug ID 4144840) if (c.isEnabled()) { MetalUtils.drawFlush3DBorder(g, x, y, w, h); } else { MetalUtils.drawDisabledBorder(g, x, y, w, h); } return; } if (c.isEnabled() && ((JTextComponent)c).isEditable()) { MetalUtils.drawFlush3DBorder(g, x, y, w, h); } else { MetalUtils.drawDisabledBorder(g, x, y, w, h); } } } public static class ScrollPaneBorder extends AbstractBorder implements UIResource { private static final Insets insets = new Insets(1, 1, 2, 2); public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { JScrollPane scroll = (JScrollPane)c; JComponent colHeader = scroll.getColumnHeader(); int colHeaderHeight = 0; if (colHeader != null) colHeaderHeight = colHeader.getHeight(); JComponent rowHeader = scroll.getRowHeader(); int rowHeaderWidth = 0; if (rowHeader != null) rowHeaderWidth = rowHeader.getWidth(); g.translate( x, y); g.setColor( MetalLookAndFeel.getControlDarkShadow() ); g.drawRect( 0, 0, w-2, h-2 ); g.setColor( MetalLookAndFeel.getControlHighlight() ); g.drawLine( w-1, 1, w-1, h-1); g.drawLine( 1, h-1, w-1, h-1); g.setColor( MetalLookAndFeel.getControl() ); g.drawLine( w-2, 2+colHeaderHeight, w-2, 2+colHeaderHeight ); g.drawLine( 1+rowHeaderWidth, h-2, 1+rowHeaderWidth, h-2 ); g.translate( -x, -y); } public Insets getBorderInsets(Component c) { return insets; } } private static Border toggleButtonBorder; /** * Returns a border instance for a JToggleButton * @since 1.3 */ public static Border getToggleButtonBorder() { if (toggleButtonBorder == null) { toggleButtonBorder = new BorderUIResource.CompoundBorderUIResource( new MetalBorders.ToggleButtonBorder(), new BasicBorders.MarginBorder()); } return toggleButtonBorder; } /** * @since 1.3 */ public static class ToggleButtonBorder extends ButtonBorder { public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { AbstractButton button = (AbstractButton)c; ButtonModel model = button.getModel(); if (MetalLookAndFeel.usingOcean()) { if(model.isArmed() || !button.isEnabled()) { super.paintBorder(c, g, x, y, w, h); } else { g.setColor(MetalLookAndFeel.getControlDarkShadow()); g.drawRect(0, 0, w - 1, h - 1); } return; } if (! c.isEnabled() ) { MetalUtils.drawDisabledBorder( g, x, y, w-1, h-1 ); } else { if ( model.isPressed() && model.isArmed() ) { MetalUtils.drawPressed3DBorder( g, x, y, w, h ); } else if ( model.isSelected() ) { MetalUtils.drawDark3DBorder( g, x, y, w, h ); } else { MetalUtils.drawFlush3DBorder( g, x, y, w, h ); } } } } /** * Border for a Table Header * @since 1.3 */ public static class TableHeaderBorder extends javax.swing.border.AbstractBorder { protected Insets editorBorderInsets = new Insets( 2, 2, 2, 0 ); public void paintBorder(Component c, Graphics g, int x, int y, int w, int h) { g.translate( x, y ); g.setColor( MetalLookAndFeel.getControlDarkShadow() ); g.drawLine( w-1, 0, w-1, h-1 ); g.drawLine( 1, h-1, w-1, h-1 ); g.setColor( MetalLookAndFeel.getControlHighlight() ); g.drawLine( 0, 0, w-2, 0 ); g.drawLine( 0, 0, 0, h-2 ); g.translate( -x, -y ); } public Insets getBorderInsets( Component c ) { return editorBorderInsets; } } /** * Returns a border instance for a Desktop Icon * @since 1.3 */ public static Border getDesktopIconBorder() { return new BorderUIResource.CompoundBorderUIResource( new LineBorder(MetalLookAndFeel.getControlDarkShadow(), 1), new MatteBorder (2,2,1,2, MetalLookAndFeel.getControl())); } static Border getToolBarRolloverBorder() { if (MetalLookAndFeel.usingOcean()) { return new CompoundBorder( new MetalBorders.ButtonBorder(), new MetalBorders.RolloverMarginBorder()); } return new CompoundBorder(new MetalBorders.RolloverButtonBorder(), new MetalBorders.RolloverMarginBorder()); } static Border getToolBarNonrolloverBorder() { if (MetalLookAndFeel.usingOcean()) { new CompoundBorder( new MetalBorders.ButtonBorder(), new MetalBorders.RolloverMarginBorder()); } return new CompoundBorder(new MetalBorders.ButtonBorder(), new MetalBorders.RolloverMarginBorder()); }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -