⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 borders.java

📁 漂亮的java swing 界面
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
package com.flat;
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.plaf.*;
import javax.swing.plaf.basic.*;
import javax.swing.plaf.metal.*;


public class Borders extends MetalBorders {
  private static Border butBorder;
  private static Border popupMenuBorder;
  private static Border rolloverButtonBorder;
  private static Border scrollPaneBorder;
  private static Border internalFrameBorder;
  private static Border menuBarBorder;
  private static Border toolBarBorder;
  private static Border genBorder;
  private static Border genEmptyBorder;
  private static Border genThinBorder;
  private static Border genMenuBorder;
  private static Border genTextFieldBorder;
  private static Border genComboEditorBorder;
  private static Border genComboButtonBorder;
  private static Border genToolTipBorder;
  
  
  public static Border getToolTipBorder() {
    if ( genToolTipBorder == null) {
      genToolTipBorder = new ToolTipBorder();
    }
    return genToolTipBorder;
  }
  
  public static Border getInternalFrameBorder() {
    if ( internalFrameBorder == null) {
      internalFrameBorder = new InternalFrameBorder();
    }
    return internalFrameBorder;
  }

  public static Border getPopupMenuBorder() {
    if ( popupMenuBorder == null) {
  	  popupMenuBorder = new PopupMenuBorder();
    }
    return popupMenuBorder;
  }  
  
  public static Border getButtonBorder() {
    if ( butBorder == null) {
  	  butBorder = new BorderUIResource.CompoundBorderUIResource( new Borders.ButtonBorder(),
                                                                 new BasicBorders.MarginBorder());
    }
    return butBorder;
  }

  public static Border getRolloverButtonBorder() {
    if ( rolloverButtonBorder == null) {
      rolloverButtonBorder = new RolloverButtonBorder();
    }
    return rolloverButtonBorder;
  }
  
  public static Border getScrollPaneBorder() {
    if ( scrollPaneBorder == null) {
      scrollPaneBorder = new ScrollPaneBorder();
    }
    return scrollPaneBorder;
  }
  
  public static Border getMenuBarBorder() {
    if ( menuBarBorder == null) {
      menuBarBorder = new MenuBarBorder();
    }
    return menuBarBorder;
  }
  
  public static Border getToolBarBorder() {
    if ( toolBarBorder == null) {
      toolBarBorder = new ToolBarBorder();
    }
    return toolBarBorder;
  }
  
  public static Border getGenMenuBorder() {
    if ( genMenuBorder == null) {
      genMenuBorder = new MenuBorder();
    }
    return genMenuBorder;
  }
  
  public static Border getComboEditorBorder() {
    if ( genComboEditorBorder == null) {
      genComboEditorBorder = new ComboEditorBorder();
    }
    return genComboEditorBorder;
  }
  
  public static Border getComboButtonBorder() {
    if ( genComboButtonBorder == null) {
      genComboButtonBorder = new ComboButtonBorder();
    }
    return genComboButtonBorder;
  }
  
  public static Border getGenBorder() {
    if ( genBorder == null) {
      genBorder = new GenBorder();
    }
    return genBorder;
  }
  
  public static Border getEmptyGenBorder() {
    if ( genEmptyBorder == null) {
      genEmptyBorder = new EmptyGenBorder();
    }
    return genEmptyBorder;
  }
  
  public static Border getThinGenBorder() {
    if ( genThinBorder == null) {
      genThinBorder = new ThinGenBorder();
    }
    return genThinBorder;
  }
  
  public static Border getTextFieldBorder() {
    if ( genTextFieldBorder == null) {
      genTextFieldBorder = new TextFieldBorder();
    }
    return genTextFieldBorder;
  }
  
	
	public static class ButtonBorder extends AbstractBorder implements UIResource {
    private static final long serialVersionUID = -2083885266582056467L;
    
    protected static Insets borderInsets = new Insets( 0,0, 0,0);
    
    public void paintBorder( Component c, Graphics g, int x, int y, int w, int h) {
      if ( !((AbstractButton)c).isBorderPainted() ) {
        return;
      }
      
      g.translate( x, y);
      
      Graphics2D g2D = (Graphics2D)g;
      g2D.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
      
      g2D.setColor( LookAndFeel.getControlDarkShadow());
      g2D.drawRoundRect( 0,0, w-1,h-1, 8,8);
          
      if ( c instanceof JButton ) {
        JButton button = (JButton)c;
  
        if ( button.isDefaultButton() ) {
          g2D.setColor( LookAndFeel.getControlDarkShadow().darker());
          g2D.drawRoundRect( 1,1, w-3,h-3, 7,7);
        }
      }
      
      g2D.setRenderingHint( RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_DEFAULT);
    }
    
    public Insets getBorderInsets( Component c) {
      return borderInsets;
    }

    public Insets getBorderInsets( Component c, Insets insets) {
      Insets tmpIns = getBorderInsets( c);
      
      insets.top = tmpIns.top;
      insets.left = tmpIns.left;
      insets.bottom = tmpIns.bottom;
      insets.right = tmpIns.right;
      
      return insets;
    }
  }
  
