黑马程序员技术交流社区
标题:
GUI 图形用户界面
[打印本页]
作者:
wws1214
时间:
2015-7-17 09:41
标题:
GUI 图形用户界面
GUI 图形用户界面
1、Awt Abstract Window TollKit 抽象窗口工具包
Swing
2、控件
3、布局管理器
FlowLayout流式布局:从左到右,Panel默认的布局管理器
BorderLayout边界布局:上下左右中,Frame默认的布局管理器
GridLayout 网络布局管理器:规则的矩阵
CardLayout卡片布局;选项卡
GridBayLayout网络包布局管理器,非规则的矩阵
4、
/*
* 创建图形化界面
* 1、创建frame窗体
* 2、对窗体进行基本设置
* 比如大小、位置、布局
* 3、定义组件
* 4.组件通过窗体的add方法添加到窗体中
* 5、让窗台显示setVisible(true)
* 事件监听机制的特点
* 1.事件源:就是awt包或者swing包中的那些图形界面组件
* 2.事件 :每一个事件源都有自己特有的对应事件和共性事件
* 3.监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中
* 4事件处理
*
* 前三者,在java中都已经定义好了,直接获取其对象来用就可以了。
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//创建窗体
Frame f=new Frame("my cat");
f.setSize(500,200);//窗口大小(横纵)
f.setLocation(100,500);//出现位置
f.setLayout(new FlowLayout());
Button b=new Button("按钮一号");
b.setSize(50,20);
f.add(b);
//实现关闭窗口操作
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent w) {
System.out.println("window closing");
System.exit(0);
}
//扩展
public void windowActivated(WindowEvent e) {
System.out.println("激活窗口");
}
public void windowOpened(WindowEvent e) {
System.out.println("打开窗口");
}
});
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("button to closing");
System.exit(0);
}
});
f.setVisible(true);//显示,一般放最后
}
5、/*让按钮具备退出程序的功能
按钮就是事件源,那么选择addActionListener
*/
btn.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("button to closing");
System.exit(0);
}
});
6、//鼠标停留、点击事件,
//addMouseListener中mouseClicked比
//addActionListener中actionPerformed先执行
btn.addMouseListener(new MouseAdapter() {
private int count=1;
private int Click=1;
public void mouseEntered(MouseEvent e) {
System.out.println("停留="+count++);
}
public void mouseClicked(MouseEvent e) {
//双击事件
if(e.getClickCount()==2)
System.out.println("双击");
System.out.println("点击="+Click++);
}
});
7、//获取键盘按下事件
btn.addKeyListener(new KeyAdapter() {
public void keyReleased(KeyEvent e) {
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_C)
System.exit(0);
if(e.getKeyCode()==KeyEvent.VK_ESCAPE)//exc==27=KeyEvent.VK_ESCAPE
{
System.out.println("keyEvent to closing");
System.exit(0);
}
System.out.println(KeyEvent.getKeyText(e.getKeyChar())+":"+e.getKeyChar()+"=="+e.getKeyCode());
}
});
8、//文本框,只输入数字
txt=new TextField(20);
txt.addKeyListener(new KeyAdapter() {
public void keyPressed(KeyEvent e) {
int code=e.getKeyCode();
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
{
System.out.println(KeyEvent.getKeyText(code)+" is wrong");
e.consume();//阻止数据进入
}
}
});
9、按钮实现 获取tf文本框中数据,写入ta文本框中
{
Public void actionPerformed(ActionEvent e)
{
String text=tf.getText();
Ta.setText(text)
//扩展
String dirPath= tf.getText();
File dir=new File(dirPath);
If(dir.exists()&&dir.isDirectory)
{
Ta.setText(“”);//清空
String []names=dir.list();
For(string name:names)
Ta.append(name+”\r\n”);
}
Else
{
警告框。
String info=”你输入信息错误”+ dirPath +”eee”;
d.setVisible(true);
lab.set(info);
}
}
}
10、窗口(警告框)
Private Label lab=new Label()
Dialog d=new Dialog(frame,”提示信息”,true);
d.setBounds(400,200,240,130);
d.setLayout(new FlowLayout)
Butten okBtn=new butten(“确定”);
d.add(lab);
d.add(okBtn);
X
public void windowClosing(windowEvent e)
{
d.setVisible(false);
}
okBtn
d.setVisible(false);
11、菜单栏设计
public class MyMenuDemo {
private Frame f;
private MenuBar mb;
private Menu m,subMenu;
private MenuItem closeItem,subItem,subItem2;
MyMenuDemo()
{
init();
}
public void init()
{
f=new Frame("my frame");
//对frame进行基本设置
f.setBounds(30,500,600,600);
f.setLayout(new FlowLayout());
mb=new MenuBar();
m=new Menu("文件");
subMenu=new Menu("子菜单");
subItem=new MenuItem("子条目");
subItem2=new MenuItem("子条目2");
closeItem=new MenuItem("退出");
subMenu.add(subItem);
subMenu.add(subItem2);
m.add(subMenu);
m.add(closeItem);
mb.add(m);
f.setMenuBar(mb);
myEvent();
f.setVisible(true);
}
private void myEvent()
{
//菜单退出
closeItem.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
System.out.println("Menu closing");
System.exit(0);
}
});
f.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent w) {
System.out.println("window closing");
System.exit(0);
}
});
}
public static void main(String[] args) {
// TODO Auto-generated method stub
new MyMenuDemo();
}
}
作者:
PDH
时间:
2015-7-17 09:50
厉害,佩服
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2