我要定制一个JProgressBar,就是想改变JProgressBar上面那个进度条的高度,是要重载哪个方法吗?,该怎么实现,请大家帮忙,谢谢!

解决方案 »

  1.   

    import java.awt.BorderLayout;
    import java.awt.Dimension;import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JProgressBar;public class T {
    public static void main(String[] args) {
    JProgressBar progress = new JProgressBar();
    progress.setValue(50);
    Dimension d = progress.getPreferredSize();
    d.height = 25;
    progress.setPreferredSize(d);

    JPanel panel = new JPanel();
    panel.add(progress);
    JFrame f = new JFrame();
    f.getContentPane().add(panel, BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }
      

  2.   

    不行,上面这段代码只能改JProgressBar整体的高度,而我要改的是--只改里面进度条(颜色条)的高度,不知道该怎么做,请大家帮帮忙,谢谢!
      

  3.   

    先设置最大,最小值progress.setMaxvalue(50);progress.setMINvalue(0),再progress.setValue(i);设置高度了(方法名不太记得)
      

  4.   

    还是不行的,进度条(颜色条)的高度还是和整个bar的高度是一样的,怎么才能只改JProgressBar里进度条(颜色条)的高度呢?请大家帮忙了
      

  5.   

    才明白你的意思,JProgressBar的高度就象 gtlang78这样的吧,它填充了整个JProgressBar,单独改里面的不行的
      

  6.   

    你是要这样的么?import java.awt.BorderLayout;
    import java.awt.SystemColor;import javax.swing.*;
    import javax.swing.plaf.ComponentUI;
    import javax.swing.plaf.ProgressBarUI;
    import javax.swing.plaf.basic.BasicProgressBarUI;public class T {
    public static void main(String[] args) {
    JProgressBar progress = new JProgressBar() {
    public ProgressBarUI getUI() {
    return (ProgressBarUI) MyProgressBarUI.createUI(this);
    }
    };
    progress.setUI(new MyProgressBarUI());
    progress.setValue(50); JPanel panel = new JPanel();
    panel.add(progress);
    JFrame f = new JFrame();
    f.getContentPane().add(panel, BorderLayout.CENTER);
    f.pack();
    f.setLocationRelativeTo(null);
    f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    f.setVisible(true);
    }
    }class MyProgressBarUI extends BasicProgressBarUI {
    public static ComponentUI createUI(JComponent x) {
    return new MyProgressBarUI();
    } protected void installDefaults() {
    super.installDefaults(); progressBar.setBorder(
    BorderFactory.createCompoundBorder(
    BorderFactory.createCompoundBorder(
    BorderFactory.createMatteBorder(0, 0, 1,1, SystemColor.controlLtHighlight), 
    BorderFactory.createMatteBorder(1, 1, 0, 0, SystemColor.controlShadow)), 
    BorderFactory.createEmptyBorder(10, 1, 10, 1)));
    }
    }