A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© wws1214 中级黑马   /  2015-7-17 09:41  /  412 人查看  /  1 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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();
        }

}

1 个回复

倒序浏览
厉害,佩服
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马