現在、RFID を使用して入力を取得し、Java Swing インターフェイスを使用してその情報を表示するプログラムを作成しています。
ここでの問題は、RFID に入力があるかどうかを継続的にチェックし、Swing を使用して表示する関数を作成したことですが、アプリケーションの起動時にその関数を実行する必要があります。
jlabel.setText
※パブリック関数を使ってみたのですが、静的に実行しているため他の関数が使えません。
車輪を回転させるためだけにスタートボタンを追加することを検討していますが、インターフェイスがきれいになるようにボタンを使用しないことを好みます。
package com.domain.test;
import java.io.IOException;
import java.io.InputStream;
public class SerialReader implements Runnable {
InputStream in;
public SerialReader(InputStream in) {
this.in = in;
}
public void run() {
byte[] buffer = new byte[1024];
String dataHolder;
String IDnumber = new String();
int incomingData = -1;
int ctr = 0;
try {
while ((incomingData = this.in.read(buffer)) > -1) {
dataHolder = new String(buffer, 0, incomingData);
if (incomingData >= 1) {
ctr++;
IDnumber = IDnumber + dataHolder;
if (IDnumber.length()==14) {
System.out.println(IDnumber);
log display = new log();
display.setLabel(IDnumber.substring(1, IDnumber.length() - 1));
IDnumber = new String();
ctr = 0;
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
私がする必要があるのは、この関数に送信されているデータを渡し、それをこの Swing 関数 (setText) に渡すことです。
public void setLabel(String studNum){
sNum = studNum;
jName.setText(sNum);
}
問題は、データを渡すことはできますが、それを使用してインターフェイスに表示できないことです。そのため、アプリケーションの起動時に実行される関数 (Swing と通信できる) を作成する方法を尋ねています。
また、Swing にデータを渡す方法について別の方法を教えてください。