Java Swing - Creating JSlider and Listening to ChangeEvent [Updated: Apr 2, 2018, Created: Apr 2, 2018] |
|
||
Following is a basic JSlider example. We will use JSlider to change the radius of a circle. We will also add Examplepublic class JSliderExampleMain {
public static void main(String[] args) {
JFrame frame = createFrame();
JSlider slider = createSlider();
CirclePanel circlePanel = new CirclePanel();
slider.addChangeListener(changeEvent -> {
JSlider s = (JSlider) changeEvent.getSource();
circlePanel.setRadius(s.getValue());
});
frame.add(slider, BorderLayout.NORTH);
frame.add(circlePanel);
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
private static JSlider createSlider() {
JSlider slider = new JSlider();
slider.setMaximum(100);
slider.setValue(50);
slider.setMajorTickSpacing(10);
slider.setMinorTickSpacing(5);
slider.setPaintTicks(true);
slider.setPaintLabels(true);
return slider;
}
private static JFrame createFrame() {
JFrame frame = new JFrame("JSlider Basic example");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(new Dimension(400, 300));
return frame;
}
}
public class CirclePanel extends JPanel {
private int radius = 50;
public CirclePanel() {
setBorder(BorderFactory.createLineBorder(Color.GRAY, 3));
}
public void setRadius(int radius) {
this.radius = radius;
repaint();
}
@Override
protected void paintComponent(Graphics g) {
super.paintComponent(g);
g.setColor(Color.pink);
g.fillOval(getWidth() / 2 - radius,
getHeight() / 2 - radius,
2 * radius, 2 * radius);
}
}
Output
Example ProjectDependencies and Technologies Used:
|
|
||
|
|
|||
|
|
|||
|
|
|||