티스토리 뷰

체크박스 JCheckBox

 

패널 생성 후 프레임에 부착

체크박스 생성 후 패널에 부착

public void showFrame() {
JFrame f = new JFrame();
f.setBounds(400, 300, 400, 200);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

JPanel p = new JPanel();
f.add(p, BorderLayout.CENTER);

JCheckBox cb1 = new JCheckBox("Java");
JCheckBox cb2 = new JCheckBox("JSP");
JCheckBox cb3 = new JCheckBox("Android");
JCheckBox cb4 = new JCheckBox("전체선택");

p.add(cb1); p.add(cb2); p.add(cb3); p.add(cb4);

f.setVisible(true);
}

 

 

전체선택 /  해제되게 만들어보기

cb4.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {

        cb1.setSelected(cb4.isSelected());
        cb2.setSelected(!cb4.isSelected());	// 혼자 반대로~
        cb3.setSelected(cb4.isSelected());
        cb4.setText(cb4.isSelected() ? "전체선택 해제" : "전체선택");

    }
});

여기서 등장한 토글의 개념과

if ~ else 구문일 때 이런 식으로도 가능하다는 걸 떠올리자!

 


콤보박스 JComboBox

여러 항목을 목록 형태로 나열하는 컴포넌트

= UIPlatform (XPatform, miplatform, Nexacro)

= selectBox (HTML, JavaScript), DropDownList = DDL(C#)

- 목록은 Vector 객체를 사용하여 저장하고, JComboBox 객체 생성자에 전달하여 표시한다.

 

콤보박스에 표시할 데이터를 Vector 객체에 전달

이름을 문자열로 저장하므로 제네릭 타입을 String 타입으로 지정

Vector<String> listData = new Vector<String>();
listData.add("항목을 선택하시오");
listData.add("항목1");
listData.add("항목2");
listData.add("항목3");

 

JComboBox 객체 생성 시 생성자 파라미터로 목록이 저장된 Vector 객체 전달

JComboBox comboBox = new JComboBox(listData);
p.add(comboBox);

프레임에 부착할 경우

 

JComboBox를 먼저 생성하고 차후에 데이터를 추가하는 게 가능하다(setVisible 때 통합된다)

 

입력된 값을 출력 (제목 제외)

comboBox.addActionListener(new ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        // 콤보박스에 선택된 항목이 출력
	//	System.out.println(comboBox.getSelectedIndex());
	//	System.out.println(comboBox.getSelectedItem());
    
        // 첫번째 항목(제목)을 제외한 나머지를 선택했을 때만 항목 출력
        if(comboBox.getSelectedIndex() > 0) {
            System.out.println(comboBox.getSelectedItem());
        }
    }
});

if(comboBox.getSelectedIndex() != 0) 보다 if(comboBox.getSelectedIndex() > 0) 의 연산속도가 더 빠르다 

 

 


스피너 JSpinner

- 데이터를 목록 형태로 사용하는 것은 콤보박스와 같다.

목록을 모두 표시하지 않고 화살표를 눌러서 목록을 하나씩 회전시키는 컴포넌트

- 별다른 데이터 추가 및 설정이 없을 경우, 기본적으로 정수 데이터가 사용된다.

 

리스트니까 ArrayList 사용해서

JSpinner spinner = new JSpinner();

ArrayList<String> items = new ArrayList<String>();
items.add("자바"); items.add("JSP"); items.add("Android");

SpinnerListModel slm = new SpinnerListModel(items);
spinner.setModel(slm);
f.add(spinner);

순서는 입력한 순서대로(거꾸로) 출력된다

 

 

람다식 사용해서 값이 출력되게 만들기

spinner.addChangeListener(e -> {
    System.out.println(spinner.getValue());
});

f.add(spinner, BorderLayout.CENTER);

 

 

'배운 것 기록 > java' 카테고리의 다른 글

절대값 구하기 - 삼항연산자 / Math.abs()  (1) 2022.10.06
JTable  (0) 2022.07.28
JOptionPane  (0) 2022.07.27
JTextField, JPanel  (0) 2022.07.27
레이아웃(layout)  (0) 2022.07.26
댓글
최근에 올라온 글
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함