JSlider允许我们通过沿着轨道滑动旋钮从两个整数之间的值列表中选择一个值。
JSlider有四个重要的属性:
方向确定是水平还是垂直显示。我们可以使用SwingConstants.VERTICAL和SwingConstants.HORIZONTAL值来定向它。
以下代码创建一个水平JSlider,最小值为0,最大值为10,当前值设置为5:
JSlider points = new JSlider(0, 10, 5);
要获取JSlider的当前值,请使用其getValue()方法。要设置当前值,请使用其setValue(int value)方法。
要在JSlider上显示次要和主要刻度,设置需要显示这些tick的间隔,并调用其方法来启用刻画画,如下面的代码。
points.setMinorTickSpacing(1); points.setMajorTickSpacing(2); points.setPaintTicks(true);
在JSlider中显示标准标签或显示沿轨道值的自定义标签。
标准标签将显示沿轨道的整数值,我们可以调用其setPaintLabels(true)方法在主刻度间距显示整数值。
JSlider也支持自定义标签。 JSlider上的标签使用JLabel组件显示。 我们需要创建一个带有值标签对的Hashtable,并使用它的setLabelTable()方法设置标签。
以下代码将值0设置为标签“差",值5设置为“平均值",值10设置为“极好"。
设置标签表不会显示标签。 我们必须调用setPaintLabels(true)方法来显示它们。
Hashtable labelTable = new Hashtable(); labelTable.put(new Integer(0), new JLabel("Poor")); labelTable.put(new Integer(5), new JLabel("Average")); labelTable.put(new Integer(10), new JLabel("Excellent")); // Set the labels for the JSlider and make them visible points.setLabelTable(labelTable); points.setPaintLabels(true);
import java.awt.Dimension; import javax.swing.JFrame; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Main { public static void main(String[] args) { JFrame f = new JFrame(); final JSlider slider = new JSlider(0, 150, 0); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); slider.setPreferredSize(new Dimension(150, 30)); slider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent event) { int value = slider.getValue(); if (value == 0) { System.out.println("0"); } else if (value > 0 && value <= 30) { System.out.println("value > 0 && value <= 30"); } else if (value > 30 && value < 80) { System.out.println("value > 30 && value < 80"); } else { System.out.println("max"); } } }); f.add(slider); f.pack(); f.setLocationRelativeTo(null); f.setVisible(true); } }
以下代码显示如何设置tick的距离和样式。
import java.awt.BorderLayout; //from w w w. j a va 2 s . co m import javax.swing.BoundedRangeModel; import javax.swing.JFrame; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Tick Slider"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JSlider jSliderOne = new JSlider(); // Major Tick 25 - Minor 5 jSliderOne.setMinorTickSpacing(5); jSliderOne.setMajorTickSpacing(25); jSliderOne.setPaintTicks(true); jSliderOne.setSnapToTicks(true); frame.add(jSliderOne, BorderLayout.NORTH); frame.setSize(300, 200); frame.setVisible(true); } }
下面的代码显示了如何标签JSlider位置:使用文本标记JSlider。
import java.awt.BorderLayout; import java.util.Hashtable; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JSlider; public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Tick Slider"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); JSlider jSliderOne = new JSlider(); jSliderOne.setPaintLabels(true); Hashtable<Integer, JLabel> table = new Hashtable<Integer, JLabel>(); table.put (0, new JLabel(new ImageIcon("yourFile.gif"))); table.put (10, new JLabel("Ten")); table.put (25, new JLabel("Twenty-Five")); table.put (34, new JLabel("Thirty-Four")); table.put (52, new JLabel("Fifty-Two")); table.put (70, new JLabel("Seventy")); table.put (82, new JLabel("Eighty-Two")); jSliderOne.setLabelTable (table); frame.add(jSliderOne, BorderLayout.NORTH); frame.setSize(300, 200); frame.setVisible(true); } }
下面的代码显示了如何为JSlider设置ThumbIcon。
import java.awt.BorderLayout; import javax.swing.Icon; import javax.swing.ImageIcon; import javax.swing.JFrame; import javax.swing.JSlider; import javax.swing.UIDefaults; import javax.swing.UIManager; public class Main { public static void main(String args[]) { JFrame frame = new JFrame("Tick Slider"); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // No Ticks JSlider jSliderOne = new JSlider(); Icon icon = new ImageIcon("yourFile.gif"); UIDefaults defaults = UIManager.getDefaults(); defaults.put("Slider.horizontalThumbIcon", icon); frame.add(jSliderOne, BorderLayout.NORTH); frame.setSize(300, 200); frame.setVisible(true); } }
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.GridLayout; import java.awt.event.AdjustmentEvent; import java.awt.event.AdjustmentListener; import javax.swing.JFrame; import javax.swing.JPanel; import javax.swing.JScrollBar; import javax.swing.JSlider; import javax.swing.event.ChangeEvent; import javax.swing.event.ChangeListener; public class Main { public static void main(String[] args) { JFrame frame = new JFrame(); JPanel main = new JPanel(new GridLayout(2, 1)); JPanel scrollBarPanel = new JPanel(); final JScrollBar scrollBar = new JScrollBar(JScrollBar.HORIZONTAL, 0, 48, 0, 255); int height = scrollBar.getPreferredSize().height; scrollBar.setPreferredSize(new Dimension(175, height)); scrollBarPanel.add(scrollBar); main.add(scrollBarPanel); JPanel sliderPanel = new JPanel(); final JSlider slider = new JSlider(JSlider.HORIZONTAL, 0, 255, 128); slider.setMajorTickSpacing(48); slider.setMinorTickSpacing(16); slider.setPaintTicks(true); sliderPanel.add(slider); main.add(sliderPanel); frame.add(main, BorderLayout.CENTER); scrollBar.addAdjustmentListener(new AdjustmentListener() { public void adjustmentValueChanged(AdjustmentEvent e) { System.out.println("JScrollBar"s current value = " + scrollBar.getValue()); } }); slider.addChangeListener(new ChangeListener() { public void stateChanged(ChangeEvent e) { System.out.println("JSlider"s current value = " + slider.getValue()); } }); frame.pack(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } }
MyBatis-Plus 条件构造器-AbstractWrapperhaving(String sqlHaving, Object... params)having(boolean condition...
安装要使用MyBatis,只需将mybatis-x.x.x.jar文件置于类路径(classpath)中即可。如果使用Maven来构建项目,则需将下面的依...
映射器(mappers)既然MyBatis的行为已经由上述元素配置完了,我们现在就要来定义SQL映射语句了。但首先,我们需要告诉MyBatis到...
春天教程 - 春天松散耦合例子...项目代码我们将创建一个有几个类的项目。项目将以不同的格式输出数据。我们可以选择以CSV格式或J...
Spring教程 - 弹簧属性我们可以将值或值列表填充到Spring xml配置文件中定义的Java bean。以下部分显示如何将数据填充到java.uti...
Spring教程 -Spring表达式语言运算符Spring Expression Language支持标准的数学,逻辑或关系运算符。Spring Expression Language...
MVC 框架教程Spring web MVC 框架提供了模型-视图-控制的体系结构和可以用来开发灵活、松散耦合的 web 应用程序的组件。MVC 模式...