Hallo,
ich möchte gern eine JTable auf einem Dialog anzeigen und im Hintergrund auf Tastatureingaben reagieren.
Der Hintergrund dazu ist folgender:
Am Computer ist ein USB-Scanner angeschlossen. Dieser USB-Scanner scannt einen Barcode und gibt diesen als normalen Tastatur-Input an das aktuelle Programm weiter, beispielweise einem JTextField. Nach der eingelesen Barcode-Sequence wird ein ENTER (durch den Scanner) ausgelöst.
In der Tabelle stehen bestimmte Artikel, welche einen Barcode haben. Wenn die Tabelle angezeigt wird, soll der Benutzer dann einen vor sich liegenen Artikel nehmen (es können mehrere sein) und diesen Artikel scannen. Der gescannte Artikel soll dann in der Tabelle markiert werden.
Des Weiteren soll aber auch die Möglichkeit bestehen, weiterhin mit der Maus einen Artikel zu wählen oder aber mit der Tastatur (Cursortasten).
Wie kann man das machen?
Ich habe bereits versucht, einen InputStream in einem Thread zu starten, dem gleichen Thread, in dem auch die JTable dargestellt wird. Natürlich wird dann die gesamte UI blockiert, weil ja auf die Eingabe gewartet wird.
Dann habe ich versucht den Thread parallel laufen zu lassen. Das Problem dabei ist dann, dass der InputStream nicht registriert, das Eingaben erfolgen, da der JTable den Fokus hat. Wechsele ich hingegen auf die Console um dort die Eingabe konkret zu machen, funktioniert es, aber das ist ja nicht mein eigentliches Ziel.
Ziel soll es sein, dass die JTable dargestellt wird (aktueller Fokus zwecks manueller Navigation durch die Datensätze) und ich über den Scanner eine eingabe mache. Und wenn etwas passendes gefunden wird anhand es codes, soll diese Zeile makiert werden.
Habt ihr vielleicht eine Idee wie man das Problem lösen kann?
MfG
Meru
ich möchte gern eine JTable auf einem Dialog anzeigen und im Hintergrund auf Tastatureingaben reagieren.
Der Hintergrund dazu ist folgender:
Am Computer ist ein USB-Scanner angeschlossen. Dieser USB-Scanner scannt einen Barcode und gibt diesen als normalen Tastatur-Input an das aktuelle Programm weiter, beispielweise einem JTextField. Nach der eingelesen Barcode-Sequence wird ein ENTER (durch den Scanner) ausgelöst.
In der Tabelle stehen bestimmte Artikel, welche einen Barcode haben. Wenn die Tabelle angezeigt wird, soll der Benutzer dann einen vor sich liegenen Artikel nehmen (es können mehrere sein) und diesen Artikel scannen. Der gescannte Artikel soll dann in der Tabelle markiert werden.
Des Weiteren soll aber auch die Möglichkeit bestehen, weiterhin mit der Maus einen Artikel zu wählen oder aber mit der Tastatur (Cursortasten).
Wie kann man das machen?
Ich habe bereits versucht, einen InputStream in einem Thread zu starten, dem gleichen Thread, in dem auch die JTable dargestellt wird. Natürlich wird dann die gesamte UI blockiert, weil ja auf die Eingabe gewartet wird.
Dann habe ich versucht den Thread parallel laufen zu lassen. Das Problem dabei ist dann, dass der InputStream nicht registriert, das Eingaben erfolgen, da der JTable den Fokus hat. Wechsele ich hingegen auf die Console um dort die Eingabe konkret zu machen, funktioniert es, aber das ist ja nicht mein eigentliches Ziel.
Ziel soll es sein, dass die JTable dargestellt wird (aktueller Fokus zwecks manueller Navigation durch die Datensätze) und ich über den Scanner eine eingabe mache. Und wenn etwas passendes gefunden wird anhand es codes, soll diese Zeile makiert werden.
Habt ihr vielleicht eine Idee wie man das Problem lösen kann?
MfG
Meru