黑马程序员_GUI

来源:互联网 发布:奇葩网络 编辑:程序博客网 时间:2024/06/09 20:38

  ------- android培训java培训、期待与您交流! ----------


一 GUI(图形用户界面)
1 GUI 图形用户界面,用图形的方式显示计算机的界面,方便直观

2 CLI 命令行,需要记住一些命令,比较麻烦

3 java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
(1)Awt:需调用系统底层资源,有点依赖平台,属重量级控件。
(2)Swing:基于Awt,提供了更多的组件,完全由java实现。属轻量级控件
Container 是一个特殊的组件,他可以添加其他组件

4 布局,组件的排放方式。几种常见的布局管理器:
(1)FlowLayout,流式布局,按照从左到右排放,默认是居中的。Pannel的默认布局
(2)BoarderLayout,边界式布局,东南西北中排放,默认是居中的。Frame的默认布局
(3)CardLayout,卡片式布局,选项卡
(4)GridLayout,网格式布局。规则的矩阵
(5)GridBagLayout,网格包式布局,非规则的矩阵

5 事件监听机制
(1)事件源:就是awt包和swing包中的组件
(2)事件:每个事件源都有自己对应的事件和共性事件
(3)监听器:将可以触发某一个事件的某些动作封装到监听器中
(4)事件处理:针对产生的动作进行处理。


二   组件
1 Frame 窗体
(1)构造方法:
Frame f=new Frame("窗体");//创建窗体并命名
(2)方法摘要:
setSize(int len,int wide);//设置窗体长和宽大小
setLocation(int len,int wide);//设置窗体位置
setLayout(FlowLayout f);//设置窗体布局
add(PopupMenu popup);//在窗体里添加组件
setVisible(boolean b);设置窗体显示状态

2 Button 按钮
(1)构造方法:
Button b=new Button("按钮");//创建按钮并命名
(2)例子:创建窗体并添加按钮组件。添加窗体关闭事件和按钮关闭事件。
代码:

