ASP.Net+Android+IOS开发------期待与您交流
<图形化界面>
<图形化界面的使用方法,概念>
1. 容器
* 窗口,面板,选项卡,可以存放其他容器或者组件
* Frame窗口
* Dialog FileDialog
2. 组件
* 按钮,文本框,对话框,菜单,不能单独使用,必须放在容器中
* Button按钮
* TextArea多行文本
* TextField文本字段,单行文本
* 必须要添加到容器中
3. awt和swing
* awt 调用了操作系统中的方法,完成图形界面,依赖系统,重量级
* swing 纯java编写的图形界面,不依赖操作系统 轻量级
4. Frame类,构建窗体的类
* 构造方法,传递字符串,窗口的标题栏
* setSize(width,height)宽,高,单位是像素
* setVisible(true)窗口显示了
* setLocation
* Toolkit.getDefaultToolkit().getScreenSize().width;获取屏幕的分辩率
* setLayout(null)取消布局管理器,实现组件的任意位置的放置 (组件要定义尺寸和位置)
* setBounds(横轴,纵轴,宽度,高度)
* setMenuBar()设置菜单栏
5. Button类,按钮构建
* 构造方法,传递字符串
6. 窗体的布局管理器
7. 事件的监听机制
* 事件源,就是用户操作的那个组件
* 事件,鼠标事件,键盘事件,窗体事件
* 监听器,监听,等待这个事件的发生
* 按钮事件源,为按钮添加了一个事件监听器,监听鼠标的单击事件,交给事件处理方式
* 事件处理
* 就是个方法
点击红色的叉子,关闭程序
* 事件源,窗体
* 窗体事件
* 监听什么?窗体事件操作,点击红叉子
* 交给一个方法来处理
8. 适配器设计模式
* 是将接口适配成用户想要的效果
* 抽象类实现接口中的方法,并且这个抽象类中全部是普通方法
* 子类继承抽象方法,覆盖你想要的方法
9.TextField组件
* 构造方法
10. 键盘事件
* KeyEvent e
* getKeyCode() ASCII
* getKeyChar() 字符
* consume()
* 实现Ctrl+Enter键
* isControlDown()判断是否按下Ctrl键
11. 鼠标事件
* mouseClicked(MouseEvent e)鼠标点击事件
* mouseEntered(MouseEvent e)鼠标进入组件
* mouseExited(MouseEvent e)鼠标离开组件
* int getClickCount()返回在组件上,鼠标点击了多少次
12. Dialog对话框容器
* 构造方法(所属窗体,标题,模式)
* Label显示文字
13. awt的实例
* 用户输入一个路径,展示这个路径中的有文件和文件夹
* 使用的技术 IO awt
* awt中需要的容器和组件
* Frame
* 文本框组件
* Label组件
* 按钮组件
* 对话框
* IO中需要哪些类
* File
GUI练习
* 实现步骤:
A-- 先做界面
B-- 事件的响应
B1* 窗口的关闭
B2* 点击按钮
* 获取这个文本框中写的是什么
* 获取到输入后,判断空
* 封装成File对象,判断输入的目录有没有,判断是不是目录
* 获取文件列表 、listFiles()
B3* 输入后直接按下回车键
下面是对GUI的整体性应用代码实现如下:
package cn.filelist;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.lang.reflect.Field;
import java.security.PublicKey;
public class GuiDemo {
//定义窗体组件
private Frame frm= null;
//功能的使用说明
private Label fla = null;
//输入文本框组件
private TextField tf = null;
//确定按钮
private Button okbut = null;
//多行的文本,显示文件列表的
private TextArea ta=null;
//对话框容器
private Dialog dg =null;
//对话框上的文字提示组件
private Label dla = null;
//对话框上的确定按钮
private Button dbut = null;
//屏幕的宽度和高度
private static final int WIDTH = Toolkit.getDefaultToolkit().getScreenSize().width;
private static final int HEIGHT = Toolkit.getDefaultToolkit().getScreenSize().height;
public GuiDemo(){
init();
}
private void init(){
//对窗体进行设置
frm = new Frame("文件列表功能");
frm.setBounds((WIDTH-550)/2, (HEIGHT-650)/2, 550, 650);
frm.setBackground(new Color(204,232,207));
frm.setLayout(null);
frm.setVisible(true);
//对窗体组件进行设置。
//功能的使用说明
fla = new Label("请输入路径,之后会显示路径下的全部文件名列表");
fla.setBounds(40,30,500,30);
frm.add(fla);
//对输入的单行文本框进行设置
tf = new TextField();
tf.setBounds(40, 70, 420, 20);
frm.add(tf);
//对确定按钮进行设置
okbut = new Button("确定");
okbut.setBounds(490, 70, 40, 20);
frm.add(okbut);
//对多行文本进行设置
ta = new TextArea();
ta.setBounds(40, 105, 425, 480);
ta.setEditable(false);
frm.add(ta);
//对话框的设置
// 构造一个最初不可见的 Dialog,
// 它带有指定的所有者 Frame、标题和模式。
dg = new Dialog(frm,"错误的提示信息",true);
dg.setBounds((WIDTH-600)/2, (HEIGHT-100)/2, 600, 100);
dbut =new Button("确定");
dg.setLayout(null);
myEvent();
}
//定义专门的方法专门处理各种事件
private void myEvent(){
frm.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//点击确定按钮的事件
okbut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
getListFile();
}
});
//对话框中关闭
dg.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e){closeDialog();}
});
//按钮的关闭
dbut.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {closeDialog();}
});
//输入文本框的键盘事件,按下回车键
tf.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e){
int code = e.getKeyCode();
if(code == KeyEvent.VK_ENTER){
getListFile();
}
}
});
}
private void closeDialog(){
dg.setVisible(false);
}
private void getListFile(){
//判断在文本框中输入的内容,按下确定之后如果正确则直接输出文件列表
//获取文本框中输入的内容
String path = tf.getText();
//判空,健壮性判断
if("".equals(path))
return;
//去掉空格方法
path = path.trim();
//创建文件类对象并传入字符串路径
File f = new File(path);
//判断是不是文件
if(!f.exists()){
//对话框出现的时机
//Label 对象是一个可在容器中放置文本的组件。
//一个标签只显示一行只读文本。
//文本可由应用程序更改,但是用户不能直接对其进行编辑
dla = new Label("蠢货你输入的路径 "+ path + "不存在!请重新输入");
dla.setBackground(Color.cyan);
dla.setBounds(150, 50, 400, 20);
dg.add(dla);
dbut.setBounds(270, 75, 50, 20);
dg.add(dbut);
dg.setVisible(true);
}else if(!f.isAbsolute()){
//否则是文件,则获取文件名列表
dla = new Label("二货你输入的"+path +"是文件请重新输入");
dla.setBounds(150, 50, 400, 20);
dg.add(dla);
dbut.setBounds(200, 75, 50, 20);
dg.add(dbut);
dg.setVisible(true);
}else {
//否则就是正确的路径了
ta.setText("");
File [] file = f.listFiles();
for(File ff:file){
// ta.setText(ff+"");
ta.append(ff+"\t\n");
}
}
}
}
ASP.Net+Android+IOS开发------期待与您交流