-------android培训、java培训、期待与您交流!----------
1、GUI概述
GUI:Graphical User Interface(图形用户接口)。用图形的方式,来显示计算机操作的界面,这样更方便更直观。
CLI:Command line User Interface(命令行用户接口)。就是常见的Dos命令操作,需要记忆一些常用的命令,操作不直观。
Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
java.Awt: Abstract Window ToolKit(抽象窗口工具包),需要调用本地系统方法实现功能,属于重量级控件。
javax.Swing: 在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全有Java实现。增强了移植性,属轻量级控件。
GUI组件继承关系图:
其中Container为容器,是一个特殊的组件,该组件可以通过add方法添加其他组件进来。
2、简单Frame创建演示
下面为创建代码及相关说明:
/*
* 创建图形化界面:
* 1、创建frame窗体。
* 2、对窗体进行基本设置:比如大小、位置、布局等等。
* 3、定义组件。
* 4、将组件通过窗体的add方法添加到窗体中
* 5、让窗体显示,通过setVisible(true)方法
*/
//简单Frame演示
public static void frame(){
Frame f = new Frame("my awt"); //new之后默认使用边界布局
f.setVisible(true); //设置窗体可见
f.setSize(500, 300); //设置窗体大小,单位为px
f.setLocation(300, 100); //设置窗体位置,第一个参数表示距左边300px,第二个参数表示距顶部100px
f.setLayout(new FlowLayout()); //设置为流式布局
Button b = new Button("我是一个按钮");
f.add(b); //将button添加到frame中
}
图形界面效果:
3、窗体事件
class FrameDemo{
private Frame f;
private Button b;
public FrameDemo(){
init();
}
public void init(){
f = new Frame("my frame");
//对frame进行基本设置
f.setBounds(300, 100, 600, 500);
f.setLayout(new FlowLayout());
b = new Button("my button");
f.add(b); //将组件添加到frame中
myEvent(); //加载一下窗体上事件
f.setVisible(true); //显示窗体
}
private void myEvent(){
f.addWindowListener(new WindowAdapter(){ //监听关闭按钮
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
//让按钮具备退出程序的功能,按钮就是事件源。
//通过关闭窗体示例了解到,想要知道哪个组件具备什么样的特有监听器。需要查看该组件对象的功能。
//通过查阅API,发现按钮支持一个特有监听addActionListener
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}
}
4、鼠标键盘事件
class MouseKeyBoardDemo{ //鼠标键盘事件
private Frame f;
private Button b;
private TextField tf;
public MouseKeyBoardDemo(){
init();
}
public void init(){
f = new Frame("my frame");
//对frame进行基本设置
f.setBounds(300, 100, 600, 500);
f.setLayout(new FlowLayout());
b = new Button("my button");
tf = new TextField(10); //10列
f.add(tf); //将文本框添加到窗体中
f.add(b); //将组件添加到frame中
myEvent(); //加载一下窗体上事件
f.setVisible(true); //显示窗体
}
private void myEvent(){
f.addWindowListener(new WindowAdapter(){ //监听关闭按钮
public void windowClosing(WindowEvent e){
System.exit(0);
}
});
b.addActionListener(new ActionListener(){ //添加action监听
public void actionPerformed(ActionEvent e){
P.rintln("action ok");
}
});
b.addMouseListener(new MouseAdapter(){ //添加鼠标监听
private int count = 1;
private int clickCount = 1;
public void mouseEntered(MouseEvent e){
P.rintln("鼠标第" + count++ + "次进入到按钮");
}
public void mouseClicked(MouseEvent e){
P.rintln("鼠标第" + clickCount++ + "次点击按钮");
if(e.getClickCount() == 2){
P.rintln("双击动作");
}
}
});
b.addKeyListener(new KeyAdapter(){ //给按钮添加键盘监听
public void keyPressed(KeyEvent event){
P.rintln(event.getKeyChar() + "..." + event.getKeyCode());
P.rintln(KeyEvent.getKeyText(event.getKeyCode()));
if(event.getKeyCode() == KeyEvent.VK_ESCAPE){ //按Esc键退出
System.exit(0);
}
if(event.isControlDown() && event.getKeyCode() == KeyEvent.VK_ENTER){ //按Conrol+Enter键退出
System.exit(0);
}
}
});
tf.addKeyListener(new KeyAdapter(){ //给文本框添加键盘监听
public void keyPressed(KeyEvent e){
//此方法不能监听中文输入
int code = e.getKeyCode();
if((code >= KeyEvent.VK_0 && code <= KeyEvent.VK_9) || code == KeyEvent.VK_BACK_SPACE){}
else{
P.rintln(code + "是非法的");
e.consume();
}
}
});
}
}
5、练习-列出指定目录内容