如何在代号一中做一个圆形的Progress Bar?
How to make a round Progress Bar in codename one?
我想创建一个圆形进度条,在中间以百分比表示当前状态。像这样:
现在我已经按照创建 flat progress bar 的说明进行操作,但是由于我不熟悉 swing 并且我对 Javas 图形一无所知,所以我不知道如何从 'flat' 到 'round' 进度条。
类似进度条的代码怎么可能长这样?
ps:我在模拟时钟上看到了 Hannahs post 并尝试这样做 - 但由于我缺乏绘画(也许是数学)技能而失败了。
pps: 我根本不使用 GUIBuilder(基本)
ppps:我希望它被绘制(如果可能的话),而不是基于图像
我还没有测试过,但像这样的东西应该可以工作:
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);
});
您需要以下内容才能使其正常工作。
- 更改进度值时需要更新百分比标签
- 您需要一个 "overlay image" 透明的
- 您将需要一个名为
currentProgress360
的变量,它代表 0 到 360 之间的当前进度状态
我想创建一个圆形进度条,在中间以百分比表示当前状态。像这样:
现在我已经按照创建 flat progress bar 的说明进行操作,但是由于我不熟悉 swing 并且我对 Javas 图形一无所知,所以我不知道如何从 'flat' 到 'round' 进度条。
类似进度条的代码怎么可能长这样?
ps:我在模拟时钟上看到了 Hannahs post 并尝试这样做 - 但由于我缺乏绘画(也许是数学)技能而失败了。
pps: 我根本不使用 GUIBuilder(基本)
ppps:我希望它被绘制(如果可能的话),而不是基于图像
我还没有测试过,但像这样的东西应该可以工作:
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);
});
您需要以下内容才能使其正常工作。
- 更改进度值时需要更新百分比标签
- 您需要一个 "overlay image" 透明的
- 您将需要一个名为
currentProgress360
的变量,它代表 0 到 360 之间的当前进度状态