标签: jprogressbar

JProgressBar动态更改条形颜色

我正在使用JProgressBar组件以及Nimbus UI Defaults.问题是,当我想手动更改每个进度条的条形颜色时,我BasicProgressBarUI通过设置JProgressBar.setUI()功能来使用.这会带来更多麻烦,因为我想改变条形颜色,似乎我松开了jprogressbar的默认外观(Border,backgroundcolor dissappears).

所以我可以UIDefaults在代码初始化时设置Nimbus ProgressBar.有用.

但我想动态更改每个进度条的条形颜色.

有没有其他方法可以改变条形颜色JProgressBar

public class ProgressGenerator extends JFrame {

    protected int minValue = 0;
    protected int maxValue = 100;
    protected int counter = 0;
    protected JProgressBar progressBar;

    public ProgressGenerator() {
        super("JProgressBar Demo");
        setSize(300, 100);

        try {
            UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
        } catch (ClassNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (InstantiationException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IllegalAccessException e1) {
            // …
Run Code Online (Sandbox Code Playgroud)

java swing jprogressbar nimbus uimanager

5
推荐指数
1
解决办法
1万
查看次数

在处理时更新JProgressBar

我知道这个问题已经在许多问题上被看到并且已经得到了回答,但是,我仍然无法理解它.

我只想在提取大型xml文件的某些内容更新progressBar.我认为在不同的线程中使用耗时的循环已经足够了但是?所有我设法获得的是progressBar要么根本没有显示,要么在结束之前更新,就在它关闭之前.

实例在应用程序启动附近的某处,我有:

public class SomeClass {
    private SomeClass () {
        myXMLParser reader = new myXMLParser();
        CoolStuff fromXml = reader.readTheXml();
    }
}
Run Code Online (Sandbox Code Playgroud)

使用JProgressBar显示和更新JDialog时:

public class LoadingDialog extends JDialog {
    private JProgressBar progressBar;
    /* ... */
    public void progress() {
        progressBar.setValue(progressBar.getValue() + 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

所以我有这个myXMLParser:

public class myXMLParser {
    private LoadingDialog loadingDialog = new LoadingDialog();

    public CoolStuff readTheXml() {
        CoolStuff fromXml = new CoolStuff();
        while(manyIterations) {
            loadingDialog.progress();
            fromXml.add(some() + xml() + reading()); …
Run Code Online (Sandbox Code Playgroud)

java swing swingworker jprogressbar event-dispatch-thread

4
推荐指数
1
解决办法
7040
查看次数

我的JProgressBar没有更新直到100%

好的,我有以下代码.

public class MyProgressBar extends JPanel implements MyData, Serializable {

    /**
     * 
     */

    public static final int MAX                = 10000;
    public static final int WIDTH              = 400;
    public static final int HEIGHT             = 75;

    private JProgressBar    MyBar              = new JProgressBar( SwingConstants.HORIZONTAL, 0, MAX );
    private JFrame          MyFrame            = new JFrame();

    private int             MyValue            = 0;

    private Thread          MyThread           = new Thread( new ProgressThread() );



    public MyProgressBar() {
        add(MyBar);

        int x = ( MyData.SCREEN.width  / 2 ) - ( WIDTH  / …
Run Code Online (Sandbox Code Playgroud)

java swing swingworker jprogressbar runnable

4
推荐指数
2
解决办法
1万
查看次数

让我的jProgressBar在1到100的计时器上运行

我正在浏览这个帖子

如何使定时器倒计时与进度条一起?

我想将此添加到我的代码中,这样我就可以得到一个jProgressBar和一个Button,(最好使用netbeans)

因此,当我按下按钮时,它会从0到100稳定地运行,我真的试图自己去做这个并且真的很生气,任何帮助都会很好.

java swing jprogressbar

4
推荐指数
1
解决办法
8566
查看次数

JProgressbar:如何根据进度改变颜色?

是否可以根据进度值更改条形颜色?我尝试了以下但它不起作用:

percentUsed = (int)(((float) used / (float) max) * BAR_PERCENTAGE);
      if (percentUsed >= ORANGE_THRESHOLD &&  percentUsed < RED_THRESHOLD) {
        if (!m_orangeIndicator) {
          LOG.warn(String.format("Memory usage exceeds %d percent.", ORANGE_THRESHOLD));
          m_orangeIndicator = true;
        }
        colour = Color.ORANGE;
        m_redIndicator = false;
      }
      else if (percentUsed >= RED_THRESHOLD) {
        if (!m_redIndicator) {
          LOG.warn(String.format("Memory usage exceeds %d percent.", RED_THRESHOLD));
          m_orangeIndicator = true;
          m_redIndicator = true;
        }
        colour = Color.RED;
      }
      else {
        m_orangeIndicator = false;
        m_redIndicator = false;
        colour = Color.GREEN;
      }
      m_memUsageBar.setForeground(colour);
      m_memUsageBar.setValue(percentUsed);
      m_memUsageBar.updateUI(); …
Run Code Online (Sandbox Code Playgroud)

java swing netbeans colors jprogressbar

4
推荐指数
1
解决办法
1万
查看次数

在复制目录和文件时需要有JProgress栏来衡量进度

我有以下代码来复制目录和文件,但不知道在哪里测量进度.有人可以帮助
我在哪里可以测量复制了多少并在JProgress栏中显示它

public static void copy(File src, File dest)
throws IOException{
if(src.isDirectory()){
        if(!dest.exists()){ //checking whether destination directory exisits
           dest.mkdir();
           System.out.println("Directory copied from " 
                        + src + "  to " + dest);
        }

        String files[] = src.list();

        for (String file : files) {

           File srcFile = new File(src, file);
           File destFile = new File(dest, file);

           copyFolder(srcFile,destFile);
        }
  }else{
        InputStream in = new FileInputStream(src);
          OutputStream out = new FileOutputStream(dest); 

          byte[] buffer = new byte[1024];

          int length;

          while ((length = in.read(buffer)) > 0){ …
Run Code Online (Sandbox Code Playgroud)

java file-io swing swingworker jprogressbar

4
推荐指数
1
解决办法
6004
查看次数

如何在Swing中创建无尽的进度条?

这个问题,我想用Java中的Swing做同样的事情.我在NetBeans上查找了JProgressBar,但我找不到这样的选项.还有另一个组件可以执行此任务,或者JProgressBar中有一个选项?

以这种方式使用此组件的原因与该问题的OP相同.

java swing jprogressbar progress-bar

4
推荐指数
1
解决办法
1880
查看次数

批处理文件运行时显示不确定的JProgressBar

我一直在浏览SO和谷歌一段时间来回答这个问题,但我似乎无法找到一个真正有用的.我将从头开始:

我创建了一个Java类,其中包含一个在后台运行批处理文件的方法(命令窗口不会出现).该程序运行良好,但对最终用户来说会有点混乱,因为批处理文件需要一段时间才能完成 - 用户不知道程序是否仍在运行.批处理脚本完成执行后,会出现一个消息对话框,说明它已完成,但是在运行方法和对话框出现之间的一段时间内,看起来好像程序什么也没做.

所以这是我的问题:我非常希望显示一个带有文本区域的新框架,该文本区域显示批处理文件的输出.但是,据我所知,如果不创建临时文件,写入文件,从中读取文件等,这很难做到.如果可能的话,我宁愿避免这样做.因此,我已经决定在进程运行时显示不确定的JProgressBar可能会更好,并在进程完成时关闭它.不幸的是,我不认为Swing可以处理这个问题,因为它需要同时运行多个进程.我听说过SwingWorker,但我不确定在这种情况下如何使用它.我有以下SSCCE,它可以工作,但没有实现进度条.

public myClass(){
    public static void main(String[] args){
        String[] commands = {"cmd.exe", "/C", "C:\\users\\....\\myBat.bat"};
        Process p = Runtime.getRuntime().exec(commands);
        p.waitFor()
        JOptionPane.showMessageDialog(null, "Process finished!");
    }
}
Run Code Online (Sandbox Code Playgroud)

当p.waitFor()等待进程时,屏幕上没有任何内容.我只是希望向用户显示进程仍在运行的内容.思考?谢谢!

java swing joptionpane jprogressbar progress-bar

4
推荐指数
1
解决办法
3002
查看次数

如果没有自定义对话框面板中的Thread.sleep(),SwingWorker不会更新JProgressBar

我有一个SwingWorker类加载一个文本文件并将其切片到块进行进一步处理.

这是SwingWorker班级:

public class ConverterWorker extends SwingWorker<String, String>
{
private final File f;
private final JLabel label;

public ConverterWorker(File f, JLabel label)
{
    this.f = f;
    this.label = label;
}

@Override
protected String doInBackground() throws Exception 
{
    NMTMain.convertableData = getDataSets(f);

    if(!NMTMain.convertableData.isEmpty())
    {
        return "Done";
    }
    else
    {
        publish("Failed to load the file!");
        return "Failed";
    }
}

@Override
public void done() 
{
    try 
    {
        label.setText(get());
    } 
    catch (Exception e)
    {
        e.printStackTrace(System.err);
        System.out.println("error");
    }
}

@Override
protected void …
Run Code Online (Sandbox Code Playgroud)

java swing swingworker jprogressbar thread-sleep

4
推荐指数
1
解决办法
1067
查看次数

JProgressBar在不可见时不占用空间

我希望能够隐藏JProgressBar并使其所在的面板不会改变大小.

目前,当我将进度条设置为visible(via pb.setVisible(true))时,我得到如下布局:

进度条可见

然后,当我将其设置为不可见时,我得到以下布局:

进度条不可见

  • 显然强制JPanel是一个特定的大小并没有帮助.
  • 在JProgressBar上设置显式大小似乎没有帮助.
  • 使用NetBean的GUI编辑器中的垂直间隙进行修改似乎没有帮助(我将其设置为固定大小).

我想我在这里很容易丢失一些东西,我看不出它是什么.

如何强制隐藏的JProgressBar仍然占用房地产(特别是垂直房地产)?

代码在下面,因为它的价值.我对错过的概念比代码的细节更感兴趣.:-)

package pbtest;

public class MyFrame extends javax.swing.JFrame {

public MyFrame() {
    initComponents();
}

/**
 * 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();
    pb = new javax.swing.JProgressBar();
    bnVis = …
Run Code Online (Sandbox Code Playgroud)

java swing jprogressbar

4
推荐指数
1
解决办法
138
查看次数