私は次のコードを持っています:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class Try extends JFrame implements ActionListener{
JButton n1 = new JButton("1");
JButton n2 = new JButton("2");
JButton n3 = new JButton("3");
JButton show = new JButton("Show");
{
show.addActionListener(this);
n1.setEnabled(false);
n2.setEnabled(false);
n3.setEnabled(false);
}
public Try(){
super("Try");
setVisible(true);
setSize(500, 200);
setLayout(new GridLayout(1, 4));
add(n1);
add(n2);
add(n3);
add(show);
}
public void actionPerformed(ActionEvent a) {
Object clicked = a.getSource();
if(show == clicked){
new Trial().start();
}
}
class Trial extends Thread{
public void run(){
try {
n1.setEnabled(true);
Thread.sleep(1000);
n1.setEnabled(false);
n2.setEnabled(true);
Thread.sleep(1000);
n2.setEnabled(false);
n3.setEnabled(true);
Thread.sleep(1000);
n3.setEnabled(false);
} catch (InterruptedException e){
}
}
}
public static void main(String[] args){
Try frame = new Try();
frame.setVisible(true);
}
}
この特定の部分に関していくつか質問があります。
1.---> new Trial().start();
2.---> class Trial extends Thread
3.---> public void run()
- なぜ彼は単なる裁判ではなくそれを新しくしたのですか?または、1行目はスレッドを「作成」するためのコードですか?それらを作成するためにスレッドでメソッドを開始しますか?
- なぜスレッドを拡張したのですか?なぜそれは単にクラストライアルではないのですか?また、なぜ公開されないのですか?
- なぜ公開されているのですか?runがスレッドを実行することは理解していますが、なぜパブリックなのですか?
前もって感謝します