JSpinner




스피너는 두 개의 화살표가 붙은 텍스트 필드이다.

 

텍스트 필드는 숫자를 표현하고 있고 사용자는 화살표를 클릭하여 값들을 증가 또는 감소시킬 수 있다.

 

주로 지정된 범위에서 개수를 정하거나날짜를 선택할 때 사용한다그 외 다른 용도로도 사용가능하다.

 

JSpinner

 생성자

  JSpinner()

  정수를 가지고 있는 SpinnerNumberModel이 초기값으로 0이 되어 새로운 스피너 객체를 생성한다.

  JSpinner(SpinnerModel sm)

 새로운 스피너 모델을 지정받은 스피너 객체를 생성한다.

 메소드

  void setValue(Object obj)

 값을 설정한다.

  Object getValue()

 선택된 값을 반환한다.

  Object getNextValue() 

 선택된 값의 다음 값을 반환한다.

  Object getPreviousValue()

 선택된 값의 이전 값을 반환한다.


 

스피너 모델(SpinnerModel를 상속받는다.)


String[] names = {“김철수”, “김영희”, “김숙자”, “김자몽”};

SpinnerListModel listModel = new SpinnerListModel(names);

 

SpinnerNumberModel numberModel = new SpinnerNumberModel(0, 1, 2, 3, 4, 5);


//최소날짜(start)와 최대날짜(end)를 지정할 수 있다. Calendar 객체는 증가&감소가 된다.

SpinnerDataModel dateModel = new SpinnerDateModel(value, start, end, Calendar.YEAR); 


- 스피너 모델은 총 4가지가 있다.

  • AbstractSpinnerModel

  • SpinnerDateModel

  • SpinnerListModel

  • SpinnerNumberModel







- JSpinner 예제

 

public class SpinnerTest extends JFrame {

	//FIELDS
	private String[] name = {"김철수", "김숙자", "김영희", "김자몽"};
	private JPanel panel = new JPanel();
	private JSpinner spinner;

	//CONSTRUCTOR
	SpinnerTest() {
		setTitle("스피너 예제");
		setSize(500, 200);
		setDefaultCloseOperation(JFrame.EXITE_ON_CLOSE);

		// List Model
		SpinnerListModel listModel = new SpinnerListModel(name);
		spinner = new JSpinner(listModel);
		panel.add(spinner);

		// Number Model
		SpinnerNumberModel numberModel = new SpinnerNumberModel(1, 2, 3, 4, 5, 6);
		spinner = new JSpinner(numberModel);
		panel.add(spinner);

		// Date Model
		Calendar calendar = Calendar.getInstance(); //갤린더 객체 얻기
		Date value = calendar.getTime(); //현재 시간 얻기
		
		calendar.add(Calendar.YEAR, -50); // 50년 전의 날짜 얻기
		Date start = calendar.getTime(); //50년 전의 날짜를 최소 날짜로 지정
		
		calendar.add(Calendar.YEAR, 100); // 50년 뒤의 날짜 얻기 +50하면 현재날짜가됨.
		Date end = calendar.getTime(); //50년 뒤의 날짜를 최대 날짜로 지정

		SpinnerDateModel dateModel = new SpinnerDateModel(value, start, end, Calnedar.YEAR);
		spinner = new JSpinner(datemodel);
		spinner.setEditor(new JSpinner.DateEditor(spinner, "yyyy/MM/dd")); //날짜 편집기 지정
		panel.add(spinner);

		add(panel);
		setVisible(true);
	}

	//METHODS
	public static void main(String[] args) {
		new SpinnerTest();
	}
}


'Programming Language > JAVA' 카테고리의 다른 글

29. JTree - 트리  (0) 2017.06.29
28. JSlider - 슬라이더  (0) 2017.06.29
26. JComboBox - 콤보박스  (0) 2017.06.29
25. JList - 리스트  (0) 2017.06.25
24. JScrollPane - 스크롤 페인  (0) 2017.06.25

+ Recent posts