JAVA之多线程入门和自动滚轮
来源:互联网 发布:达芬奇调色软件价格 编辑:程序博客网 时间:2024/06/09 18:51
start实现每1s递增的在textarea打印一个数字,end实现终止start的线程
import java.awt.BorderLayout;import java.awt.Color;import java.awt.Container;import java.awt.FlowLayout;import java.awt.Graphics;import java.awt.Point;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.net.URL;import java.util.Random;import javax.swing.ImageIcon;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.JLabel;import javax.swing.JPanel;import javax.swing.JProgressBar;import javax.swing.JScrollPane;import javax.swing.JTable;import javax.swing.JTextArea;import javax.swing.JTextField;import javax.swing.SwingConstants;import javax.swing.WindowConstants;import javax.swing.table.DefaultTableModel;public class test extends JFrame{JTextArea jt = new JTextArea(10,10);JButton jb_s = new JButton("start!");JButton jb_e = new JButton("end!");JScrollPane js = new JScrollPane(jt);Thread t1 ,t2;int count = 0;boolean flag = true;public test(){init();jb_s.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubflag = true;jt.setLineWrap(true);jt.setEditable(false);t1 = new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubwhile(flag){jt.append(count++ + " \n");//jt.setCaretPosition(jt.getText().length());//方法1:自动滚动到textarea的底部//js.getViewport().setViewPosition(new Point(0,jt.getLineCount()*20));//方法2try {Thread.sleep(100);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}}}});t1.start();}});jb_e.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO Auto-generated method stubt2 = new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubflag = false;}});t2.start();}});}public void init(){setLocationRelativeTo(null);Container con = getContentPane();con.add(js,BorderLayout.NORTH);JPanel jp = new JPanel();jp.setLayout(new FlowLayout());jp.add(jb_s);jp.add(jb_e);jp.setOpaque(false);con.add(jp,BorderLayout.SOUTH);setVisible(true);setSize(500,300);setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);}public static void main(String[] agrs){new test();}}
0 0
- JAVA之多线程入门和自动滚轮
- Java之多线程异步和同步
- 【Java】Java之多线程
- java编程之多线程 入门级,继承Thread类
- Java 7之多线程线程池 - Callable和Future
- Java 7之多线程线程池 - Callable和Future
- java之多线程(一)进程和线程的区别
- JAVA知识之多线程(二):生命周期和守护线程
- Java学习之多线程
- java基础教程之多线程
- java之多线程
- Java学习之多线程
- java基础之多线程
- Java之多线程
- java基础之多线程
- Java基础之多线程
- JAVA之多线程
- java之多线程
- HDOJ 1237 简单计算器
- 自学360之MD5加密
- JAVA_OA(八):springMVC对JDBC的操作小项目a
- SAP 如何定义后台job
- Spring IOC和DI
- JAVA之多线程入门和自动滚轮
- poj 1269 Intersecting Lines 计算几何
- 如何判定当前浏览器是ie浏览器
- 通过重写ViewGroup学习onMeasure()和onLayout()方法
- 矩阵的点乘与叉乘
- web前端基础第10天jsdfs
- POJ 1019:Number Sequence
- 判断迷宫出路
- (模板题)poj 2190 Power of Cryptography(二分查找)