Avatar billede skov_p Praktikant
31. oktober 2002 - 11:09 Der er 13 kommentarer og
1 løsning

Var shift holdt nede???

Jeg har en knap som jeg gerne vil have til at udføre en anden handling hvis Shift holdes nede når der klikkes på den. Hvad gør jeg???
Avatar billede di8leva Nybegynder
31. oktober 2002 - 11:10 #1
hur ser din kod ut?
Avatar billede skov_p Praktikant
31. oktober 2002 - 11:26 #2
Jeg har kun leget lidt med det men ideen er at hvis fx. shift holden nede
får man et preview ellers skrives der ud på en printer.

private void btPrint_click(Object source, Event evt)
    {
        int shift = 71; //Ved ikke endnu hvilken værdi Shift har
        int key = |HVILKEN TAST HOLDES NEDE LIGE NU|
        printer = new FeederPrinter(1);
            for(int i=0;i<listBox1.getItemCount();i++){
              String line[]= {listBox1.getItem(i).toString()};
              printer.addLine(line);
            }
            if(key==shift)
                printer.print();
            else
                printer.preview();
    }
Avatar billede di8leva Nybegynder
31. oktober 2002 - 11:35 #3
jag kænner ikke nån måde att hente den tast som er holden nede vid en viss tidpunkt, men någon annan måske vet...

annars ær du nog nødt till att anvænda keylisteners...
Avatar billede carstenknudsen Nybegynder
31. oktober 2002 - 12:28 #4
Du kan benytte evt.isShiftDown() hvis du har
en InputEvent og ikke bare en Event. Du skal
så ændre den formelle parameter evt til InputEvent.
Avatar billede carstenknudsen Nybegynder
31. oktober 2002 - 12:30 #5
PS KeyEvent og MouseEvent er InputEvents.
Avatar billede di8leva Nybegynder
31. oktober 2002 - 12:54 #6
carsten.... virker det også med ActionEvent?
Avatar billede skov_p Praktikant
31. oktober 2002 - 12:56 #7
Til carstenknudsen
Det skal skæres ud i pap.
Kan du vise et eksempel
Avatar billede carstenknudsen Nybegynder
31. oktober 2002 - 13:48 #8
private void btPrint_click(Object source, InputEvent evt) {
// start kode som din egen ovenfor
if (evt.isShiftDown()) {
printer.print();
}
else {
printer.preview();
}
}
Avatar billede skov_p Praktikant
31. oktober 2002 - 14:01 #9
Jeg mangler vist at importere noget "Undefined Name 'InputEvent'"
Avatar billede skov_p Praktikant
31. oktober 2002 - 14:15 #10
OK så er det importeret
men hvis jeg ændre Event til InputEvent får jeg en fejl.
Class Form1 dosent have a method that matches
'btPrint_click(Object, Event)'
Avatar billede aslan Nybegynder
31. oktober 2002 - 14:39 #11
component.addKeyListener(new java.awt.event.KeyAdapter()
        {

          public void keyPressed(KeyEvent e)
          {

              if (e.isShiftDown() && e.getKeyCode() == KeyEvent.VK_1 )
              {

                    //gør noget              }
              if (e.isControlDown() && e.getKeyCode() == KeyEvent.VK_2 )
              {

                    //gør noget andet              }             
          }
      });
Avatar billede carstenknudsen Nybegynder
31. oktober 2002 - 14:40 #12
Det er fordi du kalder metoden btPrint_click
med en Event. Du skal caste den til en
InputEvent:
btPrint_click(myObject,(InputEvent)myEvent);
Det skal virke da du har en MouseEvent
(du klikker på en knap).
Avatar billede carstenknudsen Nybegynder
31. oktober 2002 - 14:43 #13
aslan: husk at der skal tastes på en
knap, det er ikke bare shift der skal
gøre noget.
Avatar billede carstenknudsen Nybegynder
31. oktober 2002 - 14:50 #14
Hvis du har at gøre med en ActionEvent
så skal du gøre sådan her:
btPrint_click(Object o,ActionEvent e) {
if (e.getModifiers()==ActionEvent.SHIFT_MASK) {
//kun shift er trykket ned
}
else if ((e.getModifiers()&ActionEvent.SHIFT_MASK)!=0)) {
//shift og noget andet er trykket ned
}
...
}
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