AWT= abstract window toolkit 抽象窗口工具包
class component 是所有java图形界面组件的抽象基类
jbuilder 9的光标位置的修改:进入Tool 然后输入编辑里面 把粗体勾去
事件监视器的类实现了WindowListener接口
要实现这个接口要 import java.awt.event包
Public abstract class WindowAdapter
windowAdapter 空实现了WindowListener 的全部方法,那么我们直接去NEW一个WindowAdapter用处不大,所以把其制定为了抽象类,所以我们只需要派生出一个子类,然后重写我们要的方法就OK了
框架中加Panel,Panel中加控件
方法中匿名内部类中要访问方法的局部变量的话 要把局部变量设置为final类型
菜单的组成: MenuBar Menu MenuItem
在框架中加如MenuBar 要用到 setMenuBar()
文本框架分为:(TextFile)文本域 (TextArea)文本区
文本域只能输入单行文本
其他组件 比如choice
package CSDN.luokan;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
public class SetFrame extends Frame {
private Panel border;
private Panel flow;
private Panel grid;
private Panel card;
public SetFrame(String title)//构造setFrame,传递设置标题
{
super(title);//改Frame的title
setSize(600,500);
setLocation(200,200);
setBackground(Color.yellow);
setBoderPanel();
setFlowPanel();
setGridPanel();
setCardLayout();
setLayout(new GridLayout(2,2));//框架的布局
add(border);
add(flow);
add(grid);
add(card);
//窗口监控器
addWindowListener(new WindowAdapter()
{
public void windowClosing(WindowEvent e)
{
System.exit(0);
}
});
//创建菜单
MenuBar mb1=new MenuBar();
Menu m1=new Menu("create");
Menu m2=new Menu("extend");
MenuItem mia=new MenuItem("exit");
//实现Menuitem的退出功能呢个
mia.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
MenuItem mib=new MenuItem("open");
m2.add(mia);
m1.add(mib);
mb1.add(m1);
mb1.add(m2);
setMenuBar(mb1);
//对话框弹出后,读取文本文件
//final TextField tf=new TextField(29);//指定为29列
final TextArea ta=new TextArea();
flow.add(ta);
//怎么弹出一个对话框(FileDialog)
mib.addActionListener(new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
FileDialog fd=new FileDialog(new Frame(),"弹出窗口",FileDialog.LOAD);
// FileDialog.LOAD为读取模式 另外一种为SAVE
fd.show();
//读取文件
String strFile =fd.getDirectory()+ fd.getFile();//得到路径和文件名字
if(strFile!=null)
{//读取文件内容
try{
FileInputStream fis =new FileInputStream(strFile);
byte []buf=new byte[10*1024];
int len = fis.read(buf);
ta.append(new String(buf,0,len));
fis.close();
}catch(Exception e1)
{
e1.printStackTrace();
}
}
}
});
}
//一下分别设置4个Panel,分别在4个panel中加入不同的控件
public void setBoderPanel()
{
border =new Panel();
border.setLayout(new BorderLayout());
Button b1=new Button("NORTH");
Button b2=new Button("SOUTH");
Button b3=new Button("WEST");
Button b4=new Button("EAST");
Button b5=new Button("CENER");
border.add(b1,BorderLayout.NORTH);
border.add(b2,BorderLayout.SOUTH);
border.add(b3,BorderLayout.WEST);
border.add(b4,BorderLayout.EAST);
border.add(b5,BorderLayout.CENTER);
}
public void setFlowPanel()
{
flow=new Panel();
flow.setLayout(new FlowLayout());
Button b6=new Button("左");
Button b7=new Button("右");
b6.addActionListener(new ActionListener()//b6按钮实现的功能
{
@Override
public void actionPerformed(ActionEvent e) {
((Button)e.getSource()).setLabel("右");
}
});
flow.add(b6);
flow.add(b7);
}
public void setGridPanel()
{
grid=new Panel();
grid.setLayout(new GridLayout(2,3,2,3));
Button b8=new Button("1");
Button b9=new Button("2");
Button b10=new Button("3");
Button b11=new Button("4");
grid.add(b8);
grid.add(b9);
grid.add(b10);
grid.add(b11);
}
public void setCardLayout()
{ final CardLayout c1= new CardLayout();//内部类访问的数据 要final类型
card=new Panel();
card.setLayout(c1);
Button b12=new Button("男");
Button b13=new Button("女");
Button b14=new Button("人妖");
//实现翻牌的效果
ActionListener al=new ActionListener()
{
@Override
public void actionPerformed(ActionEvent e) {
c1.next(card);
}
};
b12.addActionListener(al);
b13.addActionListener(al);
b14.addActionListener(al);
card.add(b12,"1");//要加约束字符串,可以自己取
card.add(b13,"2");
card.add(b14,"3");
}
public static void main(String [] args)
{
SetFrame f=new SetFrame("itheima");
f.show();
}
}