• java多线程实验 滚动字


    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("滚动字");
    		}
    }
    
    

  • 相关阅读:
    saltstack远程执行
    centos7防火墙的关闭和禁用
    saltstack 安装使用
    flask基础-第一个flask-jinja2-response三剑客-request-session
    linux服务器排查病毒纪实
    读完这篇文章,就基本搞定了Redis主从复制
    Django学习【第26篇】:中介模型以及优化查询以及CBV模式
    Django学习【第26篇】:后端CORS解决跨域问题
    Django学习【第25篇】:前端Jsonp解决跨域问题
    Django学习【第24篇】:JS实现的ajax和同源策略
  • 原文地址:https://www.cnblogs.com/slgkaifa/p/6738855.html
Copyright © 2020-2023  润新知