Java 如何设置“的位置”;线描;在JProgressBar中

Java 如何设置“的位置”;线描;在JProgressBar中,java,Java,默认情况下,“绘制的字符串”显示在JProgressBar的中心,但我希望“绘制的字符串”应显示在JProgressBar值之后的点,例如,如果JProgressBar的值为0,“绘制的字符串”应显示在JProgressBar的最左侧,请告诉我如何做到这一点???您需要子类化JProgressBar private class CustomProgressBar extends JProgressBar{ private static final long serialVersionU

默认情况下,“绘制的字符串”显示在JProgressBar的中心,但我希望“绘制的字符串”应显示在JProgressBar值之后的点,例如,如果JProgressBar的值为0,“绘制的字符串”应显示在JProgressBar的最左侧,请告诉我如何做到这一点???

您需要子类化JProgressBar

private class CustomProgressBar extends JProgressBar{

    private static final long serialVersionUID = 1L;
    private boolean isStringToBePainted = false;

    @Override
    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        if(isStringToBePainted ){
            Dimension size = CustomProgressBar.this.getSize();
            int x = (int)( size.width * CustomProgressBar.this.getPercentComplete() );
            int height = g.getFontMetrics().getHeight();
            int d = g.getFontMetrics().getDescent();
            int y = (size.height + height)/2-d;
            String text = getString();
            g.setColor(Color.BLACK );
            g.drawString(text, x, 12);
        }
    }

    @Override
    public void setStringPainted(boolean b) {
        // don't do super.setStringPainted(b);
        //super.setStringPainted(b);
        isStringToBePainted=b;
    }
}
也许你玩了一点字体颜色,我还不知道在哪里可以买到合适的


我不为您编写代码。。。我给了你一个很好的提示如何解决你的问题。。。你自己试试看,如果你失败了,告诉我你已经取得了什么成就,你的问题是什么…在上面的代码上看到你的问题也许可以用一个垂直进度条但是你必须切换垂直和水平坐标。。。