Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java에서 JSlider의 값 변경을 감지하는 방법은 무엇입니까?


JSlider JComponent의 하위 클래스입니다. 클래스이며 사용자가 지정된 정수 값 범위에서 숫자 값을 선택할 수 있도록 하는 스크롤 막대와 유사합니다. JSlider 노브가 있음 값의 범위에서 미끄러질 수 있고 특정 값을 선택하는 데 사용할 수 있습니다. ChangeListener를 생성할 수 있습니다. 인터페이스.

Graphics2D를 사용하여 슬라이더를 수평으로 이동할 때 변경된 값을 감지할 수 있습니다. 클래스 및 재정의 paint() 방법.

예시

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class ValueChangeJSliderTest extends JFrame {
   private JSlider slider;
   public ValueChangeJSliderTest() {
      setTitle("ValueChangeJSlider Test");
      slider = new JSlider(JSlider.HORIZONTAL, 0, 20, 1);
      slider.addChangeListener(new ChangeListener() {
         public void stateChanged(ChangeEvent ce) {
            repaint();
         }
      });
      setLayout(new BorderLayout());
      slider.setBackground(Color.white);
      slider.setMajorTickSpacing(1);
      slider.setPaintTicks(true);
      slider.setPaintLabels(true);
      add(slider, BorderLayout.NORTH);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public void paint(Graphics g) {
      super.paint(g);
      Graphics2D g2d = (Graphics2D) g;
      g2d.setFont(new Font("Serif", Font.ITALIC, 25));
      g2d.drawString(""+slider.getValue(), 200, 130);
   }
   public static void main(String[] args) {
      new ValueChangeJSliderTest();
   }
}

출력

Java에서 JSlider의 값 변경을 감지하는 방법은 무엇입니까?