这次教你怎么使用数组,和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对象有很多其他的画图方法,基本的点线面都有,能满足基本的作图需求。
好,这次跟大家分享了我的学习经历,数组,列表,和窗体,下篇文章将会讲解所需要的数学知识:透视投影矩阵,线性代数,