Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java에서 JSlider 방향을 프로그래밍 방식으로 수평/수직으로 변경하는 방법

JSliderJComponent 클래스의 하위 클래스로, 스크롤 바와 유사한 형태의 스윙(Swing) 컴포넌트입니다. 사용자가 지정된 정수 값 범위 내에서 숫자 값을 선택할 수 있도록 해주며, 값 범위 위를 미끄러지듯 이동하는 노브(knob)를 통해 특정 값을 선택합니다.

JSlider는 ChangeListener 인터페이스를 생성할 수 있으며, 주요 메서드로는 getMaximum(), getMinimum(), getOrientation(), getValue(), setValue() 등이 있습니다.

JSlider의 기본 방향은 수평(horizontal)입니다. 만약 메뉴 바의 메뉴 항목을 선택해 방향을 동적으로 전환하고 싶다면, 해당 메뉴 항목에 ActionListener 인터페이스를 등록한 뒤 actionPerformed() 메서드 안에서 JSlider 클래스의 setOrientation() 메서드를 호출하여 프로그래밍 방식으로 수직(vertical) 방향으로 변경할 수 있습니다.

예제 코드

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class JSliderVerticalHorizontalTest extends JFrame implements ActionListener {
   private JSlider slider;
   private JMenuBar menuBar;
   private JMenu menu;
   private JMenuItem menuItem1, menuItem2;

   public JSliderVerticalHorizontalTest() {
      setTitle("JSliderVerticalHorizontal Test");
      setLayout(new FlowLayout());
      menuBar = new JMenuBar();
      menu = new JMenu("JSlider Orientation");
      menuItem1 = new JMenuItem("HORIZONTAL");
      menuItem2 = new JMenuItem("VERTICAL");
      menu.add(menuItem1);
      menu.add(menuItem2);
      menuItem1.addActionListener(this);
      menuItem2.addActionListener(this);
      menuBar.add(menu);
      setJMenuBar(menuBar);
      slider = new JSlider(JSlider.HORIZONTAL, 0, 30, 15);
      add(slider);
      setSize(400, 300);
      setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      setLocationRelativeTo(null);
      setVisible(true);
   }
   public static void main(String[] args) {
      new JSliderVerticalHorizontalTest();
   }
   public void actionPerformed(ActionEvent ae) {
      if (ae.getActionCommand().equals("HORIZONTAL"))
         slider.setOrientation(JSlider.HORIZONTAL);
      else if (ae.getActionCommand().equals("VERTICAL"))
         slider.setOrientation(JSlider.VERTICAL);
   }
}

코드 설명

위 예제에서는 메뉴 바에 'JSlider Orientation' 메뉴를 추가하고, 그 아래에 HORIZONTAL과 VERTICAL 두 개의 메뉴 항목을 배치했습니다. 각 메뉴 항목에 액션 리스너를 등록하여, 사용자가 항목을 클릭하면 actionPerformed() 메서드가 호출되고 선택된 명령에 따라 setOrientation() 메서드로 슬라이더의 방향이 즉시 전환됩니다.

실행 결과

프로그램을 실행하면 기본적으로 수평 방향의 슬라이더가 표시됩니다.

Java에서 JSlider 방향을 프로그래밍 방식으로 수평/수직으로 변경하는 방법

메뉴에서 VERTICAL 항목을 선택하면 슬라이더가 다음과 같이 수직 방향으로 변경됩니다.

Java에서 JSlider 방향을 프로그래밍 방식으로 수평/수직으로 변경하는 방법