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

📄 coolingrateslider.java

📁 eclispse下运行 模拟退火算法的java源代码
💻 JAVA
字号:
package org.theblueplanet.annealing.ui;

import javax.swing.JSlider;

import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;

import org.apache.log4j.Logger;

import org.theblueplanet.annealing.AnnealingScheme;

/**
 *  The cooling rate JSlider lying on the SliderPanel
 *
 * @author     Charles M間nin
 * @since    October 29, 2001
 * @version    1.0
 */
public class CoolingRateSlider extends JSlider {
    private AnnealingScheme scheme;
    private AnnealingPanel parent;
    private final static int minValue  = 0;
    private final static int maxValue  = 100;
    private static Logger logger = Logger.getLogger("org.theblueplanet.annealing");


    /**
     *  Constructor for the CoolingRateSlider object
     *
     * @param  parent  The AnnealingPanel that instantiated the CoolingRateSlider
     * @param  scheme  The Object that encapsulates the annealing parameters
     */
    public CoolingRateSlider(AnnealingPanel parent, AnnealingScheme scheme) {
        super(JSlider.HORIZONTAL, minValue, maxValue, scheme.getCoolingRate());
        logger.debug("Instantiating " + this.getClass().getName());
        this.scheme = scheme;
        this.parent = parent;
        init();
    }

    /**
     *  Sets parameters and adds Listener
     */
    private void init() {
        this.setToolTipText("Cooling rate (%)");
        this.setMajorTickSpacing(10);
        this.setMinorTickSpacing(2);
        this.setPaintTicks(true);
        this.setPaintLabels(true);
        this.addChangeListener(new SliderListener());
    }

    /**
     *  Listens to the slider.
     */
    private class SliderListener implements ChangeListener {
        public void stateChanged(ChangeEvent e) {
            JSlider source  = (JSlider) e.getSource();
            if (!source.getValueIsAdjusting()) {
                try {
                    int value  = (int) source.getValue();
                    scheme.setCoolingRate(value);
                    parent.updateSummaryPanel(scheme);
                } catch (Exception ex) {
                    ex.printStackTrace();
                }
            }
        }
    }

}

⌨️ 快捷键说明

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