如何在java中创建一个加载栏

Posted

技术标签:

【中文标题】如何在java中创建一个加载栏【英文标题】:How to create a loading bar in java 【发布时间】:2016-05-29 08:50:56 【问题描述】:

我想知道单击按钮时如何为进度条设置循环。 我已经用循环尝试过了,但这是浪费时间。我在下面附上了我想要的图片。There is button in the North of the form and there is Progress Bar in the south

【问题讨论】:

首先你需要阅读this的文章。然后您需要创建进度对话框,将其传输到您的 SwingWorker 并在 propgress 更改时更新它们。 你能给出到目前为止你尝试过的代码吗? Here 是一个很好的例子,但没有对话。 @chanisajayawardana how to set a loop for a progress bar 是什么意思? 【参考方案1】:

这是一个简单的进度条示例,当您将鼠标悬停在按钮上时(根据您的图片),当鼠标悬停在按钮上时,您可以在线程中执行背景操作:-

import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JOptionPane;
import javax.swing.JProgressBar;

public class GUI extends JFrame 

boolean isMouseOver = false;
int count = 0;

public GUI()

    this.setTitle("Progress Bar");
    this.setBounds(100, 100, 407, 119);
    this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    this.getContentPane().setLayout(null);

    JProgressBar progressBar = new JProgressBar();
    progressBar.setBounds(10, 45, 371, 22);
    this.getContentPane().add(progressBar);

    JButton btnMousOver = new JButton("Mouse Over");
    btnMousOver.addMouseListener(new MouseAdapter()
    
        public void mouseEntered(MouseEvent evt)
        
            isMouseOver = true;
            btnMousOver.setEnabled(false);
            Thread go = new Thread()
            
                public void run()
                
                    while (isMouseOver && count < 101)
                    
                        count = count + 2;
                        progressBar.setValue(count);
                        // do some stuffs here
                        try
                        
                            Thread.sleep(100);
                        
                        catch (InterruptedException e)
                        
                            e.printStackTrace();
                        
                    
                
            ;
            go.start();

        

        public void mouseExited(MouseEvent evt)
        
            isMouseOver = false;
            btnMousOver.setEnabled(true);
        

        public void mousePressed(MouseEvent evt)
        
            JOptionPane.showMessageDialog(null, "Mouse CLicked");
        

        public void mouseReleased(MouseEvent evt)
        
            JOptionPane.showMessageDialog(null, "Mouse released");
        
    );
    btnMousOver.setBounds(142, 11, 108, 23);

    this.getContentPane().add(btnMousOver);
    this.getContentPane().add(progressBar);
    this.setLocationRelativeTo(null);
    this.setVisible(true);



public static void main(String[] args)

    new GUI();


【讨论】:

非常感谢Mr.Null saint...它工作得很好.. :) 我能知道一件小事吗?当我越过“鼠标悬停”按钮时,我想将进度值增加 2。每次我越过鼠标时,它就会增加 2。 @chanisajayawardana 然后代替 count++ 使其成为 count = count +2 count 是增量 我的意思是我想将进度条增加 2,但是当我把指针移开时它应该停止....再次我越过按钮它应该增加 2... 我已经这样做了...我想知道当我将指针远离按钮时增加和停止加载。

以上是关于如何在java中创建一个加载栏的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift Xcode 中创建自定义导航栏?

如何在android的操作栏中创建按钮[重复]

如何在 PyQT5 中创建导航栏

如何在 Tkinter 中创建垂直菜单栏?

如何在 EXTJS 4.1 中创建导航栏?

如何在 QMainWindow 中创建菜单栏