package com.rgy.Test;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
public class Test3 extends JFrame{
//加入属性
//
private JPanel panel[];
private JTextField tf[];
private JLabel label_sleep[];
private JTextField tf_sleep[];
private JButton button_start[];
private JButton button_interrupt[];
private JLabel label_state[];
private JTextField tf_state[];
private MyThread_0 thread_0;
private MyThread_1 thread_1;
private MyThread_2 thread_2;
//
private String texts[]={"Welcome","Hello","Rolly"};
//
private int sleeptime0;
private int sleeptime1;
private int sleeptime2;
public Test3(String str){
super(str);
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
this.setBounds(500, 250, 500, 320);
//加入功能代码
this.setLayout(new GridLayout(6,1));
tf=new JTextField[3];
panel=new JPanel[3];
label_sleep=new JLabel[3];
tf_sleep=new JTextField[3];
button_start=new JButton[3];
button_interrupt=new JButton[3];
label_state=new JLabel[3];
tf_state=new JTextField[3];
//
for(int i=0;i<3;i++){
panel[i]=new JPanel();
tf[i]=new JTextField(String.format("%160s", texts[i]));
tf[i].setHorizontalAlignment(JTextField.RIGHT);
//
label_sleep[i]=new JLabel("sleep");
tf_sleep[i]=new JTextField(10);
button_start[i]=new JButton("启动");
button_interrupt[i]=new JButton("中断");
label_state[i]=new JLabel("state");
tf_state[i]=new JTextField(14);
tf_state[i].setEditable(false);
//
panel[i].add(label_sleep[i]);
panel[i].add(tf_sleep[i]);
panel[i].add(button_start[i]);
panel[i].add(button_interrupt[i]);
panel[i].add(label_state[i]);
panel[i].add(tf_state[i]);
button_start[i].addActionListener(new button_handler());
button_interrupt[i].addActionListener(new button_handler());
this.add(tf[i]);
this.add(panel[i]);
}
//
this.pack();
this.setVisible(true);
}
class MyThread_0 extends Thread{
public void run(){
while(true){
try {
String str=tf[0].getText();
tf[0].setText(str.substring(1)+str.substring(0,1));
sleep(sleeptime0);
} catch (Exception e) {
break;
}
}
}
}
class MyThread_1 extends Thread{
public void run(){
while(true){
try {
String str=tf[1].getText();
tf[1].setText(str.substring(1)+str.substring(0,1));
sleep(sleeptime1);
} catch (Exception e) {
break;
}
}
}
}
class MyThread_2 extends Thread{
public void run(){
while(true){
try {
String str=tf[2].getText();
tf[2].setText(str.substring(1)+str.substring(0,1));
sleep(sleeptime2);
} catch (Exception e) {
break;
}
}
}
}
class button_handler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource()==button_start[0]){
sleeptime0=Integer.parseInt(tf_sleep[0].getText());
thread_0=new MyThread_0();
thread_0.start();
button_start[0].setEnabled(false);
button_interrupt[0].setEnabled(true);
tf_state[0].setText(""+thread_0.getState());
}
if(e.getSource()==button_interrupt[0]){
thread_0.interrupt();
button_start[0].setEnabled(true);
button_interrupt[0].setEnabled(false);
tf_state[0].setText(""+thread_0.getState());
}
if(e.getSource()==button_start[1]){
sleeptime1=Integer.parseInt(tf_sleep[1].getText());
thread_1=new MyThread_1();
thread_1.start();
button_start[1].setEnabled(false);
button_interrupt[1].setEnabled(true);
tf_state[1].setText(""+thread_1.getState());
}
if(e.getSource()==button_interrupt[1]){
thread_1.interrupt();
button_start[1].setEnabled(true);
button_interrupt[1].setEnabled(false);
tf_state[1].setText(""+thread_1.getState());
}
if(e.getSource()==button_start[2]){
sleeptime2=Integer.parseInt(tf_sleep[2].getText());
thread_2=new MyThread_2();
thread_2.start();
button_start[2].setEnabled(false);
button_interrupt[2].setEnabled(true);
tf_state[2].setText(""+thread_2.getState());
}
if(e.getSource()==button_interrupt[2]){
thread_2.interrupt();
button_start[2].setEnabled(true);
button_interrupt[2].setEnabled(false);
tf_state[2].setText(""+thread_2.getState());
}
}
}
public static void main(String args[]) {
new Test3("滚动字");
}
}