------------------- android开发、java培训、期待与您交流! ----------------------
图形化界面的课堂笔记
(1)-----------------------------------------------------------------------------------------------------------
/*
鼠标事件,鼠标滑过窗体中的按钮,事件就发生
*/
import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
private Frame f;
private Button but;
MouseAndKeyEvent()//构造函数
{
init();
}
public void init()
{
f=new Frame("My Frame");//新建窗体,并命名
//对窗体进行基本设置
f.setBounds(300,100,500,400);
f.setLayout(new FlowLayout());
but=new Button("my button");
f.add(but);//将组件添加到窗体中
myEvent();//加载窗体上一些事件
f.setVisible(true);//显示窗体
}
private void myEvent()//自定义窗体事件
{
f.addWindowListener(new WindowAdapter()//窗口关闭的匿名内部类
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
but.addActionListener(new ActionListener()//操作鼠标的动作也可以由其他来完成,例如键盘,运行时则执行此代码
{
public void actionPerformed(ActionEvent e)
{
System.out.println("action OK");
}
});
but.addMouseListener(new MouseAdapter()//让按钮具备程序的功能
{
private int count=1;
private int clickCount=1;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标进人组件"+count++);//鼠标进入按钮区域就输出一次
//System.exit(0);//关闭窗体
}
public void mouseClicked(MouseEvent e)
{
System.out.println("点击动作"+clickCount++);
if(e.getClickCount()==2)
System.out.println("双击");
}
});
}
public static void main(String[] args)
{
new MouseAndKeyEvent();
}
}
(2)-----------------------------------------------------------------------------------------------------------
/*
键盘事件,键,组合键
*/
import java.awt.*;
import java.awt.event.*;
class MouseAndKeyEvent
{
private Frame f;
private Button but;
MouseAndKeyEvent()//构造函数
{
init();
}
public void init()
{
f=new Frame("My Frame");//新建窗体,并命名
//对窗体进行基本设置
f.setBounds(300,100,500,400);
f.setLayout(new FlowLayout());
but=new Button("my button");
f.add(but);//将组件添加到窗体中
myEvent();//加载窗体上一些事件
f.setVisible(true);//显示窗体
}
private void myEvent()//自定义窗体事件
{
f.addWindowListener(new WindowAdapter()//窗口关闭的匿名内部类
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
but.addKeyListener(new KeyAdapter()//添加键盘监听器
{
public void keyPressed(KeyEvent e)//覆盖键盘敲击方法
{
//System.out.println(e.getKeyChar()+"......"+e.getKeyCode());//输出按下的键,以及键的编码
//System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"......"+e.getKeyCode());
//根据键盘输入的键,获取对应的Code编码,再根据编码获得其键名
//if(e.getKeyCode()==KeyEvent.VK_ESCAPE)//是下边的替代语句,VK_ESCAPE具体的键名,可以再API中查找
if(e.getKeyCode()==27)//判断若按下ESC键,则退出窗体
System.exit(0);
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)//如果按下组合键Control+ENTER
System.exit(0);//退出窗体
}
});
}
public static void main(String[] args)
{
new MouseAndKeyEvent();
}
}
(3)-----------------------------------------------------------------------------------------------------------
/*
练习:创建文本框,文本区域,使用转到按钮,获取目录
*/
import java.awt.*;
import java.awt.event.*;
import java.io.*;
class MyWindowDemo
{
private Frame f;
private TextField tf;
private Button but;
private TextArea ta;
MyWindowDemo()//构造函数
{
init();
}
public void init()
{
f=new Frame("my window");//创建窗体
f.setBounds(300,200,500,400);//设置窗体参数
f.setLayout(new FlowLayout());//设置窗体布局为流式布局
tf=new TextField(30);//创建文本框
but=new Button("转到");//创建按钮
ta=new TextArea(15,40);//设置文本区域
f.add(tf);//添加文本框
f.add(but);//添加按钮
f.add(ta);//添加文本区域
myEvent();
f.setVisible(true);//设置为显示
}
private void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)//关闭窗口
{
System.exit(0);
}
});
/*
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//将文本框中输入的字符串,按下转向按钮后,转到文本区域中
String text=tf.getText();
ta.setText(text);
tf.setText("");//接收到字符串后将文本框清空
}
});
*/
but.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
//列出目录
ta.setText("");//清空文本区域
String dirPath=tf.getText();//获取目录的绝对路径
File dir=new File(dirPath);//创建文件存放目录
if(dir.exists()&&dir.isDirectory())//判断目录存在,并且是目录
{
String[] names=dir.list();//获取目录名字
for(String name:names)//遍历
{
ta.append(name+"\r\n");//将文件名添加到文本区
}
}
tf.setText("");//接收到字符串后将文本框清空
}
});
}
public static void main(String[] args) //主函数
{
new MyWindowDemo();
}
}
(4)-----------------------------------------------------------------------------------------------------------
/*
创建菜单栏
*/
import java.awt.*;
import java.awt.event.*;
class MyMenuDemo
{
private Frame f;//窗口
private MenuBar mb;//菜单栏
private Menu m,m1,m2,subMenu,subMenu1,subMenu2;//菜单
private MenuItem closeItem,subItem,subItem1,subItem2,subItem3;//菜单条目
MyMenuDemo()
{
init();
}
public void init()
{
f=new Frame("my window");//创建窗体
f.setBounds(300,200,500,400);//设置窗体参数
f.setLayout(new FlowLayout());//设置窗体布局为流式布局
mb=new MenuBar();//创建菜单栏
m=new Menu("文件");//创建菜单
m1=new Menu("编辑");
m2=new Menu("工具");
closeItem=new MenuItem("退出");//创建子菜单
subMenu=new Menu("子菜单");
subMenu1=new Menu("子菜单1");
subMenu2=new Menu("子菜单2");
subItem=new MenuItem("子条目");//给菜单创建条目
subItem1=new MenuItem("子条目1");
subItem2=new MenuItem("子条目2");
subItem3=new MenuItem("子条目3");
subMenu.add(subItem);//给菜单创添加条目
subMenu.add(subItem1);
subMenu.add(subItem2);
subMenu.add(subItem3);
m.add(subMenu);//添加子菜单
m.add(subMenu1);
m.add(subMenu2);
m.add(closeItem);
mb.add(m);//添加菜单
mb.add(m1);
mb.add(m2);
f.setMenuBar(mb);//添加菜单栏
myEvent();
f.setVisible(true);
}
private void myEvent()
{
f.addWindowListener(new WindowAdapter()//关闭窗口
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
closeItem.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)//退出操作,结束程序
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MyMenuDemo();
}
}
------------------- android开发、java培训、期待与您交流! ----------------------