- import java.awt.*;
- import java.awt.event.*;
- class FrameDemo
- {
- //定义图形中所需要的组件引用
- private Frame f;//框架
- private Button bu;//按钮
- //创建构造函数,就能有图形
- FrameDemo()
- {
- init();
- }
- public void init()
- {
- f = new Frame("My Frame");//创建框架,并写入标题栏
-
- f.setBounds(300,100,500,400);//设置所在位置,
- //左上角 距左 距上 自身,宽度 高度
- f.setLayout(new FlowLayout());//选择布局格式,默认流水式
- bu = new Button("My Button");//创建按键并设置按键名字
- f.add(bu);//添加组件到框架
- //加载框架上事件
- myEvent();
- //显示窗体
- f.setVisible(true);
- }
- private void myEvent()
- {
- //框架上事件发生的处理,
- f.addWindowListener(new WindowAdapter()
- {
- //点击关闭按钮,应该进行的操作
- public void windowsClosing(WindowEvent e)
- {
- System.exit(0);//退出程序
- }
- });
- //按键进行的事件监听
- bu.addActionListener(new ActionListener()
- {
- public void actionPerformed(ActionEvent e)
- {
- //System.exit(0);
- System.out.println(e.getSource()); //getSource() 最初发生 Event 的对象。 e是监听的事件的对象, e.getSource()就是获取最初发生 这个事件的对象,因为你的是点击一个按钮,因此就是获取这个按钮组件,这个是你编程的 因此可以强转为按钮组件
- Button b = (Button)e.getSource();
-
- Frame f1 = (Frame)b.getParent(); //getParent() 获得父级容器, b.getParent() 就是获得这个按钮组件是在哪个容器里面. 因为按钮组件 是在Frame组件里面,因此获得是一个Frame组件对象 其实这个里的f1,和f是一个对象.
- System.out.println(b.getParent());
- f1.add(new Button("button-"));
- f1.validate();
- }
- });
- }
-
- }
- class GuiDemo
- {
- public static void main(String[] args)
- {
- new FrameDemo();
- }
- }
复制代码 |