图形化界面编程

1 篇文章 0 订阅

java 专门为我们提供的一个专门处理图形化的一个公用组件

图形化界面编程简称为GUI   全称Graphical User Interface

java为GUI提供的对象都存在java Awt 和javax.Swing两个包中

Awt依赖系统强 它的实现其实都是调用系统的底层实现方式

为了彻底的跨平台java就对Awt进行了一次升级 叫做javax.Swing

javax.Swing出现完全基于java.Awt 并且复写了Awt的很多方法 完全建立自己的样式大小色彩。。。它和系统的依赖性比较低

所谓的图形化界面就是可以直接跟用户进行交互的   从而方便了用户操作

Awt的提供的常用组件有

                                                            Component  组件

                                            conrainer  容器                       Button  按钮     

Window 窗口 Pael 面板    Label   标签

   Frame 窗体      Dialog  对话框    Checkbox  复选框

FileDialog  文件对话框            TextComponent 文本组件

                    TextArea               TextField

            多行文本                单行文本


创建图形化界面

1 创建Frame窗体

2 对窗体进行基本设置  比如初始化大小  初始化位置  布局

常见的布局管理器有

FlowLayout 流式布局
|从左到右
Panel 默认的布局管理器
BorderLayout 边界布局管理器
  |东西南北中
Frame默认的布局管理器
GridLayout 网格布局管理器
  |规划的矩阵
CardLayout卡片布局管理器
|选项卡
GridBagLayout网格布局管理器
|非规则的矩阵

代码演示:

import java.awt.*;
import java.awt.event.*;
import java.io.*;
class chuang 
{
private Frame F;
private Button B;
chuang()
{
gg();
}
public void gg()
{
F=new Frame("窗体");
F.setBounds(300,200,400,300);
F.setLayout(new FlowLayout());   //这个就是设置布局
B=new Button("转到"); 
F.add(B);
F.setVisible(true);
}
public static void main(String[] args) 
{
new chuang();
}
}

3 定义组件

4 将组件通过窗体的add方法添加到窗体中

5 将窗体显示  通过setVisible(true) 

代码演示:

import java.awt.*;
import java.awt.event.*;
class  jjjj
{
private Frame x;//窗体
jjjj()
{
ss();
}
public void ss()
{
x=new Frame("窗体");
x.setLayout(new FlowLayout());//设置布局
x.setBounds(300,200,600,300);
x.setVisible(true);//显示窗体
}
public static void main(String[] args) 
{
new jjjj();
}
}


菜单常用的有  MenuBar ()菜单条

Menu()菜单窗口

Menultem()子窗口

事件监听机制的特点

1 事件源

2 事件

3 监听器

4 事件处理

所谓的事件源就是Awt包或者Swing包中的那些图形界面组件

因为我们可以看得见 点击得了  比如说按钮  我们点击按钮  那么监听按钮的事件的就会被触发

然后就会处理该按钮我们写的处理方式

每一个事件都有自己特有对应事件的处理方式

所谓的监听就好比如博物馆里面的摄像头  当工作人员发现摄像头有小偷时 工作人员就会拿出相应的处理方式

这时小偷就是事件源   工作人员看摄像头发现小偷就 这里就是监听器  工作人员去抓小偷就是处理方式 处理方式有多种


java.Awt包已经提供好了 事件源 监听器 以及处理方式  处理方式有多种  可以按照自己的处理方式来处理


代码演示窗体  按钮  菜单条  文本框 的监听处理代码:

/*
这个程序是实现将文本文件在该文本框打开  可以保存  修改文本  类似于记事本
*/
package cao;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
public class  zhendeaini
{
private Frame F;     //窗体
private TextArea Tt;  //文本框
private FileDialog FD,DF;  //文件对话框
private MenuBar MB;   //带单条
private Menu M;     //菜单窗口
private MenuItem MI,MI1,MI2; //子菜单
private File j;         //文件对象
zhendeaini()
{
ai();
}
public void ai()
{
//创建一个窗体
F=new Frame ("窗体");
//给窗体设置初始化位置,大小
F.setBounds(300,200,600,400);
//创建一个文本框
Tt=new TextArea();
//把文本框添加到窗体
F.add(Tt);
//创建两个文件对话框用来打开保存用
FD=new FileDialog(F,"打开",FileDialog.LOAD);
DF=new FileDialog(F,"保存",FileDialog.SAVE);
//创建一个菜单条
MB=new MenuBar();
//创建一个菜单窗口
M=new Menu("菜单");
//创建3个子菜单
MI1=new MenuItem("打开");
MI2=new MenuItem("保存");
MI=new MenuItem("关闭");
//下面是把子菜单添加到菜单窗口中 在把菜单窗口添加到菜单条中
MB.add(M);
M.add(MI1);
M.add(MI2);
M.add(MI);
//将菜单条设置在指定的窗口上
F.setMenuBar(MB);
//显示窗口
F.setVisible(true);
ss();
}
public void ss()
{
//这是一个菜单中保存的监听处理代码
MI2.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) 
{
if(j==null)//判断文件是否为空 如果为空就显示文件对话框 
{
//显示文件对话框
DF.setVisible(true);
//获取文件对话框的目录以及文件
String S=DF.getDirectory(); 
String s=DF.getFile();
String Ss=S+""+s;
System.out.println(Ss);
//利用IO流的技术将在文本框的数据都写到自己指定的路径中
try
{
BufferedWriter buff=new BufferedWriter(new FileWriter(Ss));
String i=Tt.getText();
System.out.println(i);
buff.write(i);
buff.close();
}
catch (IOException kq)
{
throw new RuntimeException();
}

}
else
{
//如果文件对象不为空 那么就利用IO流技术将文本框的文本数据都写到文件对象的路径中
try
{
BufferedWriter buff=new BufferedWriter(new FileWriter(j));
String i=Tt.getText();
System.out.println(i);
buff.write(i);
System.out.println("aaaaaaaaaaa");
buff.close();
}
//处理异常代码
catch (IOException kqq)
{
throw new RuntimeException();
}
}
}


});
//窗口事件代码  这里是关闭窗口
F.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) 
{
System.exit(0);
}
});
//这里是菜单条上子菜单的处理代码  这里是关闭
MI.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) 
{
System.exit(0);
}
});
//这里是菜单条上的子菜单打开的代码
MI1.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) 
{
//当点击单开就会出现文件对话框
FD.setVisible(true);
String x=FD.getDirectory();
String xx=FD.getFile();
//如果出现文件对话框什么都不点就获取不了路径  下面必须满足两个条件 
//如果不满足那么就什么都不做自己返回
if(x==null&&xx==null)
{
System.out.println(x+"   "+xx);
return ;
}
//清空文本框的上的文本数据 
Tt.setText("");
String xxx=x+""+xx;
j=new File(xxx);
//到这来就获取了文件路径
try
{
//利用IO流将文本框上文本数据都写到自己指定的文件路径中
BufferedReader buff=new BufferedReader(new FileReader(j));
String kk=null;
while ((kk=buff.readLine())!=null)
{
Tt.append(kk+"\r\n");
}
buff.close();
}
catch (IOException xqx)
{
throw new RuntimeException();
}
System.out.println(j);
}
});


}
public static void main(String[] args) 
{
new zhendeaini();
}
}





  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值