2014-09-19 1 views
1

키보드처럼 작동하는 저렴한 마그네틱 카드 리더기가 있습니다. 카드를 연결하고 카드를 스 와이프하면 모든 카드 데이터가 컴퓨터에 입력됩니다. 그러나 어떤 이유로 자바에서는 작동하지 않습니다. 그것은 내가 시도한 자바가 아닌 모든 것들에서 작동합니다.자바 카드 판독기가 깨져 있습니다.

;00548757802?

하는 자바를 사용 : 카드에 무엇

가 (실제로 SO 편집기에서 카드 슬쩍)

;0◘)P87┼7\02? 
_005487578D♥ 
;005487G802? 
_005*J657802{ 
♣00548I5♣802? 
;≥T548757♠╢·? 
≥T54875I↑:? 

당신이 볼 수 있듯이을, 그 때마다 다릅니다. 그러나 독자가 데이터 뒤에 새 행을 보내면 Java가 인식하는 것처럼 보입니다. 읽기 입력

내 코드 : JTextField를도 깨진 텍스트를 보여줍니다

// Bound to a JTextField 
public void keyTyped(KeyEvent e) { 
    System.out.print(e.getKeyChar()); 
} 

.

무엇이 잘못되었으며 어떻게 해결할 수 있습니까?

답변

0

알았어, 알아 냈어. 싼 $ 15 카드 리더기는 일반 키 입력이 아닌 데이터 입력을 위해 alt-codes를 사용하도록 설정되었습니다. 나는 모든 문자에 대해 alt 코드를 입력하는 대신 일반 키보드를 에뮬레이트하기 위해 온라인에서 찾은 유틸리티로 다시 프로그램 할 수있었습니다.

1

각 플랫폼에 따라 Key Bindings을 사용하는 JTextFieldKeyListener을 추가 한 것 같습니다. 대신 BufferedReader을 사용하여 System.in을 읽으십시오. readLine() 메소드는 행 끝을 감지 할 수 있어야합니다.

BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); 

event dispatch thread을 막지 않도록 그들이 사용할 수있게으로 SwingWorker, publish() 결과의 배경에있는 I/O를 수행하고 process()의 구현에 JTextField를 업데이트합니다.

+0

코드가 없어도 텍스트 상자 만 표시되며 여전히 엉망입니다. 문제는 우분투에서 모든 애플리케이션, 자바 또는 그 밖의 다른 것들과 함께 작동합니다. –

+0

'file.encoding' 시스템 속성을 검사 할 수 있습니다. – trashgod

+0

모든 Java 프로그램이이 작업을 수행합니다. –

관련 문제