JCheckBox는 JToggleButton의 하위 클래스로, 체크(선택) 또는 체크 해제(미선택) 상태를 표시하는 작은 상자 형태의 스윙 컴포넌트입니다. 사용자가 JCheckBox를 클릭하면 체크 상태와 체크 해제 상태가 자동으로 전환됩니다. 또한 체크박스의 상태가 변경될 때마다 ActionListener 또는 ItemListener 이벤트를 발생시켜 원하는 동작을 처리할 수 있습니다.
JCheckBox에 단축키(바로 가기 키)를 설정하려면 setMnemonic() 메서드를 사용합니다. 이 메서드에 특정 문자를 전달하면 해당 문자가 체크박스 라벨에 강조되어 표시되며, Alt 키와 함께 그 문자를 누르면 마우스 클릭 없이도 체크박스를 선택하거나 해제할 수 있어 접근성과 사용성이 크게 향상됩니다.
예제 코드
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class JCheckBoxShortCutKeyTest extends JFrame {
private JCheckBox checkBox;
public JCheckBoxShortCutKeyTest() {
setTitle("JCheckBoxShortCutKey Test");
checkBox = new JCheckBox("Check or Press ALT-C");
checkBox.setBorder(BorderFactory.createLineBorder(Color.lightGray));
checkBox.setMnemonic('C'); // Alt + C 단축키 설정
add(checkBox, BorderLayout.CENTER);
checkBox.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
JOptionPane.showMessageDialog(null, "A Checkbox checked or pressed");
}
});
setSize(400, 300);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setVisible(true);
}
public static void main(String args[]) throws Exception {
new JCheckBoxShortCutKeyTest();
}
}
코드 설명
위 예제에서 핵심은 checkBox.setMnemonic('C') 부분입니다. 이 한 줄이 체크박스에 Alt + C 단축키를 등록하며, 라벨 텍스트 "Check or Press ALT-C"의 'C' 문자와 연결됩니다. 이후 ActionListener를 추가하여 체크박스가 선택되거나 해제될 때마다 메시지 대화상자가 표시되도록 했습니다.
실행 결과

프로그램을 실행하면 화면 중앙에 체크박스가 배치된 창이 나타납니다. 마우스로 체크박스를 직접 클릭해도 되고, Alt + C 키를 눌러도 동일하게 상태가 전환되면서 "A Checkbox checked or pressed" 메시지 대화상자가 출력됩니다.