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

📄 colorpalette.java

📁 SWING的界面UI包 SWING的界面UI包
💻 JAVA
字号:
/* * ColorPalette.java * * Created on 2007-10-1, 15:58:54 * * To change this template, choose Tools | Templates * and open the template in the editor. */package dyno.swing.designer.properties.editors.accessibles;import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionListener;import javax.swing.BorderFactory;import javax.swing.ButtonGroup;import javax.swing.JButton;import javax.swing.JPopupMenu;import javax.swing.JToggleButton;import javax.swing.JToolBar;import javax.swing.border.Border;/** * * @author William Chen */public class ColorPalette extends JPopupMenu {    private Border BLACK_BORDER=BorderFactory.createLineBorder(new Color(127, 157, 185));    private Object[] colors = new Object[]{        new Object[]{"黑色", new Color(0, 0, 0)},         new Object[]{"深红", new Color(128, 0, 0)},         new Object[]{"红色", new Color(255, 0, 0)},         new Object[]{"粉红", new Color(255, 0, 255)},         new Object[]{"玫瑰红", new Color(255, 153, 204)},         new Object[]{"褐色", new Color(153, 51, 0)},         new Object[]{"桔黄", new Color(255, 102, 0)},         new Object[]{"浅桔黄", new Color(255, 153, 0)},         new Object[]{"金色", new Color(255, 204, 0)},         new Object[]{"棕黄", new Color(255, 204, 153)},         new Object[]{"", new Color(51, 51, 0)},         new Object[]{"", new Color(128, 128, 0)},         new Object[]{"", new Color(153, 204, 0)},         new Object[]{"", new Color(255, 255, 0)}, new Object[]{"", new Color(255, 255, 153)}, new Object[]{"", new Color(0, 51, 0)}, new Object[]{"", new Color(0, 128, 0)}, new Object[]{"", new Color(51, 153, 102)}, new Object[]{"", new Color(172, 168, 153)}, new Object[]{"", new Color(204, 255, 204)}, new Object[]{"", new Color(0, 51, 102)}, new Object[]{"", new Color(0, 128, 128)}, new Object[]{"", new Color(51, 204, 204)}, new Object[]{"", new Color(0, 255, 255)}, new Object[]{"", new Color(204, 255, 255)}, new Object[]{"", new Color(0, 0, 128)}, new Object[]{"", new Color(0, 0, 255)}, new Object[]{"", new Color(51, 102, 255)}, new Object[]{"", new Color(0, 204, 255)}, new Object[]{"", new Color(153, 204, 255)}, new Object[]{"", new Color(51, 51, 153)}, new Object[]{"", new Color(102, 102, 153)}, new Object[]{"", new Color(128, 0, 128)}, new Object[]{"", new Color(153, 51, 102)}, new Object[]{"", new Color(204, 153, 255)}, new Object[]{"", new Color(51, 51, 51)}, new Object[]{"", new Color(128, 128, 128)}, new Object[]{"", new Color(153, 153, 153)}, new Object[]{"", new Color(192, 192, 192)}, new Object[]{"", new Color(255, 255, 255)}};        private JButton btnDefault;    private JButton btnCustom;    private JToggleButton[] btnColors;    private ButtonGroup group;    public ColorPalette() {        setBorder(                BorderFactory.createCompoundBorder(                BLACK_BORDER,                 BorderFactory.createEmptyBorder(4, 4, 4, 4)));        setLayout(new BorderLayout());        JToolBar top_bar = getTopBar();        add(top_bar, BorderLayout.NORTH);        JToolBar palette_bar = getPaletteBar();        add(palette_bar, BorderLayout.CENTER);        JToolBar bottom_bar = getBottomBar();        add(bottom_bar, BorderLayout.SOUTH);    }    public void addDefaultAction(ActionListener l) {        btnDefault.addActionListener(l);    }    public void addCustomAction(ActionListener l) {        btnCustom.addActionListener(l);    }    public void addColorAction(ActionListener l) {        for (JToggleButton button : btnColors) {            button.addActionListener(l);        }    }    private JToolBar getBottomBar() {        JToolBar bottom_bar = new JToolBar();        bottom_bar.setOpaque(false);        bottom_bar.setLayout(new GridLayout(1, 1));        bottom_bar.setBorderPainted(false);        bottom_bar.setFloatable(false);        btnCustom = getBtnCustom();        bottom_bar.add(btnCustom);        return bottom_bar;    }    private JButton getBtnCustom() {        if (btnCustom == null) {            btnCustom = new JButton();            btnCustom.setBorder(BLACK_BORDER);            btnCustom.setFocusPainted(false);            btnCustom.setText("More colors ...");        }        return btnCustom;    }    private JButton getBtnDefault() {        if (btnDefault == null) {            btnDefault = new JButton();            btnDefault.setBorder(BLACK_BORDER);            btnDefault.setFocusPainted(false);            btnDefault.setText("Use default color");        }        return btnDefault;    }    private JToolBar getPaletteBar() {        JToolBar palette_bar = new JToolBar();        palette_bar.setOpaque(false);        GridLayout layout = new GridLayout(5, 8, 1, 1);        palette_bar.setLayout(layout);        palette_bar.setBorderPainted(false);        palette_bar.setFloatable(false);        group = new ButtonGroup();        btnColors = new JToggleButton[colors.length];        for (int i = 0; i < colors.length; i++) {            btnColors[i] = new JToggleButton();            Object[] color_object = (Object[]) colors[i];            String name = (String) color_object[0];            Color color = (Color) color_object[1];            btnColors[i].setIcon(new ColorIcon(name, color));            btnColors[i].setToolTipText(name);            btnColors[i].setFocusPainted(false);            group.add(btnColors[i]);            palette_bar.add(btnColors[i]);        }        return palette_bar;    }    private JToolBar getTopBar() {        JToolBar top_bar = new JToolBar();        top_bar.setBorderPainted(false);        top_bar.setOpaque(false);        top_bar.setFloatable(false);        top_bar.setLayout(new GridLayout(1, 1));        btnDefault = getBtnDefault();        top_bar.add(btnDefault);        return top_bar;    }    public void setChoosedColor(Color choosedColor) {        group.clearSelection();        if (choosedColor != null) {            for (int i = 0; i < colors.length; i++) {                Color c=(Color)((Object[])colors[i])[1];                if (c.equals(choosedColor)) {                    btnColors[i].setSelected(true);                    return;                }            }        }    }}

⌨️ 快捷键说明

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