黑马程序员9--GUI
来源:互联网 发布:sai软件多大 编辑:程序博客网 时间:2024/06/06 12:26
GUI
------- android培训、java培训、期待与您交流! ----------
GUI(Graphical User Interface) 图形用户接口
常见的布局管理器:
FlowLayout(流式布局管理器)
从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。
GridLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
AWT中各组件继承关系图
创建图形化界面
1.创建Frame窗体
2.对窗体进行基本设置。
比如大小,位置,布局。
3.定义组件
4.将组件通过窗体的add方法添加到窗体中
5.让窗体显示,通过setVisible(true)
事件监听机制的特点:
1.事件源
2.事件
3.监听器
4.事件处理
事件源:就是awt包或者swing包中的那些图形界面组件
事件:每一个事件源都有自己对应事件和共性事件
监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中
以上三者在java中都已经定义好了。
直接获取其对象来用就可以了
我们要做的就是对产生的动作进行处理。
MyWindowDemo
import java.io.*;
import java.awt.*;
import java.awt.event.*;
class MyWindowDemo
{
private Frame f;
private TextField tf;
private Button btn;
private TextArea ta;
private Dialog d;
private Label lb;
private Button OKBtn;
MyWindowDemo()
{
init();
}
public void init()
{
f = new Frame("My Window");
f.setBounds(200,100,600,400);
f.setLayout(new FlowLayout());
tf = new TextField(30);
btn = new Button("转到");
ta = new TextArea(20,70);
d=new Dialog(f,"Message",true);
d.setBounds(300,200,200,100);
d.setLayout(new FlowLayout());
lb = new Label();
OKBtn = new Button("OK");
d.add(lb);
d.add(OKBtn);
myEvent();
f.add(tf);
f.add(btn);
f.add(ta);
f.setVisible(true);
}
public void myEvent()
{
import java.awt.*;
import java.awt.event.*;
class MyWindowDemo
{
private Frame f;
private TextField tf;
private Button btn;
private TextArea ta;
private Dialog d;
private Label lb;
private Button OKBtn;
MyWindowDemo()
{
init();
}
public void init()
{
f = new Frame("My Window");
f.setBounds(200,100,600,400);
f.setLayout(new FlowLayout());
tf = new TextField(30);
btn = new Button("转到");
ta = new TextArea(20,70);
d=new Dialog(f,"Message",true);
d.setBounds(300,200,200,100);
d.setLayout(new FlowLayout());
lb = new Label();
OKBtn = new Button("OK");
d.add(lb);
d.add(OKBtn);
myEvent();
f.add(tf);
f.add(btn);
f.add(ta);
f.setVisible(true);
}
public void myEvent()
{
//给tf添加键盘事件,当按下回车键时执行showDir
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==KeyEvent.VK_ENTER)
{
showDir();
}
}
});
//给d注册窗口事件
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
//给OKBtn注册点击事件
OKBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
}
});
//给f注册窗口事件
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//给btn注册点击事件
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
showDir();
}
});
}
private void showDir()
{
String dirName = tf.getText();
File dir = new File(dirName);
System.out.println(dir.getAbsolutePath());
System.out.println(dir.getPath());
if (dir.exists()&&dir.isDirectory())
{
ta.setText("");
String[] names = dir.list();
for (String name:names )
{
ta.append(name+"\r\n");
}
}
else
{
if (dirName.length()>0)
{
lb.setText("Path "+dirName+" is illegal");
d.setVisible(true);
}
}
}
public static void main(String[] args)
{
new MyWindowDemo();
}
}
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
if (e.getKeyCode()==KeyEvent.VK_ENTER)
{
showDir();
}
}
});
//给d注册窗口事件
d.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
//给OKBtn注册点击事件
OKBtn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
d.setVisible(false);
}
});
//给f注册窗口事件
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//给btn注册点击事件
btn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
showDir();
}
});
}
private void showDir()
{
String dirName = tf.getText();
File dir = new File(dirName);
System.out.println(dir.getAbsolutePath());
System.out.println(dir.getPath());
if (dir.exists()&&dir.isDirectory())
{
ta.setText("");
String[] names = dir.list();
for (String name:names )
{
ta.append(name+"\r\n");
}
}
else
{
if (dirName.length()>0)
{
lb.setText("Path "+dirName+" is illegal");
d.setVisible(true);
}
}
}
public static void main(String[] args)
{
new MyWindowDemo();
}
}
Menu Demo
import java.awt.*;
import java.awt.event.*;
class MyMenuDemo
{
private Frame f;
private MenuBar mb;
private Menu fileMenu,subMenu;
private MenuItem exit,subItem;
MyMenuDemo()
{
init();
}
private void init()
{
f=new Frame();
f.setBounds(300,200,600,500);
mb=new MenuBar();
//菜单
fileMenu = new Menu("文件");
import java.awt.event.*;
class MyMenuDemo
{
private Frame f;
private MenuBar mb;
private Menu fileMenu,subMenu;
private MenuItem exit,subItem;
MyMenuDemo()
{
init();
}
private void init()
{
f=new Frame();
f.setBounds(300,200,600,500);
mb=new MenuBar();
//菜单
fileMenu = new Menu("文件");
subMenu=new Menu("submenu");
//菜单项
exit = new MenuItem("exit");
subItem = new MenuItem("subitem");
//将菜单项添加到菜单
subMenu.add(subItem);
fileMenu.add(subMenu);
fileMenu.add(exit);
subItem = new MenuItem("subitem");
//将菜单项添加到菜单
subMenu.add(subItem);
fileMenu.add(subMenu);
fileMenu.add(exit);
//将菜单添加到菜单条
mb.add(fileMenu);
//将菜单条添加到窗口
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
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 MyMenuDemo();
}
}
mb.add(fileMenu);
//将菜单条添加到窗口
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
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 MyMenuDemo();
}
}
0 0
- 黑马程序员----9GUI
- 黑马程序员9--GUI
- 黑马程序员 GUI
- 黑马程序员之GUI
- 黑马程序员 Java GUI
- 黑马程序员: GUI
- 黑马程序员-----GUI
- 黑马程序员 GUI学习
- 黑马程序员:GUI
- 黑马程序员_day22 GUI。
- 黑马程序员九、GUI
- 55.黑马程序员-GUI
- 黑马程序员---GUI【java】
- 黑马程序员 GUI
- 黑马程序员—GUI
- 黑马程序员-GUI
- 黑马程序员-GUI编程
- 黑马程序员-GUI概述
- 逗B少年搞程序04 策略模式——这次要甩什么技能呢~
- 基于LRU算法的缓存池——阿里笔试题
- 玩转html5(一)-----盘点html5新增的那些酷酷的input类型和属性
- FZU2169:shadow(最短路)
- fzu - 1752 Problem 1752 A^B mod C
- 黑马程序员9--GUI
- Spring3.0.5jar包用法详解
- 三层中的大学问
- hdu-3436-Queue-jumpers-伸展树
- 玩转html5(一)-----盘点html5新增的那些酷酷的input类型和属性
- 黑马程序员10--File类
- Spring mvc redirect传递参数时异常RedirectAttributes
- Vmware中的Windows主机与主机Windows进行文件共享
- D - Draw Something Cheat(水)