java 重绘_java进度条重绘要怎么编写?

java 重绘_java进度条重绘要怎么编写?进度条相信小伙伴们都知道,一些游戏在加载时经常能看见,在编写进度条时有时候因为一些不可抗拒原因出错就需要重绘进度条,下面跟小编看看如何重绘。代码如下:packageluojing;importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.Timer;importjava.util.TimerT…

java 重绘_java进度条重绘要怎么编写?

进度条相信小伙伴们都知道,一些游戏在加载时经常能看见,在编写进度条时有时候因为一些不可抗拒原因出错就需要重绘进度条,下面跟小编看看如何重绘。

代码如下:package luojing;

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.util.Timer;

import java.util.TimerTask;

public class NewClass

{

static JProgressBar jpb = null;

static JButton jb = null;

public static void main(String args[])

{

JFrame frm = new JFrame();

Container contentPane = frm.getContentPane();

jpb = new JProgressBar();

jpb.setOrientation(JProgressBar.HORIZONTAL);

jpb.setMaximum(100);

jpb.setMinimum(0);

jpb.setValue(0);

jpb.setStringPainted(true);

jpb.setPreferredSize(new Dimension(400, 50));

contentPane.add(jpb, BorderLayout.CENTER);

jb = new JButton(“开始”);

jb.addActionListener(new Change());

contentPane.add(jb, BorderLayout.SOUTH);

frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

frm.pack();

frm.setTitle(“进度条”);

// 窗口居中

frm.setLocation((Toolkit.getDefaultToolkit()

.getScreenSize()

.width – frm.getSize()

.width) / 2, (Toolkit.getDefaultToolkit()

.getScreenSize()

.height – frm.getSize()

.height) / 2);

frm.setVisible(true);

}

static class Change implements ActionListener

{

public void actionPerformed(ActionEvent e)

{

Timer timer = new Timer();

timer.schedule(new mytask(jpb), 100, 100);

jb.setEnabled(false);

// 下面这种方法达不到预定效果,因为线程sleep()时用户界面也不会响应,只会在actionPerformde()执行结束后才会响应

/*

* for (int i = 0; i <= 100; i++) { try { Thread.sleep(100);

*

* jpb.setValue(i);

*

* } catch (InterruptedException e1) { e1.printStackTrace(); }

*

* }

*/

// 采用新建一个一个线程来执行累加可以达到预定的效果

/*

* new Thread(new Runnable() { public void run() { for (int i = 1; i

* <=100; i++) { try { Thread.sleep(100); jpb.setValue(i); } catch

* (InterruptedException ie) { } } } }).start();

*/

}

}

}

class mytask extends TimerTask

{

JProgressBar jpb = null;

int i = 1;

public mytask(JProgressBar jp)

{

this.jpb = jp;

}

public void run()

{

this.jpb.setValue(i++);

}

}

以上就是本篇文章的所有内容,更多详细java常见问题及解决方法敬请关注奇Q工具网了解详情。

推荐阅读:

今天的文章java 重绘_java进度条重绘要怎么编写?分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/27755.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注