1. 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(); } }
2. java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢
public class NewJFrame extends javax.swing.JFrame implements ActionListener, ChangeListener {
public NewJFrame() {
initComponents();
Timer timer = new Timer(50, this);
timer.setRepeats(true);
timer.start();
}
/** This method is called from within the constructor to
* initialize the form.
* WARNING: Do NOT modify this code. The content of this method is
* always regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {
jPanel1 = new javax.swing.JPanel();
jProgressBar1 = new javax.swing.JProgressBar();
jLabel1 = new javax.swing.JLabel();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
setAlwaysOnTop(true);
getContentPane().setLayout(new java.awt.CardLayout());
jPanel1.setPreferredSize(new java.awt.Dimension(600, 350));
jPanel1.setVerifyInputWhenFocusTarget(false);
jPanel1.setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout());
jPanel1.add(jProgressBar1, new org.netbeans.lib.awtextra.AbsoluteConstraints(310, 294, 270, 10));
// jLabel1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/splashTimer.jpg"))); // NOI18N
jLabel1.setMaximumSize(new java.awt.Dimension(600, 350));
jLabel1.setMinimumSize(new java.awt.Dimension(600, 350));
jLabel1.setPreferredSize(new java.awt.Dimension(600, 350));
jPanel1.add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(0, 0, -1, -1));
getContentPane().add(jPanel1, "card2");
pack();
}// </editor-fold>
/**
* @param args the command line arguments
*/
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new NewJFrame().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JLabel jLabel1;
private javax.swing.JPanel jPanel1;
private javax.swing.JProgressBar jProgressBar1;
// End of variables declaration
public void stateChanged(ChangeEvent e1) {
int value = jProgressBar1.getValue();
if (e1.getSource() == jProgressBar1) {
}
}
public void actionPerformed(ActionEvent e) {
int value = jProgressBar1.getValue();
if (value < 100) {
value++;
jProgressBar1.setValue(value);
} else {
jProgressBar1.setValue(0);
}
}
}
终于看到个用netbeans的人了。。
3. 如何用java相关的知识实现一个进度条
根据HTTP协议,只能是请求-响应模式,服务器是不能主动发消息给客户端的
你要做这种效果,
第一种办法
在客户端递归调用请求方法,来检测做到什么程度了
但这样不好,对服务器压力很大
第二种办法
根据你自己的业务逻辑,
把业务逻辑拆分,做第一步请求服务器,服务器做好,给予响应,客户端显示完成xx%,然后做下一步
这两种办法都是要用AJAX,你要的这种效果也只能用ajax
4. JAVA 进度条
直接上官方示例
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
importjava.beans.*;
importjava.util.Random;
implementsActionListener,
PropertyChangeListener{
;
privateJButtonstartButton;
privateJTextAreataskOutput;
privateTasktask;
classTaskextendsSwingWorker<Void,Void>{
/*
*Maintask.Executedinbackgroundthread.
*/
@Override
publicVoiddoInBackground(){
Randomrandom=newRandom();
intprogress=0;
//Initializeprogressproperty.
setProgress(0);
while(progress<100){
//Sleepforuptoonesecond.
try{
Thread.sleep(random.nextInt(1000));
}catch(InterruptedExceptionignore){}
//Makerandomprogress.
progress+=random.nextInt(10);
setProgress(Math.min(progress,100));
}
returnnull;
}
/*
*
*/
@Override
publicvoiddone(){
Toolkit.getDefaultToolkit().beep();
startButton.setEnabled(true);
setCursor(null);//turnoffthewaitcursor
taskOutput.append("Done!
");
}
}
publicProgressBarDemo(){
super(newBorderLayout());
//Createthedemo'sUI.
startButton=newJButton("Start");
startButton.setActionCommand("start");
startButton.addActionListener(this);
progressBar=newJProgressBar(0,100);
progressBar.setValue(0);
progressBar.setStringPainted(true);
taskOutput=newJTextArea(5,20);
taskOutput.setMargin(newInsets(5,5,5,5));
taskOutput.setEditable(false);
JPanelpanel=newJPanel();
panel.add(startButton);
panel.add(progressBar);
add(panel,BorderLayout.PAGE_START);
add(newJScrollPane(taskOutput),BorderLayout.CENTER);
setBorder(BorderFactory.createEmptyBorder(20,20,20,20));
}
/**
*.
*/
publicvoidactionPerformed(ActionEventevt){
startButton.setEnabled(false);
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
//Instancesofjavax.swing.SwingWorkerarenotreusuable,so
//wecreatenewinstancesasneeded.
task=newTask();
task.addPropertyChangeListener(this);
task.execute();
}
/**
*Invokedwhentask'sprogresspropertychanges.
*/
publicvoidpropertyChange(PropertyChangeEventevt){
if("progress"==evt.getPropertyName()){
intprogress=(Integer)evt.getNewValue();
progressBar.setValue(progress);
taskOutput.append(String.format(
"Completed%d%%oftask.
",task.getProgress()));
}
}
/**
*CreatetheGUIandshowit.AswithallGUIcode,thismustrun
*ontheevent-dispatchingthread.
*/
(){
//Createandsetupthewindow.
JFrameframe=newJFrame("ProgressBarDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Createandsetupthecontentpane.
JComponentnewContentPane=newProgressBarDemo();
newContentPane.setOpaque(true);//contentpanesmustbeopaque
frame.setContentPane(newContentPane);
//Displaythewindow.
frame.pack();
frame.setVisible(true);
}
publicstaticvoidmain(String[]args){
//Scheleajobfortheevent-dispatchingthread:
//'sGUI.
javax.swing.SwingUtilities.invokeLater(newRunnable(){
publicvoidrun(){
createAndShowGUI();
}
});
}
}
5. Java:进度条该如何实现呢费解
首先进度条肯定是要用线程来做了;
其次,就看你是做真的假的了?
真的,比较麻烦;要读取报文什么的。
假的话,就是没有用内存的必要了,可以用一个实体,属性包含百分比和长度,用两个div实现。给你找张图片看看吧,我以前做的。
6. java实现进度条
import java.awt.BorderLayout;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
public class Test extends JFrame {
public Test(){
super();
setSize(100,100);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
JProgressBar progressBar = new JProgressBar();
getContentPane().add(progressBar,BorderLayout.NORTH);
progressBar.setStringPainted(true);
for (int i = 0;i < 50;i++){
progressBar.setValue(i);
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
public static void main(String[] args) {
new Test();
}
}
for循环里面加了个延时函数。
7. java编程:怎么写进度条高手进哈
进度条有三种思路:
1.人为的划分某些标识,达到某个标识就是完成了百分之多少。
2.如果是上传和下载附件,可以将文件大小作为100%,上传或下载百分之多少,就是百分之多少。
3.对进度的类型所需时间进行分类。划出几种时间。属于某类,大概或平均完成时间是多少,那么就以这个时间作为100%。然后产生进度。
但,完美的进度是不可能实现的,因为你总不能先跑一遍确定时间。而且就算完全相同的条件,跑两遍的时间也不能一定相等的。所以我们只能通过各种技巧来使进度条更加自然真实。
最后,现在很多地方都不用进度条了,全部都是一个转动的圆圈等等。因为当你进度卡在10%半个小时,然后瞬间涨到99%,进度条已经就没什么意义了。
8. 怎么做java语言进度条
在js中做一个遮罩层,当你点击的时候显示进度条,进度条读完之后再隐藏,以下有两种方式,试试,望采纳
方法一:
//开启遮罩
$.messager.progress({});
或
$.messager.progress({
title: 'Please waiting',
msg: 'Loading data...',
text: 'PROCESSING.......'
});
//关闭遮罩
$.messager.progress('close');
方法二:
//显示遮罩
$("#标签ID").标签("loading", "数据加载中……")
$("#dg").datagrid("loading", "数据加载中……");
//隐藏遮罩
$("#dg").datagrid("loaded");