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

📄 shape.java

📁 It is all about project scheduling. GanttProject is a tool for creating a project schedule by means
💻 JAVA
字号:
package net.sourceforge.ganttproject.shape;/** **@author Etienne L'kenfack (etienne.lkenfack@itcogita.com) */import java.awt.BorderLayout;import java.awt.Color;import java.awt.GridLayout;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.util.ArrayList;import javax.swing.BorderFactory;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JScrollPane;import javax.swing.event.ListSelectionEvent;import javax.swing.event.ListSelectionListener;public class Shape extends JPanel implements ActionListener,        ListSelectionListener {    public static final boolean COMBO = true;    public static final boolean LIST = false;    protected ArrayList listeners = new ArrayList();    protected boolean compactDisplay;    protected JPaintCombo patternCombo;    protected JPaintCombo foregroundCombo;    protected JPaintCombo backgroundCombo;    protected JPaintList patternList;    protected JPaintList foregroundList;    protected JPaintList backgroundList;    protected PreviewPanel preview;    public Shape(boolean compactDisplay) {        this.compactDisplay = compactDisplay;        JPanel choicePanel = new JPanel(new BorderLayout(4, 4));        preview = new PreviewPanel();        if (compactDisplay) {            JPanel prompts = new JPanel(new GridLayout(3, 1, 4, 4));            prompts.add(new JLabel("Pattern:", JLabel.RIGHT));            prompts.add(new JLabel("Foreground:", JLabel.RIGHT));            prompts.add(new JLabel("Background:", JLabel.RIGHT));            JPanel menus = new JPanel(new GridLayout(3, 1, 4, 4));            menus.add(patternCombo = new JPaintCombo(                    ShapeConstants.PATTERN_LIST));            menus.add(foregroundCombo = new JPaintCombo(                    ColorConstants.SHORT_LIST));            menus.add(backgroundCombo = new JPaintCombo(                    ColorConstants.SHORT_LIST));            patternCombo.addActionListener(this);            foregroundCombo.addActionListener(this);            backgroundCombo.addActionListener(this);            choicePanel.add(BorderLayout.WEST, prompts);            choicePanel.add(BorderLayout.CENTER, menus);            preview.setPattern((ShapePaint) patternCombo.getSelectedPaint());        } else {            JPanel labels = new JPanel(new GridLayout(1, 3, 4, 4));            labels.add(new JLabel("Pattern:"));            labels.add(new JLabel("Foreground:"));            labels.add(new JLabel("Background:"));            patternList = new JPaintList(ShapeConstants.PATTERN_LIST);            foregroundList = new JPaintList(ColorConstants.SHORT_LIST);            backgroundList = new JPaintList(ColorConstants.SHORT_LIST);            JPanel lists = new JPanel(new GridLayout(1, 3, 4, 4));            lists.add(new JScrollPane(patternList,                    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,                    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));            lists.add(new JScrollPane(foregroundList,                    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,                    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));            lists.add(new JScrollPane(backgroundList,                    JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,                    JScrollPane.HORIZONTAL_SCROLLBAR_NEVER));            patternList.addListSelectionListener(this);            foregroundList.addListSelectionListener(this);            backgroundList.addListSelectionListener(this);            choicePanel.add(BorderLayout.NORTH, labels);            choicePanel.add(BorderLayout.CENTER, lists);            preview.setPattern((ShapePaint) patternList.getSelectedPaint());        }        setBorder(BorderFactory.createEmptyBorder(4, 4, 4, 4));        setLayout(new BorderLayout(8, 8));        add(BorderLayout.NORTH, choicePanel);        add(BorderLayout.CENTER, preview);    }    public void actionPerformed(ActionEvent event) {        Object source = event.getSource();        if (source == patternCombo) {            preview.setPattern((ShapePaint) patternCombo.getSelectedPaint());        }        if (source == foregroundCombo) {            preview.setForeground((Color) foregroundCombo.getSelectedPaint());        }        if (source == backgroundCombo) {            preview.setBackground((Color) backgroundCombo.getSelectedPaint());        }        fireActionEvent();        preview.repaint();    }    public void valueChanged(ListSelectionEvent event) {        if (event.getValueIsAdjusting())            return;        Object source = event.getSource();        if (source == patternList) {            preview.setPattern((ShapePaint) patternList.getSelectedPaint());        }        if (source == foregroundList) {            preview.setForeground((Color) foregroundList.getSelectedPaint());        }        if (source == backgroundList) {            preview.setBackground((Color) backgroundList.getSelectedPaint());        }        fireActionEvent();        preview.repaint();    }    public ShapePaint getPattern() {        return preview.getPattern();    }    public void setPattern(ShapePaint pattern) {        preview.setPattern(pattern);        if (compactDisplay) {            patternCombo.setSelectedItem(new ShapePaint(pattern, Color.black,                    Color.white));            foregroundCombo.setSelectedItem(pattern.foreground);            backgroundCombo.setSelectedItem(pattern.background);        } else {            patternList.setSelectedValue(new ShapePaint(pattern, Color.black,                    Color.white), true);            foregroundList.setSelectedValue(pattern.foreground, true);            backgroundList.setSelectedValue(pattern.background, true);        }        fireActionEvent();    }    public void addActionListener(ActionListener listener) {        listeners.add(listener);    }    public void removeActionListener(ActionListener listener) {        listeners.remove(listener);    }    public void fireActionEvent() {        ActionEvent event = new ActionEvent(this, ActionEvent.ACTION_PERFORMED,                "Pattern");        ArrayList list = (ArrayList) listeners.clone();        ActionListener listener;        for (int i = 0; i < list.size(); i++) {            listener = (ActionListener) list.get(i);            listener.actionPerformed(event);        }    }}

⌨️ 快捷键说明

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