我创建了 JAVA GUI,它将从其他客户端接收文本文件(.txt)并附加到 Java Netbeans GUI 中的文本区域(通过使用 TextRecv.append)但是它不读取已经从其他客户端发送的文件,我尝试将 readfile 方法放在按钮执行中,但是它只在我按下按钮时读取,但这不是我想要的结果,我的目标是让这个 GUI 动态接收文件,读取并自动附加到我的文本区域
我的情况是我有 2 台机器,然后我通过在 Java 中执行 dtncpd 发送文件,这是我如何通过 2 台机器发送文件的过程,但是在两台机器中,文本文件已经出现在目标中,但它没有附加到 textarea
我就是这样发送的
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();
}