import java.awt.*;import java.awt.event.*;class  AwtDemo{public static void main(String[] args) {//创建一个窗体,并给窗体定个标题Frame f=new Frame("我的窗体");//设置窗体大小以及距离屏幕位置f.setSize(700,600);f.setLocation(300,100);//设置窗体的布局为流式布局,默认是边界式布局f.setLayout(new FlowLayout());//创建一个按钮,并起个名字Button b=new Button("退出");//将按钮添加到窗体中f.add(b);//添加窗口监听器f.addWindowListener(new WindowAdapter(){//窗口关闭事件public void windowClosing(WindowEvent e){//处理方法System.exit(0);//退出程序}});//添加按钮监听器b.addActionListener(new ActionListener(){//按钮活动事件public void actionPerformed(ActionEvent e){//处理方法System.exit(0);//退出程序}});//显示窗体f.setVisible(true);}}

3 TextArea 文本区域

4 TextField 文本框

5 Dialog 对话框

6 Label 标签

举例:模拟一个列出指定目录下的文件名称

代码:

import java.awt.*;import java.awt.event.*;import java.io.*;class AwtTest {private Frame f;//窗体/定义private TextField tf;//定义文本框private Button b;//定义按钮private TextArea ta;//定义文本区域private File fil;//定义文件private Dialog d;//定义对话框private Label lab;//定义标签private Button ok;//定义按钮AwtTest(){init();//初始化}public void init(){//创建窗体并设置大小和布局f=new Frame("我的窗口");f.setBounds(300,100,600,500);f.setLayout(new FlowLayout());//创建文本区域、文本对话框tf=new TextField(70);b=new Button("转到");ta=new TextArea(30,80);//创建对话框并设置布局和大小d=new Dialog(f,"提示信息",true);d.setBounds(400,200,300,200);d.setLayout(new FlowLayout());//创建标签和确定按钮lab=new Label();ok=new Button("确定");//在对话框中添加标签和确定按钮d.add(lab);d.add(ok);//在窗体添加文本框、按钮、文本区域f.add(tf);f.add(b);f.add(ta);//添加时间event();//设置窗口显示f.setVisible(true);}public void event(){//在确定按钮添加键盘监听器ok.addKeyListener(new KeyAdapter(){//键盘按下事件public void keyPressed(KeyEvent e){//如果按下ENTRY键对话框就关闭if(e.getKeyCode()==KeyEvent.VK_ENTER)d.setVisible(false);}});//在文本框添加键盘监听器tf.addKeyListener(new KeyAdapter(){//键盘按下事件public void keyPressed(KeyEvent e){//如果按下ENTRY键调用show方法if(e.getKeyCode()==KeyEvent.VK_ENTER)show();}});//在确定按钮添加键盘监听器ok.addActionListener(new ActionListener(){//键盘按下事件public void actionPerformed(ActionEvent e){//对话框关闭d.setVisible(false);}});//在对话框添加窗口监听器d.addWindowListener(new WindowAdapter(){//窗口关闭事件public void windowClosing(WindowEvent e){//窗口关闭d.setVisible(false);}});//在转到按钮添加活动监听器b.addActionListener(new ActionListener(){//按钮活动事件public void actionPerformed(ActionEvent e){//调用show方法show();//System.out.println(file);}});//在窗体添加监听器f.addWindowListener(new WindowAdapter(){//窗体关闭事件public void windowClosing(WindowEvent e){//程序退出System.exit(0);}});}public void show(){//先清空文本区域内容ta.setText("");//获取文本框内容并封装成文件对象String file=tf.getText();fil=new File(file);//判断文件是否是目录并且文件存在,条件满足if(fil.exists() && fil.isDirectory()){//变量目录下的文件并添加到文本区域中String[] files=fil.list();for(String name: files){ta.append(name+"\r\n");}}//条件不满足else{//让对话框显示并给出提示String info="您输入:"+file+"不正确,请重输";lab.setText(info);d.setVisible(true);}}    public static void main(String[] args) {new AwtTest();}}

7 MenuBar 菜单栏

8 Menu 菜单

9 MenuItem 菜单条

例子:模拟一个记事本软件
代码:

import java.awt.*;import java.awt.event.*;import java.io.*;class  MyJishibenDemo{private Frame f;//定义窗体private MenuBar bar;//定义菜单栏private Menu menu;//定义菜单private MenuItem open,save,exit;//定义打开保存退出三个菜单条private TextArea ta;//定义文本区域private FileDialog opendia,savedia;//定义文件对话框private File f1;//定义文件MyJishibenDemo(){init();//初始化}public void init(){//初始化窗体f=new Frame("我的记事本");f.setBounds(300,200,500,400);//初始化菜单栏,菜单,菜单条目bar=new MenuBar();menu=new Menu("文件");open=new MenuItem("打开");save=new MenuItem("保存");exit=new MenuItem("退出");//初始化文本区域ta=new TextArea();//初始化文件对话框opendia=new FileDialog(f,"我要打开",FileDialog.LOAD);savedia=new FileDialog(f,"我要保存",FileDialog.SAVE);//在窗体添加菜单栏,在菜单栏添加文件菜单//在文件菜单下添加打开,保存,退出三个条目f.setMenuBar(bar);bar.add(menu);menu.add(open);menu.add(save);menu.add(exit);//窗体添加文本区域f.add(ta);//添加事件event();//显示窗体f.setVisible(true);}public void event(){//保存菜单条添加活动监听器save.addActionListener(new ActionListener(){//活动事件public void actionPerformed(ActionEvent e){//如果文件不存在if(f1==null){//弹出保存文件对话框获取目录和名字封装成文件对象savedia.setVisible(true);String path=savedia.getDirectory();String name=savedia.getFile();f1=new File(path,name);if(path==null||name==null)return ;}//如果文件存在,不弹出文件对话框try{//定义写入流,将文本区域的数据写到文件中去BufferedWriter bufw=new BufferedWriter(new FileWriter(f1));String text=ta.getText();bufw.write(text);bufw.close();}catch (Exception en){throw new RuntimeException("失败");}}});//打开菜单条添加活动监听器open.addActionListener(new ActionListener(){//活动事件public void actionPerformed(ActionEvent e){//显示打开文件对话框,获取文件目录和名字并封装成文件对象opendia.setVisible(true);String path=opendia.getDirectory();String file=opendia.getFile();//System.out.println(path+"::"+file);if(path==null||file==null)return ;ta.setText("");f1=new File(path,file);try{//定义读取流,读取指定文件数据写到文本区域上BufferedReader bufr=new BufferedReader(new FileReader(f1));String line=null;while((line=bufr.readLine())!=null){ta.append(line+"\r\n");}bufr.close();}catch (Exception ex){throw new RuntimeException("失败");}}});//退出菜单条添加活动监听器exit.addActionListener(new ActionListener(){//活动事件public void actionPerformed(ActionEvent e){System.exit(0);//退出程序}});//窗体添加监听器f.addWindowListener(new WindowAdapter(){//窗体关闭事件public void windowClosing(WindowEvent e){System.exit(0);//退出程序}});}public static void main(String[] args) {new MyJishibenDemo();}}

0 0
原创粉丝点击