他のクライアントからテキスト ファイル (.txt) を受信し、Java Netbeans GUI のテキスト領域に (TextRecv.append を使用して) 追加する Java GUI を作成しましたが、他のクライアントから既に送信されたファイルを読み取れません。 readfile メソッドをボタンに配置して実行しますが、ボタンを押したときにのみ読み取りますが、それは私が望む結果ではありません。私の目標は、この GUI を動的に受け取り、読み取り、テキスト領域に自動的に追加することです。
私の状況では、2 台のマシンがあり、Java で dtncpd を実行してファイルを送信します。これは、2 台のマシンでファイルを送信する方法ですが、両方の 2 台のマシンで、テキスト ファイルは既に宛先に表示されていますが、テキストエリアには追加されません。
そうやって送っています
private void DTNSendActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
String text = "";
String name = usernameField.getText();
text = name.toString()+ ":"+ TextInput.getText().toString();
try{
FileWriter fstream = new FileWriter("msg.txt");
BufferedWriter out = new BufferedWriter(fstream);
out.write(text);
out.close();
}catch(IOException e)
{
e.printStackTrace();
}
TextInput.setText("");
try{ //Show what sender type
BufferedReader ins = new BufferedReader(new FileReader("msg.txt"));
String Stream;
while((Stream = ins.readLine())!=null)
{
TextRecv.append(Stream+"\n");
}
}catch(IOException e){ e.printStackTrace();}
String sendcmd = "dtncp NetBeansProjects/DTNChat/msg.txt dtn://abc.dtn";
Runtime runtime1 = Runtime.getRuntime();
try{
Process process1 =runtime1.exec(sendcmd);
}catch(IOException e)
{
e.printStackTrace();
}
問題は、ボタンを使用せずに、テキストエリアを受信して自動的に追加するファイルを Java Gui がどのように読み取ることができるかです。
なにか提案を??毎度アドバイスありがとうございます
編集済み 私はこのようにコーディングしていますが、TextAreaに追加されていません
SwingWorker worker = new SwingWorker<Void,String>(){
protected Void doInBackground(){
File file = new File("/home/XXX/Desktop/incoming/ABC.dtn/msg.txt");
boolean exists = file.exists();
while(exists)
{
try{
FileReader read = new FileReader("/home/XXX/Desktop/incoming/ABC.dtn/msg.txt");
BufferedReader in = new BufferedReader(read);
String show;
while((show=in.readLine())!=null)
{
TextRecv.append(show);
}
}catch(IOException e){}
}
return null;
}
};
public void actionPerformed(ActionEvent ae){
worker.execute();
}