  public static class PopupMenuBorder extends AbstractBorder implements UIResource {
    private static final long serialVersionUID = -2083885266582056468L;
    
    protected static Insets borderInsets = new Insets( 1,1, 5,5);

    public void paintBorder( Component c, Graphics g, int x, int y, int w, int h ) {
	    g.translate( x, y);

      g.setColor( LookAndFeel.getControlDarkShadow());
	    g.drawRect( 0, 0, w-5, h-5);
      
      Icon icono = UIManager.getIcon( "BorderPopupMenu.SombraEsqIcon");
      icono.paintIcon( c, g, w-5,h-5);
      
      icono = UIManager.getIcon( "BorderPopupMenu.SombraUpIcon");
      icono.paintIcon( c, g, w-5,0);
      
      icono = UIManager.getIcon( "BorderPopupMenu.SombraIzqIcon");
      icono.paintIcon( c, g, 0,h-5);
      
      icono = UIManager.getIcon( "BorderPopupMenu.SombraBajIcon");
      g.drawImage( ((ImageIcon)icono).getImage(), 5,h-5, w-10, icono.getIconHeight(), null);
      
      icono = UIManager.getIcon( "BorderPopupMenu.SombraDerIcon");
      g.drawImage( ((ImageIcon)icono).getImage(), w-5,5, icono.getIconWidth(),h-10, null);
	   
      g.translate( -x, -y);
    }

    public Insets getBorderInsets( Component c ) {
      return borderInsets;
    }

    public Insets getBorderInsets( Component c, Insets insets) {
      Insets tmpIns = getBorderInsets( c);
      
      insets.top = tmpIns.top;
      insets.left = tmpIns.left;
      insets.bottom = tmpIns.bottom;
      insets.right = tmpIns.right;
      
      return insets;
    }
  }
  
  public static class ToolTipBorder extends PopupMenuBorder implements UIResource {
    private static final long serialVersionUID = -7253367634568230481L;
  }
  
  public static class RolloverButtonBorder extends AbstractBorder implements UIResource {
    private static final long serialVersionUID = -2083885266582056469L;
    
    protected static Insets borderInsets = new Insets( 3,3, 3,3);
    
    public void paintBorder( Component c, Graphics g, int x, int y, int w, int h) {
      if ( !((AbstractButton)c).isBorderPainted() ) {
        return;
      }
      ButtonModel model = ((AbstractButton)c).getModel();
      
	    if ( model.isRollover() ) { //&& !( model.isPressed() && !model.isArmed() ) ) {
    		g.setColor( LookAndFeel.getControlDarkShadow());
  			g.drawRoundRect( 0,0, w-1,h-1, 8,8);
  			
    		RoundRectangle2D.Float boton = new RoundRectangle2D.Float(); 
        boton.x = 0;
        boton.y = 0;
        boton.width = c.getWidth();
        boton.height = c.getHeight();
        boton.arcwidth = 8;
        boton.archeight = 8;
        
        GradientPaint grad = null;
        if ( model.isPressed() ) {
        	grad = new GradientPaint( 0,0, Utils.getSombra(), 
                                    0,c.getHeight()/2, Utils.getBrillo());
    		}
    		else {
        	grad = new GradientPaint( 0,0, Utils.getBrillo(), 
                                    0,c.getHeight(), Utils.getSombra());
    		}
    		
    		Graphics2D g2D = (Graphics2D)g;
    		
        g2D.setPaint( grad);
        g2D.fill( boton);
      }
    }
    
    public Insets getBorderInsets( Component c ) {
      return borderInsets;
    }

    public Insets getBorderInsets( Component c, Insets insets) {
      Insets tmpIns = getBorderInsets( c);
      
      insets.top = tmpIns.top;
      insets.left = tmpIns.left;
      insets.bottom = tmpIns.bottom;
      insets.right = tmpIns.right;
      
      return insets;
    }
  }
  
  public static class InternalFrameBorder extends AbstractBorder implements UIResource {
    private static final long serialVersionUID = -4691959764241705857L;
    
    private static final int grosor = 4;
    
    protected static Insets ins = new Insets( 0,grosor, 5+grosor, 5+grosor);

    public void paintBorder( Component c, Graphics g, int x, int y, int w, int h ) {
      g.translate( x, y);

      Graphics2D g2D = (Graphics2D)g.create();
      
      g2D.setComposite( AlphaComposite.getInstance( AlphaComposite.SRC_OVER, Utils.getFrameOpacityFloat()));
      
      Color colIzq, colDer;
      GradientPaint grad;
      if ( ((JInternalFrame)c).isSelected() ) {
        grad = new GradientPaint( 0,0, LookAndFeel.getPrimaryControlDarkShadow(), 
                                  w,0, LookAndFeel.getPrimaryControl());
        colIzq = LookAndFeel.getPrimaryControlDarkShadow();
        colDer = LookAndFeel.getPrimaryControl();
      }
      else {
        grad = new GradientPaint( 0,0, LookAndFeel.getControl(), 
                                  w,0, LookAndFeel.getControlDarkShadow());
        colIzq = LookAndFeel.getControl();
        colDer = LookAndFeel.getControlDarkShadow();
      }

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -