-3
私はJTextAreaとJButtonの名前を持つメインのJFrameを持っています。 私はボタンを押すと、スレッドは画面の後ろに何かをしてログを記録します。 スレッドがジョブを実行している間、LogはJtextAreaに更新されます。 チュートリアルでは基本的なことしかわかりません。だから私はそれをどうするか考えていない。 読んでいただきありがとうございます。マルチスレッド:jframeにスレッドのログを更新させる方法は?
私のスレッドクラス:
public class myThread implements Runnable{
private Thread t;
public String getThreadName() {
return ThreadName;
}
public void setThreadName(String ThreadName) {
this.ThreadName = ThreadName;
}
public void setIsDone(boolean isRunning) {
this.isDone = isDone;
}
public boolean getIsDone() {
return this.isDone;
}
private String Log;
public String getLog() {
return Log;
}
public void setLog(String Log) {
this.Log = Log;
}
private String ThreadName;
public boolean isDone=false;
public myThread(String strThreadName)
{
this.ThreadName=strThreadName;
this.isDone=false;
}
@Override
public void run() {
creatingFolerCreating();
}
private void createingFolerCreating()
{
String strResultFolder=this.Path+"\\"+"Result";
this.strAFolder=strResultFolder+"\\"+"A";
this.strBFolder=strResultFolder+"\\"+"B";
boolean s=false;
s=(new File(strResultFolder)).mkdir();if(!s)this.Log+="result Foleder is existed";
s =(new File(strAFolder)).mkdir();if(!s)this.Log+="A Foleder is existed";
s =(new File(strBFolder)).mkdir();if(!s)this.Log+="B Foleder is existed";
}
public void start()
{
if(t==null)
{
t=new Thread(this,this.ThreadName);
t.start();
this.isDone=true;
}
}
}
マルチスレッドの初心者のために申し訳ありません。しかし、Rannableクラスでは、どのようにtextAreaを呼び出すか??? textArea(JFrame)とスレッドを接続するものは何もありません。私を助けてくれてありがとう。 – Hanata
とにかく私を助けてくれてありがとう。私はあなたの事例から多くのアイデアを得ました。どうもありがとうございます。 myRunnableクラスのコンストラクタでは、textAreaを渡しました。どうもありがとうございます。 – Hanata
私は遅い答えのために私を許してください。 あなたの質問については、ちょっと混乱しているかもしれませんが、本当に簡単です。クラスがアプリケーションを表す別のクラスの中にあるのがわかります。それはコンテナクラスのローカルなので、Runnableクラスがそのコンテナクラスのメンバーを見ることができる理由です。希望このヘルプ –