java计算进度条代码 java进度条为什么不动

Java中如何实现进度条效果

代洞雀码如下:import java.awt.Color; import java.awt.Toolkit; import javax.swing.ImageIcon; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JProgressBar; import javax.swing.JWindow; @SuppressWarnings("serial") public class Demo extends JWindow implements Runnable { // 定义加载窗口大小 public static final int LOAD_WIDTH = 455; public static final int LOAD_HEIGHT = 295; // 获取屏幕窗口大小 public static final int WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width; public static final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height; // 定义进度条组件 public JProgressBar progressbar; // 定义标签组件 public JLabel label; // 构造函数 public Demo() { // 创建标签,并在标签上放置一张图片 label = new JLabel(new ImageIcon("images/background.jpg")); label.setBounds(0, 0, LOAD_WIDTH, LOAD_HEIGHT - 15); //冲中 创建进度条 progressbar = new JProgressBar(); // 显示当前进度值信纳判早息 progressbar.setStringPainted(true); // 设置进度条边框不显示 progressbar.setBorderPainted(false); // 设置进度条的前景色 progressbar.setForeground(new Color(0, 210, 40)); // 设置进度条的背景色 progressbar.setBackground(new Color(188, 190, 194)); progressbar.setBounds(0, LOAD_HEIGHT - 15, LOAD_WIDTH, 15); // 添加组件 this.add(label); this.add(progressbar); // 设置布局为空 this.setLayout(null); // 设置窗口初始位置 this.setLocation((WIDTH - LOAD_WIDTH) / 2, (HEIGHT - LOAD_HEIGHT) / 2); // 设置窗口大小 this.setSize(LOAD_WIDTH, LOAD_HEIGHT); // 设置窗口显示 this.setVisible(true); } public static void main(String[] args) { Demo t = new Demo(); new Thread(t).start(); } @Override public void run() { for (int i = 0; i 100; i++) { try { Thread.sleep(100); } catch (InterruptedException e) { e.printStackTrace(); } progressbar.setValue(i); } JOptionPane.showMessageDialog(this, "加载完成"); this.dispose(); } } 效果图:

创新互联公司于2013年成立,先为阳曲等服务建站,阳曲等地企业,进行企业商务咨询服务。为阳曲企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。

java编程:怎么写进度条?高手进哈

进度条有三种思路:

1.人为的划分某些标识,达到某个标识就是完成了百分之多少。

2.如果是上传和下载附件,可以将文件大小作为100%,上传或下载百分之多少,就是百分之多少。

3.对进度的类型所需时间进行分类。划出几种时间。属于某类,大圆基弊概或平均完成时间是多少,那么就以这个时间作为100%。然后产橘族生进度。

但,完美的进度是不可能实现的,因为你总不能先跑一遍确定时间。而且就算完全相同的条件,跑两遍的时间也不能一定相等的。所以我们只能通过各种技巧来使进度条更加自然真实。

最后,现在很多地方都不用进度条了,全部都是一个转动的圆圈等等。因为当你进度卡锋岁在10%半个小时,然后瞬间涨到99%,进度条已经就没什么意义了。

JAVA 进度条

直接上官方示例

import java.awt.*;

import java.awt.event.*;

import javax.swing.*;

import java.beans.*;

import java.util.Random;

public class ProgressBarDemo extends JPanel

implements ActionListener,

拍好                    PropertyChangeListener {

private JProgressBar progressBar;

private JButton startButton;

private JTextArea taskOutput;

private Task task;

class Task extends SwingWorkerVoid, Void {

/*

* Main task. Executed in background thread.

*/

@Override

public Void doInBackground() {

Random random = new Random();

int progress = 0;

//Initialize progress property.

setProgress(0);

while (progress  100) {

//Sleep for up to one second.

try {

伏碧           Thread.sleep(random.nextInt(1000));

} catch (InterruptedException ignore) {}

//Make random progress.

progress += random.nextInt(10);

setProgress(Math.min(progress, 100));

}

return null;

}

/*

* Executed in event dispatching thread

*/

@Override

public void done() {

Toolkit.getDefaultToolkit().beep();

startButton.setEnabled(true);

setCursor(null); //turn off the wait cursor

taskOutput.append("Done!\n");

}

}

public ProgressBarDemo() {

super(new BorderLayout());

//Create the demo's UI.

startButton = new JButton("Start");

startButton.setActionCommand("start");

startButton.addActionListener(this);

progressBar = new JProgressBar(0, 100);

progressBar.setValue(0);

progressBar.setStringPainted(true);

taskOutput = new JTextArea(5, 20);

taskOutput.setMargin(new Insets(5,5,5,5));

taskOutput.setEditable(false);

JPanel panel = new JPanel();

panel.add(startButton);

panel.add(progressBar);

缺贺举 add(panel, BorderLayout.PAGE_START);

add(new JScrollPane(taskOutput), BorderLayout.CENTER);

setBorder(BorderFactory.createEmptyBorder(20, 20, 20, 20));

}

/**

* Invoked when the user presses the start button.

*/

public void actionPerformed(ActionEvent evt) {

startButton.setEnabled(false);

setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));

//Instances of javax.swing.SwingWorker are not reusuable, so

//we create new instances as needed.

task = new Task();

task.addPropertyChangeListener(this);

task.execute();

}

/**

* Invoked when task's progress property changes.

*/

public void propertyChange(PropertyChangeEvent evt) {

if ("progress" == evt.getPropertyName()) {

int progress = (Integer) evt.getNewValue();

progressBar.setValue(progress);

taskOutput.append(String.format(

"Completed %d%% of task.\n", task.getProgress()));

}

}

/**

* Create the GUI and show it. As with all GUI code, this must run

* on the event-dispatching thread.

*/

private static void createAndShowGUI() {

//Create and set up the window.

JFrame frame = new JFrame("ProgressBarDemo");

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

//Create and set up the content pane.

JComponent newContentPane = new ProgressBarDemo();

newContentPane.setOpaque(true); //content panes must be opaque

frame.setContentPane(newContentPane);

//Display the window.

frame.pack();

frame.setVisible(true);

}

public static void main(String[] args) {

//Schedule a job for the event-dispatching thread:

//creating and showing this application's GUI.

javax.swing.SwingUtilities.invokeLater(new Runnable() {

public void run() {

createAndShowGUI();

}

});

}

}

java中如何编写一个进度条代码,需要显示百分比

在java里面有JProgressBar 这个类,你查下文档看看如何实现,我也没有使用过


当前标题:java计算进度条代码 java进度条为什么不动
当前网址:http://hbruida.cn/article/ddpsddj.html