45 lines
1.2 KiB
Java
45 lines
1.2 KiB
Java
package com.sv.barcode;
|
|
|
|
import com.sv.netty.ClientHandler;
|
|
import com.sv.netty.ClientThread;
|
|
import com.sv.netty.config.NettyConstant;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
|
|
import java.awt.event.KeyAdapter;
|
|
import java.awt.event.KeyEvent;
|
|
import java.util.LinkedList;
|
|
import java.util.List;
|
|
|
|
public class ScanBarCode extends KeyAdapter {
|
|
|
|
private final Logger logger = LoggerFactory.getLogger(ClientHandler.class);
|
|
|
|
private List<Character> barcode = new LinkedList<>();
|
|
|
|
@Override
|
|
public void keyTyped(KeyEvent e) {
|
|
if (barcode.size() > 200) {
|
|
barcode.clear();
|
|
}
|
|
char keyChar = e.getKeyChar();
|
|
logger.info("each time didi key【" + keyChar + "】");
|
|
if (NettyConstant.BARCODE_END == keyChar) {
|
|
String barStr = "";
|
|
if (barcode.size() > 0 && barcode != null) {
|
|
for (Character character : barcode) {
|
|
barStr = barStr + character;
|
|
}
|
|
}
|
|
logger.info(barStr);
|
|
ClientThread.getInstance().checkBarcode(barStr);
|
|
barcode.clear();
|
|
}
|
|
barcode.add(keyChar);
|
|
if (NettyConstant.BARCODE_BEGIN == keyChar) {
|
|
barcode.clear();
|
|
}
|
|
}
|
|
|
|
}
|