------- <a href="http://www.itheima.com" target="blank">android培训</a>、<a href="http://www.itheima.com" target="blank">java培训</a>、期待与您交流! ----------
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
* GUI:图形化界面编程,图形化界面一建立,就会开启一个独立的线程
Component:组件的意思
Container:容器,一个特殊的组件,该组件可以通过add方法将其他组件添加进来
Window:窗口 Panel:面板,控件,用于给其他控件分组,可以将一个Frame分成几个面板进行布局
Frame:框架,帧,一帧指一副静态画面,时间帧指一副静态画面持续的时间 Dialog:对话框,对话体(dialogue 对话)
FileDialog:文本对话框
组件Component包含以下成员:
Button:按钮
Lable:标签
Checkbox:复选框
TextComponent:文档组件(包含TextArea和TextFile)
TextArea:文档区(多行文本)
TextFile:文本框(多行文本)
layout:布局 FlowLayout:流式布局(从左到右)CardLayout:选项卡(卡片布局)
BorderLayout:边界布局(东南西北中) GridLayout:矩阵布局(网格布局)GridBagLayout非规则矩阵(网格包布局)
javax.swing包比较强大,适用性强,在awt的基础上建立了一套自己的图形化界面系统
java.awt包比较依赖系统,调用的是系统底层数据,在不同的系统中显示效果不同,跨平台效果不行
eclipse编程用的是swt(是eclipse工作者自己编写的,跨平台性强)
setVisible(boolean b):根据b的值true/false显示/隐藏窗口
perform:执行,表演
adapter:适配器,改编者,适应着,适应物
action:行动,行为,活动
socket:端口,插座
*/
public class Gui
{
/*
创建图形化界面
1.创建Frame窗体
2.对窗体进行基本设置
3.定义组件
4.将组件通过add()方法将组件添加到窗体中
5.让窗体显示,用setVisible()方法显示
时间监听机制的特点:
1.事件源:就是awt包或swing包中的那些图形化界面组件
2.事件:每一个事件源都有自己特有的对应事件和共性事件
3.监听器:将可以触发某一个事件的动作(不止一个动作)都已经封装到了监听器中
4.事件处理:可以自定义处理方式
接口WindowListionter的子类WindowAdapter(抽象类,它所有的方法都不是抽象的,定义抽象类是为了不让建对象)
已经实现了WindowListener中的所有抽象方法,我们只要继承自WindowAdapter复写我们需要的方法即可
*/
public static void main(String[] args)
{
Frame f=new Frame("my Frame");
f.setSize(500,200);
f.setLocation(500,300);
f.setLayout(new FlowLayout());
Button b=new Button("my button");
f.add(b);
//f.addWindowListener(new MyTest());
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.out.println("我关了");
System.exit(0);
}
public void windowActivated(WindowEvent e)
{
System.out.println("我活了");
}
public void windowOpened(WindowEvent e)
{
System.out.println("我被打开了");
}
});
f.setVisible(true);
}
}
/*class MyTest extends WindowAdapter
{
public void windowClosing (WindowEvent e)
{
System.exit(0);
}
}*/
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
/*
init是initialization的缩写,意思是设定初始值,初始化
*/
public class GuiAction
{
public static void main(String[] args)
{
new FrameDemo();
}
}
class FrameDemo
{
private Frame f;
private Button b;
FrameDemo()
{
init();
}
public void init()
{
f=new Frame("myframe");
//f.setLocation(400,200);
//f.setSize(500,300);
f.setBounds(400,200,500,300);//上两行代码的简写
f.setLayout(new FlowLayout());
b=new Button("mybutton");
f.add(b);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//向Frame中添加一个窗体监听器(addWindowListener(参数是WindowListener))
/*
按钮也可以是一个事件源,它也有添加监听器的方法addActionListioner(参数是ActionListioner)
只要方法超过3个包括3个就有适配器
*/
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
System.out.println("按钮退出");
System.exit(0);
}
});
}
}
import java.awt.Button;
import java.awt.Dialog;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.Label;
import java.awt.TextArea;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.File;
public class LieChuNeiRongMuLu
{
private Frame f;
private TextField tf;
private Button b;
private TextArea ta;
private Dialog d;
private Label l;
private Button lb;
LieChuNeiRongMuLu()
{
f=new Frame("myFrame");
f.setBounds(500,300,600,400);
f.setLayout(new FlowLayout());
tf=new TextField(40);
b=new Button("转到");
ta=new TextArea(15,50);
f.add(tf);
f.add(b);
f.add(ta);
d=new Dialog(f,"提示信息",true);//true是将Dialog前置,不操作Dialog无法操作窗口
d.setBounds(550,350,300,100);
d.setLayout(new FlowLayout());
l=new Label("");
//l.setText("");
d.add(l);
lb=new Button("确定");
d.add(lb);
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent e)
{
function();
}
});
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
if(e.getKeyCode()==KeyEvent.VK_ENTER)
function();
}
});
lb.addMouseListener(new MouseAdapter(){
public void mouseClicked(MouseEvent e)
{
d.setVisible(false);
}
});
d.addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
d.setVisible(false);
}
});
}
public void function()
{
String text=tf.getText();//获取文本中的内容
//ta.setText("");将文本区清空
//ta.setText(text);将文本内容写到文本区
File file=new File(text);
if(file.exists()&&file.isDirectory())
{
ta.setText("");
String[] names=file.list();
for(String s:names)
{
ta.append(s+"\r\n");
}
}
else
{
String str="你输入的"+text+"有误,请重输";
l.setText(str);
d.setVisible(true);
}
}
public static void main(String[] args)
{
new LieChuNeiRongMuLu();
}
}
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.Menu;
import java.awt.MenuBar;
import java.awt.MenuItem;
import java.awt.TextArea;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
//menubar:菜单栏,菜单条,可以向里面添加menu,menuItem(菜单条目)是菜单中的一员是最小的
//menu里面可以添加menu和menuItem,
public class MakeMenu
{
private static Frame f;
private static MenuBar mb;
private static Menu m,mi;
private static MenuItem m1,m2,open,save,tuichu;//是做子菜单用的
private static FileDialog od,sd;
private static TextArea ta;
private static File file;
MakeMenu()
{
f=new Frame("myFrame");
f.setBounds(350,150,600,400);
//f.setLayout(new FlowLayout());用流布局文本区很难看
mb=new MenuBar();
m=new Menu("文件");
m1=new MenuItem("bage");
m2=new MenuItem("class");
open=new MenuItem("打开");
save=new MenuItem("保存");
mi=new Menu("新建");
tuichu=new MenuItem("退出");
od=new FileDialog(f,"我的打开",FileDialog.LOAD);
sd=new FileDialog(f,"我的保存",FileDialog.SAVE);
ta=new TextArea();
mi.add(m1);
mi.add(m2);
m.add(open);
m.add(mi);
m.add(save);
m.add(tuichu);
f.setMenuBar(mb);
f.add(ta);//默认边界布局
mb.add(m);
//f.show();
myEvent();
f.setVisible(true);
}
public void myEvent()
{
open.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
od.setVisible(true);
String dir=od.getDirectory();
String name=od.getFile();
System.out.println(dir+"....."+name);
if(dir==null||name==null)
return;
ta.setText("");
File file=new File(dir,name);
try
{
BufferedReader br=new BufferedReader(new FileReader(file));
String line=null;
while((line=br.readLine())!=null)
{
ta.append(line+"\r\n");
}
br.close();
}
catch(IOException ioe)
{
throw new RuntimeException("文件打开失败");
}
}
});
save.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
if(file==null)
{
sd.setVisible(true);
String dir=sd.getDirectory();
String name=sd.getFile();
System.out.println(dir+"....."+name);
if(dir==null||name==null)
return;
file=new File(dir,name);
}
try
{
BufferedWriter bw=new BufferedWriter(new FileWriter(file));
String text=ta.getText();
bw.write(text);
bw.close();
}
catch(IOException ioe)
{
throw new RuntimeException("保存失败");
}
}
});
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
tuichu.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.exit(0);
}
});
}
public static void main(String[] args)
{
new MakeMenu();
}
}
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.TextField;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class MouseAndKeyEvent
{
public static void main(String[] args)
{
new MyEvent();
}
}
class MyEvent
{
private Frame f;
private Button b;
private TextField tf;
MyEvent()
{
tf=new TextField(20);
f=new Frame("myFrame");
f.setBounds(400,300,500,200);
b=new Button("myButton");
f.add(tf);
f.add(b);
f.setLayout(new FlowLayout());
myEvent();
f.setVisible(true);
}
public void myEvent()
{
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
b.addMouseListener(new MouseAdapter()
{
private int count=1;
private int clickCount=1;
public void mouseEntered(MouseEvent e)
{
System.out.println("鼠标进入"+count++);
}
public void mouseClicked(MouseEvent e)
{
if(e.getClickCount()==2)
System.out.println("鼠标双击"+clickCount++);
if(e.getClickCount()==1)
System.out.println("鼠标点击"+clickCount++);
}
});
b.addKeyListener(new KeyAdapter()
{
public void keyPressed(KeyEvent e)
{
//e.getKeyChar();获取所按键的字符(单字符)
//e.getKeyCode();获取所按键的值
//e.getKeyText(int);获取值所代表的键(可以是多字符键)
//System.out.println(KeyEvent.getKeyText(e.getKeyCode())+"..."+e.getKeyCode());
if(e.getKeyCode()==KeyEvent.VK_ESCAPE);
System.exit(0);
if(e.isControlDown()&&e.getKeyCode()==KeyEvent.VK_ENTER)
System.out.println("ctrl+enter");
}
});
tf.addKeyListener(new KeyAdapter(){
public void keyPressed(KeyEvent e)
{
int code=e.getKeyCode();
if(!(code>=KeyEvent.VK_0&&code<=KeyEvent.VK_9))
{
System.out.println("非法字符");
e.consume();
}
}
});
b.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e)
{
System.out.println("按钮活动");
}
});
}
}