這次教你怎麼使用數組,和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對象有很多其他的畫圖方法,基本的點線面都有,能滿足基本的作圖需求。
好,這次跟大家分享了我的學習經歷,數組,列表,和窗體,下篇文章將會講解所需要的數學知識:透視投影矩陣,線性代數,