欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

java 进度条 百分比_java怎么让进度条带百分数

发布时间:2024/8/1 编程问答 60 豆豆
生活随笔 收集整理的这篇文章主要介绍了 java 进度条 百分比_java怎么让进度条带百分数 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

展开全部

public void setString(String s)

设置进度字符串的值。默认情况下,此字符串为 null,隐含使用简单百分比字符串的内置行为62616964757a686964616fe78988e69d8331333264623135。如果已提供自定义进度字符串并要转换回内置状态,将字符串设置回 null 即可。

仅当 isStringPainted 方法返回 true 时绘制进度字符串。

参数:

s - 进度字符串的值

另请参见:

getString(), setStringPainted(boolean), isStringPainted()

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 SwingWorker {

/*

* 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怎么让进度条带百分数的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。