Avatar billede thojo Nybegynder
10. december 2003 - 21:47 Der er 9 kommentarer og
4 løsninger

tryk Enter skal være det samme som at trykke på en knap

Jeg har en velkomstskærm til et spil jeg er ved at udvikle hvor brugere kan indtaste et spillernavn og så trykke "Start spil", men vil gerne have at man bare kan trykke Enter og så starter den alligevel.
Kan det lade sig gøre?
Avatar billede simonvalter Praktikant
10. december 2003 - 21:58 #1
du kan bruge
jButtonStartSpil.doClick();
Avatar billede simonvalter Praktikant
10. december 2003 - 22:00 #2
void jTextFieldSpillerNavn_keyPressed(KeyEvent e) {
    if (e.getKeyChar() == KeyEvent.VK_ENTER) {
      jButtonStartSpil.doClick();
    }
Avatar billede thojo Nybegynder
10. december 2003 - 22:01 #3
okay, hvordan skal jeg sætte det ind. Der hvor jeg laver knappen?


        g.startSpil.addMouseListener(new java.awt.event.MouseAdapter()
        {
            public void mouseClicked(MouseEvent start)
            {   
                spillerNavn = g.indtastNavn.getText();
               
                startHvad = false;
               
                startSpil();
            }
        });
Avatar billede thojo Nybegynder
10. december 2003 - 22:01 #4
ahh.. du var lige lidt hurtigere :)
prøver det lige
Avatar billede thojo Nybegynder
10. december 2003 - 22:35 #5
den reagerer ikke lige umiddelbart på det.. skal man ikke have sådan en keylistener også?
Avatar billede thojo Nybegynder
10. december 2003 - 22:43 #6
jeg har ikke tingede liggende i noget JPanel som jeg kan se andre refererer til når de laver keylistener, men så vidt jeg kan forstå er det kun en mulighed at gøre det sådan, så der må være en løsning uden JPanel også..
Avatar billede mikkelbm Nybegynder
10. december 2003 - 22:48 #7
prøv at se om følgende ikke virker:

JButton button = new JButton("Hej");
button.addKeyListener(new KeyListener()
{
    public void keyTyped(KeyEvent e)
    {
        if(e.getKeyChar() == KeyEvent.VK_ENTER)
        {
            // et eller andet!
        }
    }
       
    public void keyReleased(KeyEvent e)
    {}

    public void keyPressed(KeyEvent e)
    {}

});
Avatar billede mikkelbm Nybegynder
10. december 2003 - 23:03 #8
Og hvis det er dit textfield du vil lytte på, skal du gøre følgende:

JTextField field = new JTextField(4);

field.addKeyListener(new KeyListener()
{
    public void keyTyped(KeyEvent e)
    {
        if(e.getKeyChar() == KeyEvent.VK_ENTER)
        {
            System.out.println("TEST");
        }
    }
   
    public void keyReleased(KeyEvent e)
    {}
       
    public void keyPressed(KeyEvent e)
    {}
});
Avatar billede labanos Nybegynder
11. december 2003 - 08:37 #9
ik for at sige noget men du har sikkert allerede en ActionListener til din knap, hvis du også smider en ActionListener på dit JTextField, så laver den en actionEvent når man trykker på enter og står i dit textfield... og det er vel det du vil have, at man taster navnet og trykker enter, uden at skulle trykke på knappen... så har du ydermere den samme evnethåndtering det samme sted nelmig actionPerformed....
Avatar billede labanos Nybegynder
11. december 2003 - 08:38 #10
nemlig even
Avatar billede _carsten Nybegynder
11. december 2003 - 08:38 #11
Der er en metode beregnet til opgaven

import javax.swing.*;

JRootPane root = getRootPane();
root.setDefaultButton(minStartSpilKnap);
Avatar billede thojo Nybegynder
11. december 2003 - 10:02 #12
Fik det til at virke i en større kombi af jeres kode, så pointene bliver lige fordelt..
Avatar billede thojo Nybegynder
11. december 2003 - 10:02 #13
Fik det til at virke i en større kombi af jeres kode, så pointene bliver lige fordelt..
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester