线程与界面的综合练习
javastudy吧
全部回复
仅看楼主
level 6
兔子精灵 楼主
本帖子主要练习的是线程和界面的综合题
2008年10月28日 14点10分 1
level 6
兔子精灵 楼主
在一个框架中放入一个带滚动条的文本域,实现每隔100毫秒在文本域中打印“青花瓷”一次。最多打印100次。
2008年10月28日 14点10分 2
level 6
兔子精灵 楼主
import java.awt.*;import javax.swing.*;public class Jiemian_XC extends JFrame{ private Thread xc; private String nr="青花瓷"; public Jiemian_XC(){ Container rongQ=getContentPane(); final JTextArea wby=new JTextArea("",20,20); JScrollPane gdc=new JScrollPane(wby); rongQ.add(gdc); xc=new Thread(new Runnable(){ public void run(){ int i=100; while(i>0){ wby.append("还有"+(i-1)+"个:"+nr); wby.append("\n"); i--; try{ xc.sleep(100); }catch(InterruptedException e){ e.printStackTrace(); } } } } ); xc.start(); setBounds(100,100,300,500); setTitle("线程练习一"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args){ new Jiemian_XC(); }}
2008年10月28日 14点10分 3
level 6
兔子精灵 楼主
第一题的解答程序运行结果
2008年10月28日 14点10分 4
level 6
兔子精灵 楼主
在框架中放入一个进度条,用线程完成进度条的累加(0--100),时间间隔为200毫秒,累加到100后,再从0重新累加。
2008年10月28日 14点10分 5
level 6
兔子精灵 楼主
import java.awt.*;//导入类import java.awt.event.*;import javax.swing.*;import javax.swing.event.*;public class Jd extends JFrame{//主类 private Thread xc;//声明xc线程对象 private int jdz=0;//声明进度条数值变量 public Jd(){//构造函数 Container rongQ=getContentPane();//加上容器 rongQ.setLayout(null);//取消默认布局,采取绝对坐标布局。 final JProgressBar jdt=new JProgressBar();//进度条声明,由于用在了内容类中,必须声明为final型。 xc=new Thread(new Runnable(){//用Runnable对线程进行实例化 public void run(){ while(true){//这是一个无限循环 if(jdz<100){//进度条的步进 jdz++; jdt.setValue(jdz);//设定进度条的值 try{//线程休眠200毫秒 xc.sleep(200); }catch(InterruptedException e){//休眠可能导致的异常捕获 e.printStackTrace(); } } else{//对进度条进行清零 jdz=0; jdt.setValue(jdz); } } } }); xc.start();//线程开始运行 jdt.setBackground(Color.RED);//设定进度条的初始状态 jdt.setForeground(Color.BLUE); jdt.setStringPainted(true); jdt.setBounds(50,50,150,30); rongQ.add(jdt);//界面组件的组织 setBounds(100,100,255,130);//框架的初始状态设定 setTitle("进度条测试"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args){//主程序 new Jd(); }}
2008年10月28日 14点10分 6
level 6
兔子精灵 楼主
第二题的程序运行画面
2008年10月28日 14点10分 7
level 6
兔子精灵 楼主
第二题的程序运行画面2
2008年10月28日 14点10分 8
level 6
兔子精灵 楼主
在一个框架中放入一个带滚动条的文本域和一个进度条,实现每隔100毫秒在文本域中打印“青花瓷”一次。最多打印100次,进度条同时记录程序运行进度。
2008年10月28日 14点10分 9
level 6
兔子精灵 楼主
import java.awt.*;import javax.swing.*;public class Jdt_wbk extends JFrame{ private Thread xc; private String nr="青花瓷"; public Jdt_wbk(){ Container rongQ=getContentPane(); rongQ.setLayout(null); final JTextArea wby=new JTextArea(16,10); JScrollPane gdc=new JScrollPane(wby); gdc.setBounds(20,60,200,100); final JProgressBar jdt=new JProgressBar(); jdt.setBounds(20,20,200,20); jdt.setStringPainted(true); rongQ.add(gdc); rongQ.add(jdt); xc=new Thread(new Runnable(){ public void run(){ int i=100; while(i>0){ jdt.setValue(100-i+1); wby.insert("还有"+(i-1)+"个:"+nr+"\n",0); i--; try{ xc.sleep(100); }catch(InterruptedException e){ e.printStackTrace(); } } } } ); xc.start(); setBounds(100,100,240,220); setTitle("线程练习一"); setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args){ new Jdt_wbk(); }}
2008年10月28日 14点10分 10
level 6
兔子精灵 楼主
第三道习题的程序运行画面1
2008年10月28日 14点10分 11
level 6
兔子精灵 楼主
第三道习题的程序运行画面2
2008年10月28日 14点10分 12
level 6
兔子精灵 楼主
第三道习题的程序运行画面3
2008年10月28日 14点10分 13
1