30. april 2009 - 10:16
Der er
6 kommentarer og 1 løsning
java multi keystroke
Hej jeg har følgende kode: jPanel1.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_M ,InputEvent.ALT_DOWN_MASK), "_F"); jPanel1.getActionMap().put("_F", new AbstractAction(){ public void actionPerformed(ActionEvent ae){ System.out.println("hej"); } }); nu skriver den "hej" hvis jeg trykke "m" og "alt" tasten ned. Hvordan laver jeg hvis man ska trykke "m" "u" og "alt"?
Annonceindlæg tema
Offentlig digitalisering
Fra effektivisering til digital suverænitet. Hvordan skaber det offentlige en digital fremtid med AI, sikkerhed og kontrol i centrum?
30. april 2009 - 15:10
#1
Saa vidt jeg ved kan man ikke teste paa ALT+M+U men du kan teste paa ALT+M og ALT+U. Og saa maa du definere at ALT+M efterfulgt af ALT+U eller ALT+U efterfulgt af ALT+M goer det du vil.
25. august 2009 - 15:27
#3
kan du give et kode eksempel, jeg forstår det i teorien, men ik hvordan det skal kodes.
25. august 2009 - 16:50
#4
Jeg kan proeve og bixe noget senere.
26. august 2009 - 05:21
#5
Simpel demo: package august; import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.InputEvent; import java.awt.event.KeyEvent; import javax.swing.AbstractAction; import javax.swing.JComponent; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; import javax.swing.KeyStroke; import javax.swing.SwingUtilities; public class MultiKeys extends JFrame { private final static int WAITING_ALTM = 1; private final static int WAITING_ALTU = 2; private JPanel p; private int state; public MultiKeys() { setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); getContentPane().setLayout(new BorderLayout()); setTitle("Multi key demo"); p = new JPanel(); p.add(new JLabel("Press ALT/M and ALT/U")); p.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_M ,InputEvent.ALT_DOWN_MASK), "_ALTM"); p.getActionMap().put("_ALTM", new AbstractAction(){ public void actionPerformed(ActionEvent ae){ if(state == WAITING_ALTM) { JOptionPane.showMessageDialog(null, "ALT/M pressed"); state = WAITING_ALTU; } else { JOptionPane.showMessageDialog(null, "Press ALT/U !!!!"); } } }); p.getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(KeyEvent.VK_U ,InputEvent.ALT_DOWN_MASK), "_ALTU"); p.getActionMap().put("_ALTU", new AbstractAction(){ public void actionPerformed(ActionEvent ae){ if(state == WAITING_ALTU) { JOptionPane.showMessageDialog(null, "ALT/U pressed"); state = WAITING_ALTM; } else { JOptionPane.showMessageDialog(null, "Press ALT/M !!!!"); } } }); getContentPane().add(p, BorderLayout.CENTER); setSize(600, 400); state = WAITING_ALTM; } public static void main(String[] args) { SwingUtilities.invokeLater(new Runnable() { public void run() { JFrame f = new MultiKeys(); f.setVisible(true); } }); } }
26. august 2009 - 14:51
#6
tak, smid et svar
26. august 2009 - 14:57
#7
svar
Kurser inden for grundlæggende programmering