您的位置:首页 > 产品设计 > UI/UE

黑马程序员__java基础__GUI

2015-06-17 13:24 274 查看
------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
GUI
一.GUI的概述
(1)即图形用户界面,用于计算机与用户交互的一种方式。
(2)计算机与用户交互的两种方式:
           1.GUI:图形用户接口,用图形方式,来显示计算机操作界面,方便直观。
           2. CLI:命令行用户接口,即常见的Dos命令行操作,须记住一些命令,操作不直观。
(3)java将GUI封装为对象,其中的对象都放在了两个包中:java.Awt包和javax.Swing包。
 
         1.  java.Awt包:抽象窗口工具包,调用本地系统方法实现功能,属重量级控件。
 
         2.javax.Swing包:在AWT的基础上建立的一套图形界面系统,其中提供了更多的组件,且完全由java实现。
二.布局
(1)常见的布局:
 
         1.FlowLayout:流式布局管理器。从左向右排列,是Panel默认的布局管理器。
 
         2.BorderLayout:边界式布局管理器,东南西北中的排列方式,是Frame的默认布局管理器。
 
         3.GridLayout<
4000
span style="line-height:17.5px;">:网格式布局管理器,规则的矩阵。
 
         4.CardLayout:卡片式布局管理器,即选项卡。
 
         5.GridBayLayout:网格包布局管理器,非规则矩阵。
(2)创建窗体界面的步骤:
 
         1.将窗体Frame进行大区域的划分,设置其布局管理器,加入面板Panel。
 
         2.将组件加入Panel,设置面板的布局管理器。
三.Frame窗体
(1)创建图形化界面:
 
         1.创建Frame窗体。
 
         2.对窗体进行基本设置:如大小,位置,布局等。
 
         3.定义组件。
 
         4.将组件通过窗体的add方法添加到窗体中。
 
         5.让窗体显示,通过setVisible(turn)的方法。
(2)示例:
/**
* 创建图形化界面
*/
import java.awt.*;
public class AwtDemo
{
public static void main(String[] args)
{
Frame f=new Frame("窗体");//创建Frame窗体,括号可设置文字
f.setSize(600, 400);//设置大小
f.setLocation(300, 300);//设置窗体的位置
f.setLayout(new FlowLayout());//设置布局

Button b=new Button("按钮");//定义按钮组件
f.add(b);//将按钮组件添加到Frame窗体中
f.setVisible(true);//设置窗体显示
}
}
四.事件监听机制
(1)事件监听机制的特点:
           1.事件源:awt或swing包中的那些图形界面组件。
           2.事件:每一个事件源都有自己特有的对应事件和共性事件。
           3.监听器:将可触发某一事件的动作(不只一个动作),都封装到侦听器中。
     
     4.事件处理:引发事件后的处理方式。
(2)窗体、按钮添加监听器的例子

/**
* 创建图形化界面,实现窗体,按钮都可以退出功能
*/
import java.awt.*;
import java.awt.event.*;
class FrameDemo
{
public static void init()
{
//创建窗体、按钮
Frame f=new Frame("窗体");
f.setBounds(300, 300, 600, 400);
f.setLayout(new FlowLayout());
Button b=new Button("退出按钮");
f.add(b);
f.setVisible(true);
//添加窗体监听器,让窗体具备退出功能
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
} );
//添加按钮监听器,让按钮具备退出功能
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
init();
}
}
(3)在窗体中列出指定目录内容、错误时弹出对话框的列子
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class MyWindowDemo
{
private Frame f;
private Button b,okb;
private TextField tf;
private TextArea ta;
private Dialog  d;
private Label l;
MyWindowDemo()
{
init();
}
public void init()
{
//设置窗体
f=new Frame("窗体");
f.setBounds(300, 300, 600, 400);
f.setLayout(new FlowLayout());
//窗体里的按钮
b=new Button("转到");
//窗体里的文本框
tf=new TextField(50);
//窗体里的文本区域
ta=new TextArea(20,60);
f.add(tf);
f.add(b);
f.add(ta);

//设置对话框
d=new Dialog(f,"提示信息",true);
//对话框里的文本框
l=new Label();
//对话框里的按钮
okb=new Button("确定");
d.setBounds(250, 350, 200, 200);
d.setLayout(new FlowLayout());
d.add(l);
d.add(okb);

MyEvent();
f.setVisible(true);
}
public void MyEvent()
{
//窗体按钮的监听事件
b.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
String dirPath=tf.getText();//窗体文本框输入信息
File dir=new File(dirPath);
if(dir.isDirectory() && dir.exists())//目录存在且为目录形式
{
ta.setText("");
String[] names=dir.list();
for(String name:names)//遍历目录列表
{
ta.append(name+"\r\n");//窗体文本区域显示目录列表信息
}
}
else
{
String info="你输入的信息:"+dirPath+"是错误的";
l.setText(info);//对话框文本框中显示错误提示
d.setVisible(true);
}
}
});
//对话框中按钮的鼠标监听器
okb.addMouseListener(new MouseAdapter()
{
public void mouseClicked(MouseEvent e)
{
d.setVisible(false);//对话框消失
}
});
//对话框关闭监听器
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
//窗体关闭监听器
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MyWindowDemo();
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: