class Exam22_sub extends JFrame implements KeyListener, ActionListener{
private Container con;
private JTextArea ta = new JTextArea();
private JScrollPane jsp = new JScrollPane(ta);
private JMenuBar mb = new JMenuBar(); // 메뉴 바 생성
private JMenu file = new JMenu("File"); // 메뉴 바에 넣을 메뉴 하나 추가
private JMenuItem fexit = new JMenuItem("Exit"); // 메뉴의 서브메뉴 추가
public Exam22_sub(){
super("Exam22");
this.init();
this.start();
this.setSize(300,300);
this.setVisible(true);
}
public void init(){
this.setJMenuBar(mb); // 메뉴바 추가
file.setMnemonic('F'); // 메뉴 첫문자에 밑줄
mb.add(file); // 메뉴바에 메뉴 추가
KeyStroke ks = KeyStroke.getKeyStroke('E' , InputEvent.CTRL_MASK); // ctrl+e 조합 단축키 생성
fexit.setAccelerator(ks); // fexit 에 단축키 추가
file.add(fexit); // 메뉴에 서브 메뉴 추가
con = this.getContentPane();
con.setLayout(new BorderLayout());
con.add("Center",jsp);
}
public void start(){
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
ta.addKeyListener(this);
fexit.addActionListener(this);
}
public void keyTyped(KeyEvent e){
// 특정 키와 같이 눌린 키 이벤트 담당
if(e.getSource() == ta){
System.out.println("key = "+e.getKeyChar()); // 그냥 키
System.out.println(" mode = " + e.getModifiers()); // 조합된 키
KeyStroke ks = KeyStroke.getKeyStroke(e.getKeyChar(),e.getModifiers()); // 입력된 키
KeyStroke ks1 = KeyStroke.getKeyStroke('r',InputEvent.ALT_MASK); // alt+r 의 단축키 생성
//CTRL_MASK,SHIFT_MASK
if(ks.equals(ks1)){
System.out.println( " alt + r 을 눌렀습니다." );
}else{
System.out.println(ks);
}
}
}
public void keyPressed(KeyEvent e){}
public void keyReleased(KeyEvent e){}
public void actionPerformed(ActionEvent e){
if(e.getSource() == fexit){
System.exit(0);
}
}
}
'JAVA > Swing' 카테고리의 다른 글
InternalFrame Event , ListSelectionListener (0) | 2013.02.27 |
---|---|
Ancestor Event , Caret Event , Change Event (0) | 2013.02.27 |
Toolbar (0) | 2013.02.27 |
JTextComponent & JTextArea & JPasswordField (0) | 2013.02.27 |
JTabbedPane (0) | 2013.02.26 |