圆形点计数器 Java 或圆形进度条
Circular Point Counter Java or Circle Progress Bar
对于我的项目,我试图创建一个圆形进度条来显示用户有多少分。我目前有以下代码来创建圆圈。
public void Paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
g2.translate(80, 80);
g2.rotate(Math.toRadians(270));
Arc2D arc = new Arc2D.Float(Arc2D.PIE);
arc.setFrameFromCenter(new Point(0, 0), new Point(80, 80));
arc.setAngleStart(1);
arc.setAngleExtent(-totalPoints*3.6);
g2.setColor(Color.red);
g2.draw(arc);
g2.fill(arc);
}
我也在尝试从另一个文件创建它。我应该创建一个 JPanel 还是可以将它添加到标签中?另外,如果我使用面板,如何使用代码添加它?
我正在使用 gridbag 来设置位置,我没有使用拖放功能来创建 Netbeans 拥有的 JFrame 和 JPanel。
我假设您正在创建一个自定义组件,如下所示:
public class CircleProgress extends JComponent {
在这种情况下,要在另一个 Swing class 中使用它,您可以将其视为任何其他 Component
,例如:
CircleProgress progress = new CircleProgress();
...
Panel p = new Panel();
p.setLayout(new BorderLayout());
p.add(progress, BorderLayout.CENTER);
将其添加到 Label
中而不是 Panel
中会很奇怪。
对于我的项目,我试图创建一个圆形进度条来显示用户有多少分。我目前有以下代码来创建圆圈。
public void Paint(Graphics g) {
super.paint(g);
Graphics2D g2 = (Graphics2D)g;
g2.translate(80, 80);
g2.rotate(Math.toRadians(270));
Arc2D arc = new Arc2D.Float(Arc2D.PIE);
arc.setFrameFromCenter(new Point(0, 0), new Point(80, 80));
arc.setAngleStart(1);
arc.setAngleExtent(-totalPoints*3.6);
g2.setColor(Color.red);
g2.draw(arc);
g2.fill(arc);
}
我也在尝试从另一个文件创建它。我应该创建一个 JPanel 还是可以将它添加到标签中?另外,如果我使用面板,如何使用代码添加它?
我正在使用 gridbag 来设置位置,我没有使用拖放功能来创建 Netbeans 拥有的 JFrame 和 JPanel。
我假设您正在创建一个自定义组件,如下所示:
public class CircleProgress extends JComponent {
在这种情况下,要在另一个 Swing class 中使用它,您可以将其视为任何其他 Component
,例如:
CircleProgress progress = new CircleProgress();
...
Panel p = new Panel();
p.setLayout(new BorderLayout());
p.add(progress, BorderLayout.CENTER);
将其添加到 Label
中而不是 Panel
中会很奇怪。