进度条由以下代码
创建 bar = new JProgressBar(JProgressBar.VERTICAL);
bar.setEnabled(true);
bar.setBackground(Color.YELLOW);
bar.setForeground(Color.GREEN);
bar.setStringPainted(true);
getReflectedComponent().setLayout(new BorderLayout());
getReflectedComponent().add(bar, BorderLayout.CENTER);
请注意,getReflectedComponent()返回一个JComponent。在另一种方法中,显示的字符串最大值和当前值被操纵,而不是更多。
我真的不知道为什么这个非常奇怪的灰色条纹显示在顶部。如果我水平显示进度条,它们就不存在......
答案 0 :(得分:3)
我没有注意到您的代码存在问题,因此它必须来自您未向我们展示的其他内容(还有一个提供SSCCE的论据)
这是一个让自己开始的例子:
import java.awt.BorderLayout;
import java.awt.Color;
import javax.swing.JFrame;
import javax.swing.JProgressBar;
import javax.swing.SwingUtilities;
public class TestScrollbars {
protected void initUI() {
final JFrame frame = new JFrame();
frame.setTitle(TestScrollbars.class.getSimpleName());
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JProgressBar bar = new JProgressBar(JProgressBar.VERTICAL);
bar.setEnabled(true);
bar.setBackground(Color.YELLOW);
bar.setForeground(Color.GREEN);
bar.setStringPainted(true);
bar.setString("2000 g");
bar.setValue(65);
frame.setLayout(new BorderLayout());
frame.add(bar, BorderLayout.CENTER);
frame.setSize(500, 400);
frame.setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
new TestScrollbars().initUI();
}
});
}
}
生成的图像(进度条正确显示所选颜色):
答案 1 :(得分:2)