首页 > 后端开发 > 正文

java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢

2024-05-06 02:50:39 | 我爱编程网

我爱编程网小编给大家带来了java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢相关文章,一起来看一下吧。

本文目录一览:

java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢

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")

//

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();

}//

/**

* @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的人了。。

java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢

java中swing界面中主程序运行时进度条不显示,程序结束后才显示;注释掉主程序后,再运行,进度条正常显示

你的 action 事件可以放在一个新线程中运行,不要阻挡 Swing 画图。

Swing 对事件的响应都是放在一个叫事件派发的线程中去做的,如果你的事件响应监听器本身在被事件派发线程调用时你做的事件太花时间了(比如我们来个无限循环啥的)我们就应该把这个 actionPerformed 方法中的事情放在一个新开的线程中去做:

public void actionPerformed(final ActionEvent e) {

new Thread() {

public void run() { // 你的事情都放在这里处理 }

}.start() ; // 开启一个新线程来处理,它将不再阻挡 Swing 事件派发线程去绘图。

}

java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢

我在做一个JAVA软件,希望在点击一个按钮后执行一段程序,在执行过程中出现一个进度条,应该怎么添加

package socket.fox.msgdeal;

import java.awt.Color;

import java.awt.Dimension;

import java.awt.Frame;

import java.awt.Graphics;

import java.awt.Image;

import java.awt.Toolkit;

import java.awt.event.WindowAdapter;

import java.awt.event.WindowEvent;

public class JProgressBar extends Frame implements Runnable {

int x, y; // 进度倏起始位置

int rectWidth, rectHeight, width, height, num; // 进度格倏宽,进度格高,进度倏宽,进度倏高,格子数量

int x0, d, n; // 进度,进度格之间的距离,进度n%

Image bufImg;

Graphics gBuf;

public JProgressBar() {

x = 40;

y = 50;

x0 = x;

rectWidth = 6; // 每个进度格的宽

rectHeight = 10;

d = rectWidth / 3;

num = 50; // 显示五十个进度格

width = (rectWidth + d) * num;

height = rectHeight + 4; // 进度格的高

init();

bufImg = this.createImage(getWidth(), getHeight());

gBuf = bufImg.getGraphics();

paintBack();

repaint();

}

public void init() {

this.addWindowListener(new WindowAdapter() {

public void windowClosing(WindowEvent e) {

System.exit(0);

}

});

this.setSize(this.x * 2 + width, this.y * 2 + height);

this.setVisible(true);

Dimension dim = Toolkit.getDefaultToolkit().getScreenSize();

int w = getSize().width;

int h = getSize().height;

int x = (dim.width - w) / 2;

int y = (dim.height - h) / 2;

setLocation(x, y);

}

public static void main(String[] args) {

new Thread(new JProgressBar()).start();

}

public void paintBack() {

gBuf.drawRoundRect(x, y, width, height, 6, 6);

}

public void paintProgressRect() {

Color c = gBuf.getColor();

gBuf.setColor(new Color(46, 211, 49));

x0 = x;

for (int i = 0; i < n; i++) {

gBuf.fillRect(x0, y + 2, rectWidth, rectHeight);

x0 += rectWidth + d;

}

gBuf.setColor(c);

}

public void paint(Graphics g) {

g.drawImage(bufImg, 0, 0, this);

}

/**

* 设置进度倏进度

*

* @param n

* 进度百分比

*/

public void setPercent(int n) {

this.n = n;

}

public void run() {

boolean flag = true;

while (flag) {

try {

repaint();

Thread.sleep(500);

n++;

System.out.println(n);

if (n > num) {

n = num;

flag = false;

}

paintProgressRect();

} catch (InterruptedException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

}

}

以上就是我爱编程网小编给大家带来的java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢,希望能对大家有所帮助。

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢”相关推荐