java語言-下雪花的簡單小程式
阿新 • • 發佈:2019-02-15
剛接觸到java,覺得這些東西很好玩兒。這裡用框架和麵板畫一個動態的下雪的過程。
首先是frame檔案
package day02; import javax.swing.JFrame; public class MySnowFrame { public static void main(String[] args) { JFrame frame= new JFrame(); frame.setSize(1440, 900); frame.setLocation(0, 0); MySnowPanel panel = new MySnowPanel(); frame.add(panel); panel.startRun(); frame.setVisible(true); } }
接著是panel檔案
package day02; import java.awt.Color; import java.awt.Font; import java.awt.Graphics; import java.util.Random; import javax.swing.JPanel; public class MySnowPanel extends JPanel{ int[] xx=new int [1440]; int[] yy =new int[900]; public MySnowPanel(){ Random ran=new Random(); for(int i=0;i<300;i++){ xx[i]=ran.nextInt(1440); yy[i]=ran.nextInt(900); } } public void startRun(){ new Thread(){ public void run(){ while(true){ for(int i=0;i<200;i++){ yy[i]++; xx[i]++; if(yy[i]>900){ yy[i]=0; } if(xx[i]>1440){ xx[i]=0; } } try { //讓執行緒休眠十毫秒 Thread.sleep(5); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } repaint(); } } }.start(); } public void paint(Graphics g){ super.paint(g); this.setBackground(Color.black); g.setColor(Color.white); //建立一個字型物件 宋體30號加粗 Font font=new Font("宋體",Font.BOLD,30); //設定畫筆的字型 g.setFont(font); for(int i=0;i<200;i++){ g.drawString("*", xx[i], yy[i]); } } }