将JProgressBar宽度设置为固定大小
问题描述:
我的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();
}
}
答
添加您JProgressBar
到JPane
并添加JPane
到JToolBar
高兴它帮助:)
您是否尝试过加入将进度条添加到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