java简单滚动字幕

package java_roll;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class roll extends JFrame{
	JTextField f1,f2,f3,f4,f5,f6,f7,f8,f9;
	JButton b1_start,b1_stop,b2_start,b2_stop,b3_start,b3_stop;
	Label lb1,lb2,lb3,stg1,stg2,stg3;
	Panel p1,p2,p3;
	thread1 th1;
	thread2 th2;
	thread3 th3;
	int time1,time2,time3;
	
	String []str= {"Welcome","Hello","Rollby"};
	roll(){
		super("滚动字");
		setSize(500,500);
		setLocation(500,200);
		setBackground(Color.LIGHT_GRAY);
		setLayout(new GridLayout(6,1));
		p1=new Panel();p2=new Panel();p3=new Panel();
		f1=new JTextField(String.format("%115s",str[0]));//格式化字符串,调整字符串位置,使其在整个文本框中滚动
		f2=new JTextField(String.format("%115s",str[1]));//格式化字符串,调整字符串位置,使其在整个文本框中滚动
		f3=new JTextField(String.format("%115s",str[2]));//格式化字符串,调整字符串位置,使其在整个文本框中滚动
		f4=new JTextField(5);f5=new JTextField(5);f6=new JTextField(5);
		f7=new JTextField(8);f8=new JTextField(8);f9=new JTextField(8);
		f7.setEditable(false);f8.setEditable(false);f9.setEditable(false);
		//th1=new thread1();th2=new thread2();th3=new thread3();
		lb1=new Label("sleep");lb2=new Label("sleep");lb3=new Label("sleep");
		stg1=new Label("state");stg2=new Label("state");stg3=new Label("state");
		b1_start=new JButton("启动");b2_start=new JButton("启动");b3_start=new JButton("启动");
		b1_stop=new JButton("中断");b2_stop=new JButton("中断");b3_stop=new JButton("中断");
		time1=100;time2=100;time3=100;
		add(f1);add(p1);add(f2);add(p2);add(f3);add(p3);
		p1.setLayout(new FlowLayout());
		p2.setLayout(new FlowLayout());
		p3.setLayout(new FlowLayout());
		p1.add(lb1);p1.add(f4);p1.add(b1_start);p1.add(b1_stop);p1.add(stg1);p1.add(f7);
		p2.add(lb2);p2.add(f5);p2.add(b2_start);p2.add(b2_stop);p2.add(stg2);p2.add(f8);
		p3.add(lb3);p3.add(f6);p3.add(b3_start);p3.add(b3_stop);p3.add(stg3);p3.add(f9);
		b1_start.addActionListener(new DealEvent());
		b1_stop.addActionListener(new DealEvent());
		b2_start.addActionListener(new DealEvent());
		b2_stop.addActionListener(new DealEvent());
		b3_start.addActionListener(new DealEvent());
		b3_stop.addActionListener(new DealEvent());
		this.pack();//调整窗体大小
		setVisible(true);
	}
	class thread1 extends Thread{
		public void run() {
			while(true) {
				try {
					String str=f1.getText();
					f1.setText(str.substring(1)+str.substring(0, 1));
					sleep(time1);
				}
				catch(Exception e) {
					break;
				}
			}
		}
	}
	class thread2 extends Thread{
		public void run() {
			while(true) {
				try {
					String str=f2.getText();
					f2.setText(str.substring(1)+str.substring(0, 1));
					sleep(time2);
				}
				catch(Exception e) {
					break;
				}
			}
		}
	}
	class thread3 extends Thread{
		public void run() {
			while(true) {
				try {
					String str=f3.getText();
					f3.setText(str.substring(1)+str.substring(0, 1));
					sleep(time3);
				}
				catch(Exception e) {
					break;
				}
			}
		}
	}
	class DealEvent implements ActionListener{
		public void actionPerformed(ActionEvent e) {
			if(e.getSource()==b1_start) {
				f7.setText("RUNNABLE");
				time1=Integer.parseInt(f4.getText());
				th1=new thread1();
				b1_start.setEnabled(false);
				b1_stop.setEnabled(true);
				th1.start();
			}
			else if(e.getSource()==b1_stop) {
				f7.setText("STOP");
				b1_start.setEnabled(true);
				b1_stop.setEnabled(false);
				th1.interrupt();
			}
			else if(e.getSource()==b2_start) {
				f8.setText("RUNNABLE");
				time2=Integer.parseInt(f5.getText());
				th2=new thread2();
				b2_start.setEnabled(false);
				b2_stop.setEnabled(true);
				th2.start();
			}
			else if(e.getSource()==b2_stop) {
				f8.setText("STOP");
				b2_start.setEnabled(true);
				b2_stop.setEnabled(false);
				th2.interrupt();
			}
			else if(e.getSource()==b3_start) {
				f9.setText("RUNNABLE");
				time3=Integer.parseInt(f6.getText());
				th3=new thread3();
				b3_start.setEnabled(false);
				b3_stop.setEnabled(true);
				th3.start();
			}
			else if(e.getSource()==b3_stop) {
				f9.setText("STOP");
				b3_start.setEnabled(true);
				b3_stop.setEnabled(false);
				th3.interrupt();
			}
		}
		
	}
	}

public class Test_roll {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		roll a=new roll();
	}
}

`

  • 7
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值