24h購物| | PChome| 登入
2013-05-04 15:37:57| 人氣2,410| 回應0 | 上一篇 | 下一篇

[JAVA][作業] 視窗繪圖

推薦 0 收藏 0 轉貼0 訂閱站台









印出如上圖的圓,附加讓它自動旋轉





package ce1002.E5.s100502205;

import javax.swing.JFrame;
import javax.swing.JPanel;

import java.awt.Color;
import java.awt.Graphics;
import java.util.Timer;
import java.util.TimerTask;

public class E5 extends JFrame {
    public E5() {
        this.setTitle("E5");
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        this.setSize(450, 450);
        this.add(new ArcsPanel());
        this.setVisible(true);
    }

    public static void main(String[] args) {
        new E5();
    }
}

class ArcsPanel extends JPanel {
    Color[] color = { Color.BLUE, Color.CYAN, Color.GRAY, Color.GREEN,
            Color.MAGENTA, Color.RED, Color.YELLOW, Color.PINK };
    int theta = 0;
    public ArcsPanel() {
        Timer timer = new Timer();
        timer.schedule(new RunningArcs(), 1000, 50);
    }
    class RunningArcs extends TimerTask {
        public void run() {
            theta = (theta + 1) % 360;
            repaint();
        }
    }

    protected void paintComponent(Graphics g) {
        super.paintComponent(g);

        int xCenter = getWidth() / 2;
        int yCenter = getHeight() / 2;
        int radius = (int) (Math.min(getWidth(), getHeight()) * 0.4);

        int x = xCenter - radius;
        int y = yCenter - radius;

        for (Color vv : color) {
            g.setColor(vv);
            g.fillArc(x, y, 2 * radius, 2 * radius, theta, 45);
            theta += 45;
        }
    }
}

台長: Morris
人氣(2,410) | 回應(0)| 推薦 (0)| 收藏 (0)| 轉寄
全站分類: 不分類 | 個人分類: [學習]Java |
此分類下一篇:[JAVA][作業] 做一個移動的按鈕
此分類上一篇:[JAVA][作業] 逃離迷宮

是 (若未登入"個人新聞台帳號"則看不到回覆唷!)
* 請輸入識別碼:
請輸入圖片中算式的結果(可能為0) 
(有*為必填)
TOP
詳全文