Avatar billede casualty Nybegynder
27. november 2002 - 20:00 Der er 14 kommentarer og
2 løsninger

trap all keys

Kan det lade sig gøre at få et java program til at låse alle taster på et tastatur...??

Mvh Casualty
Avatar billede klojs Praktikant
27. november 2002 - 20:03 #1
Kan ikke helt se hvorfor man skulle gøre det ??

Men ellers kan man da tage kablet fra tastaturet ud af pc'en så kan man heller ikke gøre noget med tasterne :-))
Avatar billede arne_v Ekspert
27. november 2002 - 20:05 #2
Det tror jeg ikke.

Det er ret system-specifikt. Og kan næppe laves
på alle platforme.

Jeg kan heller ikke komme i tanke om nogen egnet
klasse.

Så hvis du skal bruge den funktionalitet, så må
du nok bruge JNI til at kalde noget native kode.

Jeg vil anbefale at du overvejer alternative
designs.
Avatar billede carstenknudsen Nybegynder
27. november 2002 - 20:05 #3
Du kan lave en keylistener der konsumerer alle events,
men den skal på alle komponenter for at du er sikker på
at det virker.
Avatar billede casualty Nybegynder
27. november 2002 - 20:16 #4
Oki...Det er en maskine der skal køre et program i fuld skærm og brugeren skal ikke have lov til at kunne lukke/minimere programmet, dog skal nummer tasterne kunne benyttes...Jeg forestillede mig noget med et JWindow...Men man kan vel altid trykke på "alt+f4" eller "windows tasten"...det var dem jeg ville enable...Kan man det?
Avatar billede casualty Nybegynder
27. november 2002 - 20:16 #5
Jeg mener disable...
Avatar billede casualty Nybegynder
27. november 2002 - 20:19 #6
En maskine der står i en butik, fra vilken man kan søge imellem varer...
Brugeren skal ikke have adgang til windows...
Avatar billede arne_v Ekspert
27. november 2002 - 20:25 #7
Jeg kan ikke forestille mig, at en keylistener kan
disable dem.

Der skal et meget grimt program til for at gøre det.

Måske en speciel keyboard driver ??

PS: Har du overvejet, hvordan du selv få adgang
    til systemet i tilfælde af problemer/opdateringer ?
Avatar billede casualty Nybegynder
27. november 2002 - 20:27 #8
Ja man kunne så lige have en kombination af taster som kun jeg kender som skal holdes nede samtidig...
Avatar billede carstenknudsen Nybegynder
27. november 2002 - 21:05 #9
Det laveste niveau du kan komme ned på er at lade din
komponent kalde enableEvents(AWTEvent.KEY_EVENT_MASK)
og så overskrive den protectede metode processKeyEvent(),
der kan du så lytte efter din hemmelige kode og ellers
smide alt andet væk.
Avatar billede casualty Nybegynder
27. november 2002 - 21:21 #10
Jeg har lidt svært ved at forstå hvad du mener?

Kan du ikke give et eksempel? her er min kode...

Jeg giver gerne flere points...

package package9;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;

public class keys extends JFrame implements KeyListener
{
    public keys()
    {
        setSize(300,200);
        this.addKeyListener(this);
        JPanel contentPane = (JPanel)this.getContentPane();       
        contentPane.setLayout(new FlowLayout());
    }

    public static void main(String[] args)
    {
        new keys ().show ();
    }

    public void keyTyped(KeyEvent e)
    {
    }

    public void keyPressed(KeyEvent e)
    {
      enableEvents(AWTEvent.KEY_EVENT_MASK);
      System.out.println("Key pressed: "+e.getKeyCode());
    }

    public void keyReleased(KeyEvent e)
    {
    }
}
Avatar billede carstenknudsen Nybegynder
28. november 2002 - 10:34 #11
Du skal kalde enableEvents i din konstruktor
og så skal du ikke have nogen keylistener overhovedet,
men du skal definere metoden processKeyEvent som
gør hvad der skal til. Normalt vil man så derfra
kalde superklassens processKeyEvent, men i dit
tilfælde vil du kontrollere alt, derfor skal
du ikke kan den i dette tilfælde. Slet alt dit
keylistener og implementer metoden.
Avatar billede casualty Nybegynder
28. november 2002 - 16:57 #12
Oki...Trin for trin....Jeg har kaldt enableEvents i min konstruktor....

Hvordan og hvor implementerer jeg metoden processKeyEvent??

Bær over med mig :)
Jeg er stadig ny i Java

----------------------------kode----------------------------

package keys;

import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.lang.Object.*;

public class keys extends JFrame
{

    public keys()
    {
        enableEvents(AWTEvent.KEY_EVENT_MASK);
        Dimension screenSize = Toolkit.getDefaultToolkit().getScreenSize();
        //setSize(screenSize.width,screenSize.height);
        setSize(300,200);
        JPanel contentPane = (JPanel)this.getContentPane();
        contentPane.setLayout(new FlowLayout());
    }

    public static void main(String[] args)
    {
        new keys().show();
    }
}
Avatar billede carstenknudsen Nybegynder
28. november 2002 - 20:54 #13
Du skal såmænd bare implementere den
i din klasse, den er nedarvet fra Component,
som bla JFrame nedarver fra.
Du kan erklære den som oprindelig,
protected void processKeyEvent(KeyEvent e)
eller med
public void processKeyEvent(KeyEvent e)
hvis du har lyst. Jeg går udfra at du kun
skal bruge den i klassen, og så er protected
nok at foretrække.
Avatar billede casualty Nybegynder
30. november 2002 - 17:25 #14
Oki...Tak for hjælpen :)

Mvh Casualty

PS : Brok jer lige højlydt hvis i vil have flere points
Avatar billede carstenknudsen Nybegynder
02. december 2002 - 08:34 #15
Vi brokker os skam ikke, men du må gerne lige skrive
om du har fået det til at virke eller ej.
Avatar billede casualty Nybegynder
04. december 2002 - 17:59 #16
Hej...Nej jeg har desværre ikke fået det til at virke endnu....Er ikke færdig med at kigge på det endnu. Men det behøver i jo ikke at vente på, derfor har i fået points....
Jeg er i gang med eksamens opgave som datamatiker og har et minimum af tid,så jeg kigger kun lige på det når tiden er til det.....

Mvh Casualty
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