帮我翻译以下Java代码import javax.swing.*; import java.awt.*; public class DrawCircle extends JPanel implements Runnable{ int angle=0; Thread t; public DrawCircle(){ this.setPreferredSize(new Dimension(500,500)); this.setBackground(Color.blue); t=new Thread(this); t.start(); } public void paintComponent(Graphics g){ super.paintComponent(g); g.fillArc(50, 50, 300, 300, 0, angle); } public static void main(String args[]){ JFrame f=new JFrame("画扇形"); f.getContentPane().add(new DrawCircle()); f.pack(); f.setVisible(true); f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); } @Override public void run() { // TODO Auto-generated method stub try{ for(int i=0;i<10;i++){ Thread.sleep(100); angle=angle+30; repaint();//重画 重新调用paintComponent } }catch(Exception ex){ } } }
时间: 2024-01-18 14:03:02 浏览: 106
这是一个绘制圆形扇形的Java代码,包含了JPanel和Thread的使用。代码如下:
```
import javax.swing.*;
import java.awt.*;
public class DrawCircle extends JPanel implements Runnable {
int angle = 0;
Thread t;
public DrawCircle() {
this.setPreferredSize(new Dimension(500,500));
this.setBackground(Color.blue);
t = new Thread(this);
t.start();
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
g.fillArc(50, 50, 300, 300, 0, angle);
}
public static void main(String args[]) {
JFrame f = new JFrame("画扇形");
f.getContentPane().add(new DrawCircle());
f.pack();
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
@Override
public void run() {
try {
for(int i = 0; i < 10; i++) {
Thread.sleep(100);
angle = angle + 30;
repaint(); //重画 重新调用paintComponent
}
} catch(Exception ex) {
}
}
}
```
该程序创建了一个JFrame窗口,在其中绘制了一个圆形扇形。程序中使用了JPanel类作为绘图容器,并使用了Thread类来实现动态绘制。在程序运行时,线程会每隔100ms更新角度,然后调用JPanel的repaint方法,重新绘制扇形。程序中的run方法是线程执行的主体,其中使用了try-catch结构来捕捉异常。
阅读全文