【发布时间】:2014-08-19 14:13:43
【问题描述】:
默认情况下,“绘制的字符串”出现在 JProgressBar 的中心,但我希望“绘制的字符串”应该出现在 JProgressbar 值之后的点,例如,如果 JprogressBar 的值为 0,“绘制的字符串”应该出现在 JProgressBar 的最左侧,请告诉我该怎么做???
【问题讨论】:
标签: java
默认情况下,“绘制的字符串”出现在 JProgressBar 的中心,但我希望“绘制的字符串”应该出现在 JProgressbar 值之后的点,例如,如果 JprogressBar 的值为 0,“绘制的字符串”应该出现在 JProgressBar 的最左侧,请告诉我该怎么做???
【问题讨论】:
标签: java
你需要继承 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;
}
}
也许你在字体颜色上玩了一下,我还没找到合适的...
【讨论】: