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

📄 commandpanel.java

📁 一个k-means算法的改进。使用了模糊聚类的方法
💻 JAVA
字号:
package kc.test.hac;import kc.test.SwingUtils;import kc.test.hac.actions.HACAbstractAction;import java.awt.*;import java.awt.event.ActionEvent;import javax.swing.*;import javax.swing.event.ChangeListener;import javax.swing.event.ChangeEvent;import java.util.Map;import java.util.Hashtable;import javax.swing.border.TitledBorder;import javax.swing.border.EtchedBorder;/** * @author Thomas Neidhart, thomas.neidhart@gmail.com, all rights by Know-Center * Date: Aug 3, 2005 * * Command Panel */public class CommandPanel extends JPanel implements ChangeListener{    private String[] linkageNames = { "Single", "Complete", "Average" };    private JComboBox linkageCombo;    private JSlider nodeSlider, zoomSlider;    private JButton initButton, startButton, stepButton, runButton, resetButton;    private Font font = new Font("serif", Font.PLAIN, 12);    private HACAbstractAction zoomAction;    /**     * Create a new command panel     * @param actions available action map     */    public CommandPanel(Map<String, HACAbstractAction> actions)    {        setLayout(new GridBagLayout());        setBorder(new TitledBorder(new EtchedBorder(), "Controls"));        JLabel l = new JLabel("Linkage Algorithm");        l.setFont(font);        SwingUtils.addToGridBag(this, l, 0, 0, 2, 1, 0.0, 0.0);        linkageCombo = new JComboBox();        linkageCombo.setPreferredSize(new Dimension(120, 18));        linkageCombo.setLightWeightPopupEnabled(true);        linkageCombo.setFont(font);        for (int i = 0; i < linkageNames.length; i++) {            linkageCombo.addItem(linkageNames[i]);        }        //distributionCombo.addItemListener(this);        SwingUtils.addToGridBag(this, linkageCombo, 0, 1, 2, 1, 0.0, 0.0);        nodeSlider = new JSlider(JSlider.HORIZONTAL, 0, 100, 10);        TitledBorder tb = new TitledBorder(new EtchedBorder());        tb.setTitleFont(font);        tb.setTitle("Number of nodes");        nodeSlider.setBorder(tb);        nodeSlider.setMinimumSize(new Dimension(80,56));        nodeSlider.setMajorTickSpacing(25);        nodeSlider.setMinorTickSpacing(5);        nodeSlider.setPaintTicks(true);        nodeSlider.setPaintLabels(true);        SwingUtils.addToGridBag(this, nodeSlider, 0, 2, 2, 1, 1.0, 1.0);        zoomSlider = new JSlider(JSlider.HORIZONTAL, 1, 20, 10);        tb = new TitledBorder(new EtchedBorder());        tb.setTitleFont(font);        tb.setTitle("Dendrogram zoom");        zoomSlider.setBorder(tb);        zoomSlider.setMinimumSize(new Dimension(80,56));        Hashtable labelTable = new Hashtable();        labelTable.put( new Integer( 1 ), new JLabel("0.1") );        labelTable.put( new Integer( 10 ), new JLabel("1.0") );        labelTable.put( new Integer( 20 ), new JLabel("2.0") );        zoomSlider.setLabelTable( labelTable );        zoomSlider.setPaintLabels(true);        zoomSlider.addChangeListener(this);        SwingUtils.addToGridBag(this, zoomSlider, 0, 3, 2, 1, 1.0, 1.0);        zoomAction = actions.get("Zoom Dendrogram");        initButton = new JButton(actions.get("Init"));        initButton.setFont(font);        SwingUtils.addToGridBag(this, initButton, 0, 4, 1, 1, 1.0, 1.0);        resetButton = new JButton(actions.get("Reset"));        resetButton.setFont(font);        SwingUtils.addToGridBag(this, resetButton, 1, 4, 1, 1, 1.0, 1.0);        startButton = new JButton(actions.get("Start"));        startButton.setFont(font);        SwingUtils.addToGridBag(this, startButton, 0, 5, 2, 1, 1.0, 1.0);        stepButton = new JButton(actions.get("Step"));        stepButton.setFont(font);        SwingUtils.addToGridBag(this, stepButton, 0, 6, 1, 1, 1.0, 1.0);        runButton = new JButton(actions.get("Run"));        runButton.setFont(font);        SwingUtils.addToGridBag(this, runButton, 1, 6, 1, 1, 1.0, 1.0);    }    public String getLinkage() {        return (String) linkageCombo.getSelectedItem();    }    public int getNodes() {        return nodeSlider.getValue();    }    public int getZoomLevel() {        return zoomSlider.getValue();    }    public Dimension getPreferredSize() {        return new Dimension(155,400);    }    public void setState(int state, int val) {        switch (state) {            case 1:                runButton.setEnabled(false);                stepButton.setEnabled(false);                resetButton.setEnabled(false);                startButton.setEnabled(false);                break;            case 2:                runButton.setText("Run");                runButton.setEnabled(false);                stepButton.setEnabled(false);                resetButton.setEnabled(false);                startButton.setEnabled(true);                break;            case 3:                runButton.setEnabled(false);                stepButton.setEnabled(false);                runButton.setText("Run");                break;            case 4:                resetButton.setEnabled(true);                runButton.setEnabled(true);                stepButton.setEnabled(true);                break;            case 5:                runButton.setText("Run: " + val + "x");                break;        }    }    public void stateChanged(ChangeEvent e) {        JSlider source = (JSlider)e.getSource();        if (!source.getValueIsAdjusting()) {            zoomAction.actionPerformed(new ActionEvent(this, 0, zoomAction.getActionCommand()));        }    }}

⌨️ 快捷键说明

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