我想做一个看起来像这样的自定义倒数计时器。当倒计时开始时,我喜欢绿色条在达到一定百分比时耗尽并改变颜色。(例如 50% = 橙色和 25% = 红色)
我得到了倒计时代码,但我不知道如何更新绿条。
private boolean pressed = false;
private long startTime = -1;
private int dur = 10000;
Timer tmr = new Timer(100, new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
if (startTime < 0) {
startTime = System.currentTimeMillis();
}
long now = System.currentTimeMillis();
long clockTime = now - startTime;
if (clockTime >= dur) {
clockTime = dur;
tmr.stop();
}
SimpleDateFormat df = new SimpleDateFormat("mm:ss:SSS");
lblTimer.setText(df.format(dur - clockTime));
}
});
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
tmr.start();
}
我搜索并搜索,但找不到与我的问题相关的任何内容。我能找到的只是那些JProgressBar
我不想使用的。
更新:
这是填充我的绿色条的代码。
int xp[] = {115, 115, 288, 294, 449, 457};
int yp[] = {30, 50, 50, 40, 40, 30};
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
GeneralPath cShape = new GeneralPath(GeneralPath.WIND_EVEN_ODD,x2Points.length);
cShape.moveTo(xp[0], yp[0]);
for (int i = 1; i < x2Points.length; i++) {
cShape.lineTo(xp[i], yp[i]);
}
cShape.closePath();
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(new Color(0,255,0));
g2.fill(cShape);
}