Avatar billede concin Nybegynder
10. juli 2004 - 00:47 Der er 4 kommentarer og
1 løsning

keyPressed event driller

Godaften! Jeg leger stadig med min chat, og har videreudviklet den lidt. Men jeg sidder og roder lidt med noget, jeg ikke helt kan få til at virke. Det er sikkert simpelt, men alligevel driller det lidt :)

Jeg har min textbox, som man skriver i for at chatte. Derefter klikker man Send for at sende beskeden. Men jeg vil gerne forenkle det lidt og gøre således, at man kan nøjes med at taste Enter, når man har skrevet det, man ønsker. En af mine venner siger, at keykoden for Enter er 13, og jeg går da ud fra, han har ret i det han siger :)

  void txtChat_keyPressed(KeyEvent e) {
    if(e.getKeyCode() == 13) {
    // har også prøvet e.getKeyChar() == 13
      try {
        WriteChat();
      } catch (Exception exception) {}
    }
  }

Håber, I kan hjælpe med at løse denne lille drillepind...
Avatar billede simonvalter Praktikant
10. juli 2004 - 01:12 #1
Det er 10 eller vk_enter

    void txtChat_keyPressed(KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_ENTER)
        {
            try
            {
                WriteChat();
            }
            catch (Exception exception)
            {
                // ignore
            }
        }
    }
Avatar billede simonvalter Praktikant
10. juli 2004 - 01:28 #2
Nu er jeg ikke lige swing ekspert men jeg mener at operationer som muligvis kan tage tid at processe skal foretages i en seperat tråd så der ikke bliver blocket for nyt input.
Jeg mener at dette er metoden til at opnå det.


    void txtChat_keyPressed(KeyEvent e)
    {
        if (e.getKeyCode() == KeyEvent.VK_ENTER)
        {

            SwingUtilities.invokeLater(new Runnable() {

                public void run()
                {
                    WriteChat();
                }

            });

        }
    }
SwingUtilities.invokeLater har en anonym runnable klasse der kalder
WriteChat()
.. den kunne muligvis tage tid at proccesse og du har i mellemtiden mulighed for at sende flere til guien som så viser dem når den får tid til det.
Avatar billede simonvalter Praktikant
10. juli 2004 - 01:39 #3
Nu ved jeg ikke hvad grunden er til at du ikke håndterer din exception i det kode du har posted her men hvis du ikke har tænkt dig at gøre noget ved det var det måske en ide at cast det som en unchecked exception
public void WriteChat(){
try{
//kode
}catch (SomeCheckedException ex){
throw new RuntimeException(ex);
}
}

så slipper du for at håndtere den i txtChat_keyPressed


Her er lidt læsning om emnet
http://www.onjava.com/pub/a/onjava/2003/11/19/exceptions.html
Avatar billede concin Nybegynder
10. juli 2004 - 14:57 #4
Mange tak - geKeyCode() == KeyEvent.VK_ENTER virker perfekt, lige hvad jeg manglede! Smid et svar for point.
Avatar billede simonvalter Praktikant
10. juli 2004 - 14:59 #5
ok
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