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();
}
}
您是否嘗試過加入將進度條添加到JPane,然後將其添加到JToolBar – NonSecwitter 2014-09-02 22:27:20
@NonSecwitter否我沒有,我會嘗試並報告回來。 – dazito 2014-09-02 22:37:45
@NonSecwitter是的,你是對的!如果你想發佈這個答案,我會很樂意接受它。謝謝! – dazito 2014-09-02 23:03:45