Cześć Wszystkim!
Chce zrobić, aby program wykonywał jakieś czynności, zależnie od zeskanowanego kodu kreskowego (np. otwierał jakieś okno). Do PC skaner jest podłaczony poprzez USB i emuluje on klawiaturę. Po wielu poszukiwaniach, zrobiłem takie coś, że po zeskanowaniu kodu "open" wypisjue mi w konsoli "opening...". Tylko że działa to poprzez pole tekstowe, a chciałbym aby to nasłuchiwało poza nim, w całym programie najlepiej. Czy jest coś takiego możliwego do zrobienia? Jakieś pomysły? Podpowiedzi? Ten kod poniżej jest tylko stworzony do pokazania jak to działa.
Kod:
import org.eclipse.swt.SWT;
import org.eclipse.swt.events.*;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.widgets.*;
public class App {
public static void main(String[] args) {
Display display = new Display();
Shell shell = new Shell(display);
shell.setLayout(new GridLayout(2, false));
Text textField = new Text(shell, SWT.MULTI | SWT.WRAP | SWT.V_SCROLL | SWT.BORDER);
GridData gridData1 = new GridData(SWT.FILL, SWT.FILL, false, false);
gridData1.widthHint = 150;
gridData1.heightHint = 75;
textField.setLayoutData(gridData1);
ModifyListener listener = new ModifyListener() {
@Override
public void modifyText(ModifyEvent modifyEvent) {
if (textField.getText().equalsIgnoreCase("open")) {
System.out.println("opening...");
textField.setText("");
} else if (textField.getText().equalsIgnoreCase("close")) {
System.out.println("closing...");
textField.setText("");
}
}
};
textField.addModifyListener(listener);
shell.open();
while (!shell.isDisposed()) {
if (!display.readAndDispatch()) {
display.sleep();
}
}
display.dispose();
}
}
Wzorowałem sie na :
[]https://stackoverflow.com/questions/6734393/getting-input-from-barcode-scanner-internally-without-textbox
[]https://stackoverflow.com/questions/12198432/handle-barcode-scan-in-java/22084579#22084579
itp.
Prosze nie patrzeć na to że jest to w SWT zrobione ;)