#1 21. Februar 2011 Tastatur einlesen... ohne textfield Hey Leute! Ich habe ein kleines Anliegen... versuche mich jetzt schon den ganzen Tag daran und finde nichts passendes bei google... Ich möchte über Java ein Programm schreiben, welches über einen USB RFID Reader die ID ausliest. So der Reader sendet nach auflegen einer ID Card die Karten ID als "Tastaturbefehl"... Jetzt möchte ich in einem Java Prog mit dieser ID arbeiten... Klar kann ich Tastatureingaben einlesen usw... aber das besondere daran ist, dass die ID nicht z.B. über den Reader in ein angezeigtes Texfield eingelesen wird... Versteht ihr was ich meine? Geht das Einlesen der Tastatur im "Hintergrund" ohne ein Textfield zu sehen? Würde mich über eure Hilfe freuen MfG + Multi-Zitat Zitieren
#2 21. Februar 2011 AW: Tastatur einlesen... ohne textfield Entweder via Key Listner (hierzu muss deine Form fokussiert sein). Oder wenn dein Programm wirklich im Hintergrund arbeitet via Global Key Hook + Multi-Zitat Zitieren
#3 21. Februar 2011 AW: Tastatur einlesen... ohne textfield Es reicht, wenn das Prog im Fokus ist! Mit keylisterner habe ich es bereits versucht... aber wie schaffe ich es, dass ich den nicht an ein Textfield "ranhängen" muss? MfG + Multi-Zitat Zitieren
#4 21. Februar 2011 AW: Tastatur einlesen... ohne textfield du kannst doch nem JFrame auch nen KeyListener zuweisen. die chars musst du dann natürlich irgendwie verarbeiten. + Multi-Zitat Zitieren
#5 21. Februar 2011 AW: Tastatur einlesen... ohne textfield Ich bekomme das irgendwie nicht zum Laufen... Wäre super, wenn mir jemand ein Beispiel geben könnte... Ein ganz einfaches Fenster mit z.B. nur einem Label, welches nach der "ENTER-Taste" den zuvor eingegeben String anzeigt. Danke MfG + Multi-Zitat Zitieren
#6 21. Februar 2011 AW: Tastatur einlesen... ohne textfield Bitteschön: PHP: import java . awt . event . KeyEvent ; import java . awt . event . KeyListener ; import javax . swing . JFrame ; import javax . swing . JLabel ; public class TestFrame extends JFrame { JLabel label = null ; String text = "" ; public static void main ( String [] args ) { TestFrame frame = new TestFrame (); frame . setVisible ( true ); } public TestFrame () { setSize ( 300 , 100 ); setDefaultCloseOperation ( EXIT_ON_CLOSE ); label = new JLabel ( "test" ); add ( label ); addKeyListener (new KeyListener () { public void keyTyped ( KeyEvent e ) { } public void keyReleased ( KeyEvent e ) { if ( e . getKeyCode () == KeyEvent . VK_ENTER ) { label . setText ( text ); text = "" ; } else { text += e . getKeyChar (); } } public void keyPressed ( KeyEvent e ) { } }); } } + Multi-Zitat Zitieren
#7 22. Februar 2011 AW: Tastatur einlesen... ohne textfield Hey ich danke dir vielmals Perfekt! + Multi-Zitat Zitieren
#8 24. Februar 2011 AW: Tastatur einlesen... ohne textfield Ich hätte noch eine kleine Frage... vll muss ich dafür keinen neuen Thread aufmachen Habe jetzt mein java Prog soweit fertig... u.a. ist auch eine propertie Datei eingelesen, welche bestimmte Werte festlegt. Nachdem ich das Projekt jetzt "gebuildet" habe.. gibt es keine propertie Datei im Build Verzeichnis... und manche Funktionen im Programm, welche Werte aus der Datei ändern sollen, laufen nicht mehr. Hat da jemand eine Lösung? Danke schonmal + Multi-Zitat Zitieren
#9 24. Februar 2011 AW: Tastatur einlesen... ohne textfield ich nehme mal an du nutzt auch eclipse als ide... du hast die properties datei also als resource in deinem projekt? dann brauchst nur rechtsklick auf die machen und "build path" - "add to build path" auswählen. edit: falsch, das is natürlich für zusätzliche bibliotheken (.jars) ^^ sag mal wie deine verzeichnisstruktur is und wo sich die datei befindet + Multi-Zitat Zitieren
#10 25. Februar 2011 AW: Tastatur einlesen... ohne textfield Danke für deine Antwort... Also ich benutze Netbeans, nicht Elclipse. Die propertie Datei liegt im Projektordner im src Verzeichnis, indem auch die .java und .form Dateien liegen. MfG + Multi-Zitat Zitieren
#11 25. Februar 2011 AW: Tastatur einlesen... ohne textfield Das einfachste wäre doch, wenn du versuchst die Properties-Datei auf zu machen, und wenn du sie nicht findest eine mit Defaultwerten zu erstellen. + Multi-Zitat Zitieren
#12 25. Februar 2011 AW: Tastatur einlesen... ohne textfield Dein Gedankengang kann ich jetzt leider nicht nachvollziehen ?( Das Problem ist doch folgendes: Das Prog zieht u.a. bei manchen Funktionen Daten aus einer propertie Datei, was auch funktioniert. In anderen Funktionen, wie z.B. "Einstellungen" werden Werte in einer propertie Datei geändert. Und genau das Ändern geht nicht! Vll hat noch jemand eine Lösung... + Multi-Zitat Zitieren
#13 25. Februar 2011 AW: Tastatur einlesen... ohne textfield Wie liesst du die Properties datei aus? Eigentlich müsste der doch, wenn die datei nicht da ist eine Exception schmeißen. Die kannst du abfangen, überprüfen, ob die Datei überhaupt existiert und notfalls mit den defaultwerten erzeugen (dann weißt du mit sicherheit dass die auch da ist wo sie sein soll). + Multi-Zitat Zitieren
#14 25. Februar 2011 AW: Tastatur einlesen... ohne textfield Genau. Beim laden der Datei gucken, ob sie da ist, wenn nicht mit default Werten erstellen. http://download.oracle.com/javase/1.4.2/docs/api/java/util/Properties.html#load(java.io.InputStream) Stichwort: save/store, load. Ergo einfach versuchen zu laden, wenns nicht klappt, dann nen properties objekt erstellen, dieses mit defaultwerten füllen und danach nen store machen. + Multi-Zitat Zitieren
#15 25. Februar 2011 AW: Tastatur einlesen... ohne textfield also du willst in die selbe propterties datei, aus der du gelesen hast wieder schreiben? zeig mal deinen code dazu. vll. hast du noch einen stream zu der datei offen und kannst sie deshalb nicht ändern. oder du darfst vll. generell keine src dateien des programms während der laufzeit ändern... + Multi-Zitat Zitieren
#16 28. Februar 2011 AW: Tastatur einlesen... ohne textfield Danke für eure Hilfen... aber ich glaube, dass ihr es noch nicht ganz verstanden habt. Wenn ich es aus Netbeans heraus ausführe (Run File bzw. Run Project), dann läuft alles super. Nur nach dem builden... als "eigenständige" Datei kann er scheinbar nicht mehr schreiben. Beim Debugging gibt es keine Meldungen! Er findet das propertie File nicht! Hier der Pfad, welchen er sucht: Code: (...)\NetBeansProjects\JavaApplications1\dist\JavaAplication1.jarl\javaaplication1\configuration.properties wo ist der Fehler? Hier die "lese Funktion" welche immer am Anfang ausgeführt wird: Code: public void leseComPort() throws IOException{ // Lesen des ComPorts aus properties File InputStream istream = Einstellungen.class.getResourceAsStream("configuration.properties"); Properties p = new Properties(System.getProperties()); p.load(istream); String comp = p.getProperty("displaycomport"); Integer compindex = Integer.parseInt(comp); //istream.close(); // display new properties EinstellungenComboBox.setSelectedIndex(compindex); } Und hier die "schreib Funktion" welche beim Speichern ausgeführt wird und die Ex. wirft... jedoch nur bei der gebuildeten Datei...: Code: public void speichereComPort(Integer ComPort) throws IOException{ // Speichern des neuen ComPorts in properties File String ComPortString = ComPort.toString(); Properties prop = new Properties(); InputStream istream = Einstellungen.class.getResourceAsStream("configuration.properties"); prop.load(istream); prop.setProperty("displaycomport", ComPortString); URL url = getClass().getResource("configuration.properties"); File file = new File(url.getFile()); BufferedOutputStream bos = new BufferedOutputStream(new FileOutputStream(file)); prop.store(bos, "header"); } MfG + Multi-Zitat Zitieren
#17 28. Februar 2011 AW: Tastatur einlesen... ohne textfield ich gehe davon aus, dass die properties datei nicht in der jar ist oder? allgemein weiß ich nicht obs so dolle ist das alles in einer jar zu lassen. ich würde die properties datei außerhalb der jar erstellen (also die IOException fangen und ggf die properties datei erstellen. + Multi-Zitat Zitieren
#18 1. März 2011 AW: Tastatur einlesen... ohne textfield Hey! Danke für deine Antwort... Leider verstehe ich das nicht so ganz. Woran erkenne ich, ob die propertie in der jar ist? Also... da ich die Daten selbst bei der alleinstehenden, gebuildeten jar auslesen kann, denke ich schon, dass sie enthalten ist. Was meinst du mit deinem letzten Satz? Die Datei besteht bereits und soll immer nur ggf. verändert werden. Danke MfG + Multi-Zitat Zitieren
#19 1. März 2011 AW: Tastatur einlesen... ohne textfield also eine jar datei ist ansich eine zip datei, kannst du also mit jedem packprogramm mal gucken, ob in der jar die datei an der entsprechenden stelle ist. der letzte satz meint, dass du die entsprechende properties datei nicht in der jar datei suchst (guck dir die fehlermeldung an, der sucht die in der jar datei, was wohl unschön ist). du könntest zB die properties datei immer im selben ordner erstellen, in dem die jar gerade liegt. dies könnte man so umsetzen, dass man den codeblock so nimmt wie du den hast, nur dass du ein try-catch drum machst und die IOException fängst und guckst ob das einzige problem ist, dass die properties datei nicht vorhanden ist. in diesem fall kannst du diese datei erzeugen und mit entsprechenden default-werten füllen + Multi-Zitat Zitieren
#20 1. März 2011 AW: Tastatur einlesen... ohne textfield Achso... das ist natürlich die einfachste Variante Und die Antwort: Ja sie ist in der Jar drin. Es wäre schon eine schöne Sache, wenn die Datei auch intern bleiben könnte - nicht "offen" im Ordner. Jetzt ist die Frage für mich immer noch offen, warum die Datei aus Netbeans aus gefunden wird.. und beim Ausführen der jar zwar gelesen wird, jedoch kein Schreiben möglich ist... ?( + Multi-Zitat Zitieren
#21 1. März 2011 AW: Tastatur einlesen... ohne textfield hmm mal so ne überlegung: schließ mal deine streams nach der benutzung + Multi-Zitat Zitieren
#22 2. März 2011 AW: Tastatur einlesen... ohne textfield Das hatte ich auch schon im Verdacht... keine Veränderung Hatte ich oben im Quelltext auch noch auskommentiert drin "//istream.close();". Oder gibts noch andere Varianten? MfG + Multi-Zitat Zitieren