2014-09-02 57 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

高興它幫助:)

相關問題