2014-09-02 58 views
3

我的JToolBar上有JProgressBar。问题是JProgressBar正在将JToolBar上的所有剩余空间取代为固定宽度。将JProgressBar宽度设置为固定大小

我已经尝试使用:

Dimension prefSize = goButton.getPreferredSize(); 
prefSize.width = 100;//some width 
progressBar.setPreferredSize(prefSize); 
progressBar.setVisible(true); 

要没有成功。 JProgressBar继续采取所有剩余的空间。

我该如何强制JProgressBar有一个固定的宽度?

这里是我的问题的一小运行的例子:

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import javax.swing.BorderFactory; 
import javax.swing.JButton; 
import javax.swing.JFrame; 
import javax.swing.JLabel; 
import javax.swing.JProgressBar; 
import javax.swing.JToolBar; 

public class SimpleToolbar extends JFrame { 

    class ToolBar extends JToolBar { 

    private final JLabel labelSomething; 
    private final JLabel labelAnything; 
    private final JButton goButton; 
    private final JButton cancelButton; 
    private final JButton pauseButton; 
    private final JProgressBar progressBar; 

    public ToolBar() 
    { 
     setBorder(BorderFactory.createEtchedBorder()); 
     setFloatable(false); 
     goButton = new JButton("Go"); 
     cancelButton = new JButton("Cancel"); 
     pauseButton = new JButton("Pause"); 
     labelAnything = new JLabel("Anything"); 
     labelSomething = new JLabel("Something"); 

     progressBar = new JProgressBar(); 
     progressBar.setIndeterminate(true); 

     Dimension prefSize = goButton.getPreferredSize(); 
     prefSize.width = 100;//some width 
     progressBar.setPreferredSize(prefSize); 
     progressBar.setVisible(true); 

     add(goButton); 
     add(cancelButton); 
     add(pauseButton); 
     addSeparator(); 
     add(labelAnything); 
     add(labelSomething); 
     addSeparator(); 
     add(progressBar); 
    } 
} 
    protected ToolBar toolBar; 

    public SimpleToolbar() { 
     super(); 
     setSize(600, 350); 

     toolBar = new ToolBar(); 
     getContentPane().add(toolBar, BorderLayout.NORTH); 
     setVisible(true); 
    } 

    public static void main(String[] a) { 
     new SimpleToolbar(); 

    } 
} 
+0

您是否尝试过加入将进度条添加到JPane,然后将其添加到JToolBar – NonSecwitter 2014-09-02 22:27:20

+0

@NonSecwitter否我没有,我会尝试并报告回来。 – dazito 2014-09-02 22:37:45

+0

@NonSecwitter是的,你是对的!如果你想发布这个答案,我会很乐意接受它。谢谢! – dazito 2014-09-02 23:03:45

回答

3

添加您JProgressBarJPane并添加JPaneJToolBar

高兴它帮助:)

相关问题