工科生的Java Hello World 透視投影動畫 -----和我一起熟悉Java的數組,列表,類型,和JFrame GUI初步

這次教你怎麼使用數組,和java的gui庫 JFrame

1.數組

在瞭解了java的基本風格後,我們還需要數組的知識

和C語言類似,我所知道的java的數組定義是這樣 

double[]  array=new double[4]     然後遍歷數組賦值

或者

double[] array={1,2,3} 這樣定義賦值


我們瞭解這兩種方式就行了

二維數組的定義,其實java的二維數組理解起來就是,一維數組中的元素還是一維數組,

double[][] a=new double[3][4]       //一個三行四列的二維數組

由於我們會用到二維數組,所以讓大家瞭解一下。

下面一個demo讓你理解:

package MyHelloWorld;

public class MyHelloWorld {
	public static void main(String[] args)
	{
		double[][] array=new double[3][4];
		for(int i=0;i<array.length;i++)
		{
			for(int j=0;j<array[0].length;j++)
			{
				array[i][j]=i+j;
				System.out.print(array[i][j]+"  ");
			}
			System.out .print("\n");
		}
		
	}
}

run 你的程序後會輸出數組的值



2.列表

最簡單的泛型列表是這樣:

import java.util*

List<int>  myList=new ArrayList<int>();

尖括號裏面的類型,代表的是列表中只能存放該類型的變量,這裏列表中只能存放int類型的對象

myList.add(1)        //往列表加入對象

myList.remove(1) //移除指定對象

myList,clear()       //清空列表


3.窗體

好,到此我們介紹完了數組和列表,很簡略,若有任何疑問請查資料-_-,我只介紹今後我們會用到的。

 往下應該是Jframe,一個窗體類庫,用它我們來編寫java的窗體UI.

在原來的包裏新建一個類,ColoredRectangle,類代碼如下:

package MyHelloWorld;

import javax.swing.JFrame;
public class ColoredRectangle extends JFrame{ //這裏extends關鍵字是繼承,表明這個類繼承自JFrame

	public ColoredRectangle() 
	{
		this.setSize(400,400);
		this.setVisible(true);
	}
	
}


然後在main 函數中這樣寫:

package MyHelloWorld;

public class MyHelloWorld {
	public static void main(String[] args)
	{
		ColoredRectangle cr=new ColoredRectangle();
		
	}
}

run程序後就會出現一個400*400大小的窗體

如何在 窗體上做點什麼呢,這裏先不說放上按鈕然後可以響應消息,我們先在指定位置畫上矩形和直線就夠了。

在窗體上作畫,窗體上面是有一層控件叫做 Jpanel,如果不把它設置爲 不可見的話,就會看不見窗體上面的畫。

這個也是我犯了錯而很長時間沒有發現的地方。

package MyHelloWorld;


import java.awt.Color;
import java.awt.Graphics;


import javax.swing.JFrame;
import javax.swing.JPanel;
public class ColoredRectangle extends JFrame{


	public ColoredRectangle() 
	{
		this.setSize(400,400);
	
		
		JPanel panel=(JPanel)this.getContentPane();   //這兩句話的意思是,將panel設置爲不可見以免擋住真正的畫布窗體
		panel.setVisible(false);
		this.setVisible(true);
	}
	@Override
	public void paint(Graphics g) {
		// TODO Auto-generated method stub
		super.paint(g);
		g.setColor(Color.black);
		g.fillRect(100,100,200,200);
	}
}


不改變main函數

運行程序後窗體上面會出現預想位置的黑框:


同樣的,Graphics對象有很多其他的畫圖方法,基本的點線面都有,能滿足基本的作圖需求。

好,這次跟大家分享了我的學習經歷,數組,列表,和窗體,下篇文章將會講解所需要的數學知識:透視投影矩陣,線性代數,


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章