Denne her skulle vist løse problemet. public class MyKeyListener implements KeyListener { private JButton button; public MyKeyListener( JButton button ) { this.button = button; } public void keyPressed(KeyEvent ke) { if ( ke.getKeyCode()==KeyEvent.VK_ENTER ) button.doClick(); } public void keyReleased(KeyEvent ke){} public void keyTyped(KeyEvent ke){} }
Du skal tilføje MyKeyListener til det panel du vil have der skal lyttes efter enter i, og konstruktoren til MyKeyListener skal have den knap overført som den skal trykke ned.
jeg må desværre sige at det ikke virker. dette er hvad jeg har gjort JPanel panel = new JPanel(); .... .... MyKeyListener nyListener = new MyKeyListener(okButton); panel.addKeyListener(nyListener); såå ??
Du skal ikke oprette et nyt panel du skal bruge den komponent du ønsker der skal lytte efter "enter". Du kan ikke bare lytte efter det globalt, det skal være "et sted", f.eks. et JPanel. Jeg ved ikke hvilke komponenter du kommer i en JFrame eller hvad du gør. Her er et eksempel der illustrerer hvad der skal gøres. Jeg bruger ovenstående MyKeyListener.
JFrame frame = new JFrame("Titel"); Container c = frame.getContentPane(); c.setLayout( new FlowLayout() ); JButton button = new JButton("Press me"); button.addActionListener( new ActionListener() { public void actionPerformed( ActionEvent ae ) { System.out.println("I was pressed!"); } }); c.add( button ); JPanel panel = new JPanel(); JLabel label = new JLabel("This is a listening label."); panel.add( label ); KeyListener listener = new MyKeyListener(button); panel.addKeyListener(listener); c.add(panel); frame.pack(); frame.show();
kanon carstenknudsen>> det sidste eksempel - tændte lige et lys :) takker
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.