本文目录
- 我安装jdk的时候,到了安装java那一步,进度条卡住不动了,官网下的jdk安装包
- 关于Java中进度条的问题
- java 程序无法关闭窗口!用dispose()无效
- java实现进度条
- java的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢
- JAVA 进度条
我安装jdk的时候,到了安装java那一步,进度条卡住不动了,官网下的jdk安装包
先休眠或睡眠,过几秒钟再唤醒,就恢复正常了,很多基于java的安装程序都有这个特点。
关于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(){@Overridepublic void actionPerformed(ActionEvent e){start();copy.setEnabled(false);}});add(copy, BorderLayout.EAST);}class Task extends SwingWorker《Void, Void》{@Overridepublic 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;}@Overridepublic 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();}});}}
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.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的进度条问题 这个程序如何实现一运行程序进度条就自动走 谢谢
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.*;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(); } }); }}