2
JPopupMenu의 JMenuItems에 대한 바로 가기가 필요합니다. 아래 코드에서 바로 가기가 작동하지 않습니다.JPopupMenu의 JMenuItems에 대한 바로 가기 만들기
import java.awt.event.*;
import javax.swing.*;
import static java.awt.event.InputEvent.CTRL_DOWN_MASK;
public class test3 implements ActionListener {
JPopupMenu pop;
void gui() {
JFrame f = new JFrame();
pop = new JPopupMenu();
JMenuItem it1 = new JMenuItem("new");
JMenuItem it2 = new JMenuItem("old");
it1.setAccelerator(KeyStroke.getKeyStroke('N', CTRL_DOWN_MASK));
it2.setAccelerator(KeyStroke.getKeyStroke('O', CTRL_DOWN_MASK));
it1.addActionListener(this);
it2.addActionListener(this);
pop.add(it1);
pop.add(it2);
JTextArea ta = new JTextArea(20, 40);
ta.add(pop);
ta.addMouseListener(new MouseAdapter() {
public void mousePressed(MouseEvent me) {
if (me.isPopupTrigger()) {
pop.show(me.getComponent(), me.getX(), me.getY());
}
}
public void mouseReleased(MouseEvent me) {
if (me.isPopupTrigger()) {
pop.show(me.getComponent(), me.getX(), me.getY());
}
}
});
f.add(ta);
f.pack();
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.setVisible(true);
}
public void actionPerformed(ActionEvent ae) {
if (ae.getActionCommand().equals("new")) {
System.out.println("new");
} else if (ae.getActionCommand().equals("old")) {
System.out.println("old");
}
}
public static void main(String[] argv) {
test3 t = new test3();
t.gui();
}
}
코드를 포맷하려면 텍스트를 선택하고 중괄호 ({}) 모양의 아이콘을 클릭하십시오. 포함 된 br 태그를 제거 할 수 있습니다. –
"일하지 않는다"는 것은 무엇을 의미합니까? –
내가 Ctrl + n을 누르면 cmd에서 새로운 내용을 인쇄해야하지만 그렇지 않으면 ... actionevent가 발생하지 않습니다. 하지만 마우스 오른쪽 버튼을 클릭하고 새로운 작업을 클릭하면됩니다. – Roronoa