java进度条不关闭(我安装jdk的时候,到了安装java那一步,进度条卡住不动了,官网下的jdk安装包)

本文目录
- 我安装jdk的时候,到了安装java那一步,进度条卡住不动了,官网下的jdk安装包
- java 程序无法关闭窗口!用dispose()无效
- JAVA 进度条
- java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢
- java实现进度条
- 关于Java中进度条的问题
我安装jdk的时候,到了安装java那一步,进度条卡住不动了,官网下的jdk安装包
先休眠或睡眠,过几秒钟再唤醒,就恢复正常了,很多基于java的安装程序都有这个特点。
java 程序无法关闭窗口!用dispose()无效
改成这样,你看看:
import java.awt.BorderLayout;
import java.awt.Dimension;
import javax.swing.*;
import java.awt.event.*;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
import javax.xml.ws.Dispatch;
public class Progress_bar extends JFrame implements ActionListener
{
private static final long serialVersionUID = -2543187469376323631L;
//ActionListener ,ChangeListener是 2个实现进度条的 接口
private JPanel panel;
private Timer timer;
private JButton btn;
private JProgressBar pgb;
private JLabel label;
JFrame frame;
public void init()
{
panel = new JPanel();
btn = new JButton("start");
btn.addActionListener(this);
panel.add (btn,BorderLayout.CENTER);
timer = new Timer(1,this);//控制进度条速度
pgb = new JProgressBar();//可视化进度条(显示进度条)
pgb.setOrientation (JProgressBar.HORIZONTAL);
pgb.setMaximum (100);//显示已完成多少(到多少)
pgb.setMinimum (0);//显示已完成多少(从多少开始)
pgb.setValue (0);//将进度条的当前值设置为 0
pgb.setStringPainted (true);//设置 stringPainted 属性的值,
//该属性确定进度条是否应该呈现进度字符串。
pgb.setPreferredSize (new Dimension(400,80));
//Dimension 类封装单个对象中组件的宽度和高度(好像没什么 用)
label = new JLabel("正在启动QQ...");//创建一个标示(用于显示进度文字的显示)
frame = new JFrame("test");
frame.add (panel,BorderLayout.SOUTH);
frame.add (pgb,BorderLayout.CENTER);
frame.add (label,BorderLayout.NORTH);
frame.setBounds(450, 300, 350, 100);//设置窗体长和宽
frame.setVisible (true);//显示窗体
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);//关闭有效
}
public static void main(String args)
{
new Progress_bar().init (); //执行 程序
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource ()==btn)
{
timer.start ();
}
if(e.getSource ()==timer)
{
int value = pgb.getValue () ;
if(value《100)
{
value++;
pgb.setValue (value);
}
if(value ==100)
{
timer.stop ();
pgb.setValue (0);
frame.setVisible(false);
frame.dispose();
}
}
}
}
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 SwingWorker《Void, 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的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢
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的人了。。
java实现进度条
给你改了,自己再整理一下代码吧,好乱.......
import java.awt.BorderLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JProgressBar;
public class JProgressTest extends JFrame implements ActionListener, Runnable {
/**
* @param args
*/
JProgressBar jb;
JButton jbu;
boolean flag = false;
int i = 0;
JProgressTest() {
JPanel jp = new JPanel();
jb = new JProgressBar(0, 100);
jbu = new JButton("运行");
jp.add(jb);
add(jp, BorderLayout.CENTER);
add(jbu, BorderLayout.SOUTH);
this.setSize(200, 100);
this.setVisible(true);
jbu.addActionListener(this);
System.out.println("start");
jb.setValue(0);
jb.setStringPainted(true);
}
public void run() {
while(i《=99){
// System.out.println("run方法里!");
jb.setValue(++i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// jb.setStringPainted(true);
}
// System.out.println("走出RUN方法!");
System.out.println("fuck");
}
public void actionPerformed(ActionEvent e) {
// this.run();
this.flag = true;
// System.out.println(this);
Thread t = new Thread(this);
// t.run();
t.start();
// while (i 《= 99) {
// System.out.println("start");
// this.run();
// // this.repaint();
// try {
// t.sleep(1000);
// } catch (InterruptedException evt) {
// // TODO Auto-generated catch block
// evt.printStackTrace();
// }
// }
}
public static void main(String args) {
// TODO Auto-generated method stub
JProgressTest jt = new JProgressTest();
}
}
关于Java中进度条的问题
import java.awt.BorderLayout;
import java.awt.Cursor;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.beans.PropertyChangeEvent;
import java.beans.PropertyChangeListener;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.SwingWorker;
public class Bar extends JFrame implements PropertyChangeListener
{
private static final long serialVersionUID = 1L;
private JProgressBar progressBar;
private JButton copy;
private Task task;
public Bar(String title)
{
setTitle(title);
setLayout(new BorderLayout());
progressBar = new JProgressBar(0, 100);
progressBar.setValue(0);
progressBar.setStringPainted(true);
add(progressBar, BorderLayout.CENTER);
copy = new JButton("拷贝");
copy.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e)
{
start();
copy.setEnabled(false);
}
});
add(copy, BorderLayout.EAST);
}
class Task extends SwingWorker《Void, Void》
{
@Override
public Void doInBackground()
{
setProgress(0);
File file = new File("aa.mp3");
long size = file.length();
byte;
int length = 0;
long cLength = 0;
try
{
InputStream stream = new FileInputStream(file);
OutputStream os = new FileOutputStream(new File("a.mp3"));
while((length = stream.read(bts)) 》 0)
{
os.write(bts, 0, length);
cLength += length;
setProgress((int) (cLength * 100 / size));
Thread.sleep(100);
}
os.close();
stream.close();
}
catch(Exception e1)
{
e1.printStackTrace();
}
return null;
}
@Override
public void done()
{
setTitle("拷贝完毕");
Toolkit.getDefaultToolkit().beep();
copy.setEnabled(true);
setCursor(null);
}
}
public void propertyChange(PropertyChangeEvent evt)
{
if("progress" == evt.getPropertyName())
{
int progress = (Integer) evt.getNewValue();
progressBar.setValue(progress);
}
}
private void start()
{
task = new Task();
task.addPropertyChangeListener(this);
task.execute();
setTitle("正在拷贝...");
setCursor(Cursor.getPredefinedCursor(Cursor.WAIT_CURSOR));
}
private static void createAndShowGUI()
{
Bar frame = new Bar("Bar");
frame.setAlwaysOnTop(true);
frame.setSize(280, 60);
frame.setResizable(false);
frame.setLocationRelativeTo(null);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
public static void main(String args)
{
javax.swing.SwingUtilities.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}

更多文章:
跷二郎腿太低好吗?想要通过贴墙站改正二郎腿影响的话,有哪些要点需要注意
2026年10月11日 05:10
易语言点击js按钮(易语言网页填表怎样点击链接为“javascript:void(0)“的按钮)
2026年10月11日 03:00
compare with造句(用compared with和compared to造句)
2026年10月10日 23:30
tensorflow与keras对应版本(为什么tensorflow2.8没有keras)
2026年10月10日 22:10
maven仓库jar网站(如何在maven仓库中添加jar包)
2026年10月10日 19:50




