Java实现满天星动案例
生活随笔
收集整理的這篇文章主要介紹了
Java实现满天星动案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Java實現滿天星動案例
包含的小知識點有窗體、面板、數組、循環、線程等 效果圖如下: 主要思想為在窗體上添加面板,然后再面板上作畫,畫出若干星星,最后通過move函數模擬星星移動。代碼如下: import javax.swing.*; import java.awt.*; import java.util.Random; // 滿天星動 public class StarrySky extends JFrame { // 窗體public StarrySky() throws HeadlessException {this.setTitle("滿天星動"); // 標題this.setVisible(true); // 顯示this.setSize(800,700); // 大小this.setResizable(false); // 禁止縮放this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // 點X退出this.setLocationRelativeTo(null); // 居中Background background = new Background(); // 背景面板this.add(background); // 添加背景面板background.move(); // 調用面板中的移動方法}public static void main(String[] args) {StarrySky starrySky = new StarrySky(); //啟動入口} }class Background extends JPanel{ // 背景面板類int x[] = new int[200]; // 橫坐標數組int y[] = new int[200]; // 縱坐標數組public Background() { // 構造函數this.setBackground(Color.black); // 設置背景顏色for (int i = 0; i < x.length; i++) { // 為坐標點坐標隨機賦值x[i] = (int) (Math.random() * (800-0) + 0); // 0-799y[i] = (int) (Math.random() * (700-0) + 0); // 0-699}}public void paint(Graphics graphics) { // 作畫方法,Graphics為畫筆super.paint(graphics); // 把父類中的paint方法拿過來for (int i = 0; i < x.length; i++) { // 繪畫graphics.setColor( Color.white ); // 設置顏色graphics.setFont( new Font( "", Font.PLAIN,10 ) ); // 字體graphics.drawString("?", x[i], y[i]); // 內容}}public void move() { // 移動方法new Thread() { // 匿名線程public void run() { // 在線程中相當于main函數,里面的代碼可以被執行while (true) { // 死循環for (int i = 0; i < x.length; i++) {x[i] = x[i] < 0 ? 800: x[i] - 1; // 橫坐標-1y[i] = y[i] > 700 ? 0 : y[i] + 1; // 縱坐標+1}try {Thread.sleep(10); // 線程睡眠}catch (InterruptedException e){//什么也不做}repaint(); // 重新作畫}}}.start(); // 啟動線程} }總結
以上是生活随笔為你收集整理的Java实现满天星动案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: React+ant中的Form表单的刷新
- 下一篇: 关于对接支付接口遇到的问题(微信和支付宝