我想创建一个圆形进度条,以中间的百分比描绘当前状态。像这样:
现在我已经按照创建flat progress bar的说明,但由于我不熟悉swing并且我没有任何关于Javas图形的线索,我不知道如何从'flat'转移到'圆'进度条。
进度条的代码怎么样?
ps:我看到Hannahs在模拟时钟上发帖并试着这样 - 但由于我缺乏绘画(也许是数学)技能而失败了。pps:我根本不使用GUIBuilder (裸骨)
ppps:我希望它被绘制(如果可能),而不是基于图像的
答案 0 :(得分:2)
我没有测试过,但是这样的事情应该有效:
Container progress = new Container(new LayeredLayout());
Label percent = new Label("0%");
percent.getUnselectedStyle().setAlignment(Component.CENTER);
progress.add(new Label(progressOverlayImage, "Container")).
add(FlowLayout.encloseCenterMiddle(percent));
progress.getUnselectedStyle().setBgPainter((Graphics g, Rectangle rect) -> {
g.setColor(0xff0000);
g.fillArc(progress.getX(), progress.getY(), progressOverlayImage.getWidth(), progressOverlayImage.getHeight(), 0, currentProgress360);
});
您需要以下内容才能使其正常运行。
currentProgress360
的变量,它将代表0到360之间的当前进展状态