Java 将JProgressBar宽度设置为固定大小
我的Java 将JProgressBar宽度设置为固定大小,java,swing,jprogressbar,Java,Swing,Jprogressbar,我的JToolBar上有一个JProgressBar。问题在于JProgressBar占用了JToolBar上的所有剩余空间,而不是固定宽度 我试过使用: Dimension prefSize = goButton.getPreferredSize(); prefSize.width = 100;//some width progressBar.setPreferredSize(prefSize); progressBar.setVisible(true); 没有成功。JProgressBar
JToolBar
上有一个JProgressBar
。问题在于JProgressBar
占用了JToolBar
上的所有剩余空间,而不是固定宽度
我试过使用:
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不,我没有,我会试试看,然后再报告。@NonSecwitter,是的,你是对的!如果你想把它作为一个答案,我很乐意接受。谢谢平心而论,我不知道它到底为什么会起作用,尽管我认为它与
界限有关。。。我只知道它在过去的类似问题上对我很有效JToolBar
有自己的布局管理器,你需要注意这一点。。。