图形界面设计
觉得java 里面 最复杂的就是GUI 编程了 好像在学绘画似的 ,想想大一那会悲催的工图 ,哭了~ 要是这个绘图过程可以独立出来就好 ,程序员只要解决其中个组件的逻辑关系 ,那么就会方便多了
第一、: 设置一个框架 ,任何一个 窗口 都需要一个 Frame 才可以进行操作的
Frame 有很多属性 :1、 setSize();
2、setVisible();
3、setBackground();
4、setTitle() 。。。
下面给出创建出Frame最基本的代码:
import java.awt.*;
public class framel {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Frame fml = new Frame("Hello"); //新建一个叫hello的窗口
fml.setSize(400, 300);// 对对象进行设置
fml.setBackground(Color.blue);//设置背景颜色
fml.setVisible(true); ///设置是否可见
}
}
第二、 设置一个panel panel 是用来设置 也就是说用来在框架里面画东西的 ,然后最终需要把 panel 加到 frame 当中的
Panel 也有很多属性:
setSize() 设置尺寸
setBackground() 设置 背景颜色
setLocation(); 设置位置
。。。
请看下面代码:
import java.awt.*;
public class Panel1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//先创建一个Frame 框架
Frame fml = new Frame("Hello");
//下面对 frame 对象进行设置
fml.setSize(400,380);
fml.setBackground(Color.gray);
fml.setLayout(null);//这步也喊中药,设置默认布局为空 即取消默认布局
//下面声明panel 对象
Panel pn1 = new Panel();
Panel pn2 = new Panel();
Panel pn3 = new Panel();
//下面开始对panel 对象进行操作
pn1.setSize(100,100);
pn1.setBackground(Color.red);
pn1.setLocation(0, 80);
pn2.setSize(100, 100);
pn2.setBackground(Color.yellow);
pn2.setLocation(100, 180);
pn3.setSize(100, 100);
pn3.setBackground(Color.red);
pn3.setLocation(200, 280);
//然后把这些组件加进去
fml.add(pn1);
fml.add(pn2);
fml.add(pn3);
fml.setVisible(true);
}
}
下面 开始对字体 Font 进行操作:
设置对字体进行操作:Font类的构造方法:
Font(String name ,int Stytle ,int Size);
name 代表字体的名字 例如Courier 宋体 楷体 等
style 代表的是 字体的风格 Font BOLD 黑体
、 Font ITALIC 斜体
Font PLAIN 正常字体 他们之间可以进行相互组合
举个栗子 : Font f = new Font("TimesRoman", Font.PLAIN,14);
在组件中显示所用的字体可以用 setFont() 方法来设置
使用Graphics 的参数g
g.setFont(f);
Button btn = new Button();
btn.setFont(f);
下面给出一个显示系统字体的程序:
import java.awt.*;
public class listFont {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//新建一个字符串数组来显示名字并且完成赋值
String[] fontName = GraphicsEnvironment.getLocalGraphicsEnvironment().getAvailableFontFamilyNames();
for(int i = 0 ; i <fontName.length;i++)
{
System.out.println(fontName[i]);
}
}
}
下面开始设定输出字体:
下面是一个 Applet 程序
import java.applet.*;
import java.awt.*;
public class FontApplet extends Applet {
public void paint(Graphics g)
{
g.setColor(Color.green);//设置背景颜色
g.setFont(new Font("Courier", (Font.BOLD + Font.ITALIC), 24));
g.drawString(" Helllo World", 30, 60);
}
}