📄 sliderpanel.java
字号:
package org.theblueplanet.annealing.ui;
import java.awt.GridLayout;
import javax.swing.BorderFactory;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JSlider;
import javax.swing.border.EtchedBorder;
import org.theblueplanet.annealing.AnnealingScheme;
/**
* Container class for the JSliders. This Component lies on the AnnealingPanel
*
* @see org.theblueplanet.annealing.ui.AnnealingPanel
* @see org.theblueplanet.annealing.ui.CoolingRateSlider
* @see org.theblueplanet.annealing.ui.ToleranceSlider
* @see org.theblueplanet.annealing.ui.NIterationsSlider
* @see org.theblueplanet.annealing.ui.TemperatureSlider
*
* @author Charles M間nin
* @since October 29, 2001
* @version 1.0
*/
public class SliderPanel extends JPanel {
private TemperatureSlider tSlider;
private CoolingRateSlider rSlider;
private NIterationsSlider iSlider;
private ToleranceSlider tolSlider;
private AnnealingScheme annealingScheme;
private static String TITLE = "Annealing Scheme Selector";
private static String temperatureLabel = "Starting Temperature (Log)";
private static String coolingRateLabel = "Cooling rate";
private static String iterationsLabel = "Number of iterations";
private static String toleranceLabel = "Fractional tolerance (Log)";
/**
* Constructor for the SliderPanel object
*
* @param parent The AnnealingPanel that instantiated the SliderPanel
* @param annealingScheme The Object that encapsulates the annealing parameters
*/
public SliderPanel(AnnealingPanel parent, AnnealingScheme annealingScheme) {
super();
this.annealingScheme = annealingScheme;
init(parent);
}
/**
* resets all sliders to the AnnealingScheme values
*
* @param annealingScheme The Object that encapsulates the annealing parameters
*/
public void resetValues(AnnealingScheme annealingScheme) {
annealingScheme.setDefaultValues();
tSlider.setValue((int) Math.round(Math.log(annealingScheme.getTemperature()) / Math.log(10)));
rSlider.setValue(annealingScheme.getCoolingRate());
iSlider.setValue(annealingScheme.getNIterations());
tolSlider.setValue((int) Math.round(Math.log(annealingScheme.getTolerance()) / Math.log(10)));
}
/**
* Instantiates JSliders
*
* @param parent The AnnealingPanel that instantiated the SliderPanel
*/
private void init(AnnealingPanel parent) {
tSlider = new TemperatureSlider(parent, annealingScheme);
rSlider = new CoolingRateSlider(parent, annealingScheme);
iSlider = new NIterationsSlider(parent, annealingScheme);
tolSlider = new ToleranceSlider(parent, annealingScheme);
display();
}
/**
* Constructs JPanel
*/
private void display() {
this.setLayout(new GridLayout(5, 2));
this.add(new JLabel(TITLE, JLabel.RIGHT));
this.add(new JLabel(""));
this.add(new JLabel(temperatureLabel, JLabel.LEFT));
this.add(tSlider);
this.add(new JLabel(coolingRateLabel, JLabel.LEFT));
this.add(rSlider);
this.add(new JLabel(iterationsLabel, JLabel.LEFT));
this.add(iSlider);
this.add(new JLabel(toleranceLabel, JLabel.LEFT));
this.add(tolSlider);
this.setBorder(BorderFactory.createEtchedBorder(EtchedBorder.RAISED));
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -