第11章+进度条Word文件下载.docx

上传人:b****8 文档编号:22616042 上传时间:2023-02-04 格式:DOCX 页数:17 大小:17.89KB
下载 相关 举报
第11章+进度条Word文件下载.docx_第1页
第1页 / 共17页
第11章+进度条Word文件下载.docx_第2页
第2页 / 共17页
第11章+进度条Word文件下载.docx_第3页
第3页 / 共17页
第11章+进度条Word文件下载.docx_第4页
第4页 / 共17页
第11章+进度条Word文件下载.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

第11章+进度条Word文件下载.docx

《第11章+进度条Word文件下载.docx》由会员分享,可在线阅读,更多相关《第11章+进度条Word文件下载.docx(17页珍藏版)》请在冰豆网上搜索。

第11章+进度条Word文件下载.docx

importjava.awt.event.*;

publicclassTestextendsJApplet{

privateJProgressBar[]progressBars={

newJProgressBar(),

newJProgressBar()

};

publicvoidinit(){

ContainercontentPane=getContentPane();

contentPane.setLayout(newFlowLayout());

for(inti=0;

i<

progressBars.length;

++i){

JProgressBarpb=progressBars[i];

if(i==0){

pb.setStringPainted(true);

pb.setString("

CustomString"

);

}

if(i==1){

pb.setOrientation(JProgressBar.VERTICAL);

pb.setForeground(Color.yellow);

pb.setMaximum(1000);

pb.setValue(50);

pb.setBorder(

BorderFactory.createRaisedBevelBorder());

if(i==2){

pb.setForeground(Color.blue);

pb.setBorderPainted(false);

if(i==3){

pb.setForeground(Color.red);

pb.setValue(90);

BorderFactory.createEtchedBorder());

contentPane.add(pb);

  这个小应用程序创建了一组进度条,并为每个进度条设置了各种不同的属性,从而产生了图11-1中示出的各种不同配置。

11.1.1进度条与线程

 

例11-2使用JProgressBar

privateJProgressBarprogressBar=newJProgressBar();

privateJButtonstartButton=newJButton("

start"

contentPane.add(startButton);

contentPane.add(progressBar);

progressBar.setStringPainted(true);

startButton.addActionListener(newActionListener(){

publicvoidactionPerformed(ActionEvente){

(newUpdateThread()).start();

});

classUpdateThreadextendsThread{

Runnableupdate,finish;

intvalue,min,max,increment;

publicUpdateThread(){

max=progressBar.getMaximum();

min=progressBar.getMinimum();

update=newRunnable(){

publicvoidrun(){

value=progressBar.getValue()+increment;

updateProgressBar(value);

finish=newRunnable(){

updateProgressBar(min);

startButton.setEnabled(false);

while(value+increment<

=max){

simulateTimeConsumingActivity();

SwingUtilities.invokeLater(update);

SwingUtilities.invokeLater(finish);

startButton.setEnabled(true);

privatevoidupdateProgressBar(intvalue){

progressBar.setValue(value);

privatevoidsimulateTimeConsumingActivity(){

try{

Thread.currentThread().sleep(1000);

increment=(max-min)/10;

catch(InterruptedExceptione){

e.printStackTrace();

11.1.2JProgressBar属性

11.1.3JProgressBar事件

例11-3监视一个进度条的值

importjavax.swing.event.*;

privateJProgressBarpb=newJProgressBar();

finalJButtonstartButton=newJButton("

(newGetInfoThread(pb)).start();

pb.addChangeListener(newChangeListener(){

publicvoidstateChanged(ChangeEvente){

intmin=pb.getMinimum(),max=pb.getMaximum();

intvalue=pb.getValue();

showStatus("

Min:

"

+min+"

Max:

+max+

"

Value:

+value);

classGetInfoThreadextendsThread{

JProgressBarpb;

publicGetInfoThread(JProgressBarprogressBar){

pb=progressBar;

max=pb.getMaximum();

min=pb.getMinimum();

value=pb.getValue()+increment;

pb.setValue(value);

value=min;

11.1.4JProgressBar类总结

11.1.5AWT兼容

11.2JSlider

例11-4一个简单的JSlider例子

importjava.util.*;

JSliderslider=newJSlider();

contentPane.add(slider,BorderLayout.NORTH);

11.2.1填充的滑杆

例11-5一个填充的滑杆

publicTest(){

slider.putClientProperty("

JSlider.isFilled"

Boolean.TRUE);

11.2.2滑杆间隔标记

例11-6显示滑杆的间隔标记

JPanelcontrolPanel=newControlPanel(slider);

contentPane.setLayout(newBorderLayout(0,40));

contentPane.add(controlPanel,BorderLayout.NORTH);

contentPane.add(slider,BorderLayout.CENTER);

classControlPanelextendsJPanel{

publicControlPanel(finalJSliderslider){

JCheckBoxpaintTicks=newJCheckBox("

PaintTicks"

JComboBoxminorSpacing=newJComboBox(),

majorSpacing=newJComboBox();

minorSpacing.addItem("

0"

3"

5"

10"

20"

majorSpacing.addItem("

add(paintTicks);

add(newJLabel("

MinorTickSpacing:

));

add(minorSpacing);

MajorTickSpacing:

add(majorSpacing);

paintTicks.addActionListener(newActionListener(){

JCheckBoxcb=(JCheckBox)e.getSource();

slider.setPaintTicks(cb.isSelected());

slider.repaint();

minorSpacing.addItemListener(newItemListener(){

publicvoiditemStateChanged(ItemEvente){

JComboBoxcb=(JComboBox)e.getSource();

intspacing=Integer.parseInt(

(String)cb.getSelectedItem());

slider.setMinorTickSpacing(spacing);

slider.revalidate();

majorSpacing.addItemListener(newItemListener(){

slider.setMajorTickSpacing(spacing);

11.2.3滑杆标签

例11-7显示缺省的JSlider标签

slider.setPaintLabels(true);

slider.setMajorTickSpacing(20);

例11-8定制滑杆标签

Icon[]icons={

newImageIcon("

basketball.gif"

),

baseball.gif"

soccer.gif"

clipboard.gif"

filmstrip.gif"

crab.gif"

Hashtabletable=newHashtable();

for(inti=0,loc=0;

icons.length;

i++,loc+=20){

table.put(newInteger(loc),

newJLabel(Integer.toString(loc),

icons[i],

JLabel.LEFT));

slider.setLabelTable(table);

11.2.4反转滑杆值

例11-9中列出图11-10中示出的小应用程序的代码

privateJCheckBoxcheckBox=newJCheckBox("

Invert"

privateJSlider[]sliders={newJSlider(),

newJSlider(JSlider.VERTICAL)};

contentPane.add(checkBox);

sliders.length;

sliders[i].setPaintLabels(true);

sliders[i].setMajorTickSpacing(20);

contentPane.add(sliders[i]);

checkBox.addActionListener(newActionListener(){

++i)

sliders[i].setInverted(checkBox.isSelected());

11.2.5滑杆的外延值

例11-10设置一个滑杆的外延值

contentPane.add(slider,BorderLayout.SOUTH);

slider.addChangeListener(newChangeListener(){

JSliders=(JSlider)e.getSource();

+s.getMinimum()+

+s.get

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1