zoukankan      html  css  js  c++  java
  • 黑马程序员:Java基础总结----GUI图形化界面

    黑马程序员:Java基础总结



    GUI图形化界面

      ASP.Net+Android+IO开发 .Net培训 、期待与您交流!





     
    GUI(Graphical User Interface)图形化界面编程总结
    Java.Awt:Abstract Window ToolKit(抽象窗口工具包)
    Javax.Swing:

    图形化界面基本设置:
    设置窗体大小:setSize(长,宽);
    设置窗体位置:setLocation(距离左,距离上);setBounds(长,宽,距离左,距离上);
    设置布局:setLayout(new FlowLayout());
    使窗体可见:setVisible(true);
    事件监听机制:

    事件监听机制的特点:
    1,事件源。
    2,事件。
    3,监听器。
    4,事件处理。
    事件源:就是awt包或者swing包中的那些图形界面组件。
    事件:每一个事件源都有自己特有的对应事件和共性事件。
    监听器:将可以触发某一个事件的动作(不只一个动作)都已经封装到了监听器中。
    以上三者,在java中都已经定义好了。
    直接获取其对象来用就可以了。 
    我们要做的事情是,就是对产生的动作进行处理

    Eg:编写程序,练习图形化界面编程!

    import  java.awt.*;
    import  java.awt.event.*;
    import  java.io.*;

    public   class  MyWindowDemo {
            private  Frame  f  ;
            private  TextField  tf  ;
            private  Button  but  ;
            private  TextArea  ta  ;
            private  Dialog  d  ;
            private  Label  lab  ;
            private  Button  okBut  ;

          MyWindowDemo() {
                init();
          }

            public   void  init() {
                  f  =  new  Frame( "my window"  );
                  f .setBounds(300, 100, 600, 500);
                  f .setLayout(  new  FlowLayout());
                  tf  =  new  TextField(60);
                  but   new  Button(  "转到" );
                  ta  =  new  TextArea(25, 70);
                  d  =  new  Dialog( f  "提示信息-self"  true );
                  d .setBounds(400, 200, 240, 150);
                  d .setLayout(  new  FlowLayout());
                  lab   new  Label();
                  okBut   new  Button(  "确定" );
                  d .add(  lab  );
                  d .add(  okBut  );
                  f .add(  tf );
                  f .add(  but  );
                  f .add(  ta );
                myEvent();
                  f .setVisible(  true  );
          }

            private   void  myEvent() {
                  okBut  .addActionListener(  new  ActionListener() {
                        public   void  actionPerformed(ActionEvent e) {
                              d .setVisible(  false  );
                      }
                });
                  d .addWindowListener(  new  WindowAdapter() {
                        public   void  windowClosing(WindowEvent e) {
                              d .setVisible(  false  );
                      }
                });
                  tf .addKeyListener(  new  KeyAdapter() {
                        public   void  keyPressed(KeyEvent e) {
                              if  (e.getKeyCode() == KeyEvent.  VK_ENTER )
                                  showDir();
                      }
                });
                  but  .addActionListener(  new  ActionListener() {
                        public   void  actionPerformed(ActionEvent e) {
                            showDir();
                      }
                });
                  f .addWindowListener(  new  WindowAdapter() {
                        public   void  windowClosing(WindowEvent e) {
                            System. exit(0);
                      }
                });
          }

            private   void  showDir() {
                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 +  " "  );
                      }
                }  else  {
                      String info =  "您输入的信息:"  + dirPath +  "是错误的。请重输"  ;
                        lab  .setText(info);
                        d .setVisible(  true  );
                }
          }

            public   static  void  main(String[] args) {
                  new  MyWindowDemo();
          }
    }





    菜单:

    MenuBar 菜单整体;
    Menu 包含于MenuBar中;MenuItem包含于Menu中!
    以上3个关系添加用add();
    将MenuBar放进Frame中用setMenuBar();
    FileDialog.LOAD:打开的mode
    FileDialog.Save:保存的mode

    练习:一个简易的记事本

    import  java.awt.*;
    import  java.awt.event.*;
    import  java.io.*;

    public  class  MyMenuDemo {
            private  Frame  f  ;
            private  TextArea  ta  ;
            private  MenuBar  mb  ;
            private  Menu  me  ;
            private  MenuItem  miNew  ,  miSave  ,  miLoad  ;
            private  File  file  ;
            private  FileDialog  openDia  ,  saveDia  ;

          MyMenuDemo() {
                init();
          }

            public  void  init() {
                  f  =  new  Frame( "万琪--记事本"  );
                  f .setBounds(300, 100, 650, 600);
                  ta  =  new  TextArea();
                  // ta.setBounds(302,105,400,300);
                  // f.setLayout(new FlowLayout());//为什么设置成了流式布局之后再设置文本区域没有效果
                  mb  =  new  MenuBar();
                  me  =  new  Menu( "文件(F)"  );
                  miNew  =  new  MenuItem( "新建" );
                  miSave  =  new  MenuItem( "保存(S)" );
                  miLoad  =  new  MenuItem( "打开(O)" );
                  mb .add(  me );
                  me .add(  miNew );
                  me .add(  miLoad );
                  me .add(  miSave );
                  f .setMenuBar(  mb );
                  f .add(  ta );
                  openDia  =  new  FileDialog( f ,  "打开文件" , FileDialog.  LOAD );
                  saveDia  =  new  FileDialog( f ,  "保存文件" , FileDialog.  SAVE );
                myEvent();
                  f .setVisible(  true );
          }

            public  void  myEvent() {
                  f .addWindowListener(  new  WindowAdapter() {
                        public  void  windowClosing(WindowEvent e) {
                            System. exit(0);
                      }
                });
                  miLoad .addActionListener( new  ActionListener() {
                        public  void  actionPerformed(ActionEvent e) {
                              openDia .setVisible( true );
                            String dirPath =  openDia .getDirectory();
                            String fileName =  openDia .getFile();
                              if  (dirPath ==  null  || fileName ==  null )
                                    return ;
                              ta .setText(  "" );
                              file  =  new  File(dirPath, fileName);
                              try  {
                                  BufferedReader bufr =  new  BufferedReader( new  FileReader(
                                                file ));
                                  String line =  null ;
                                    while  ((line = bufr.readLine()) !=  null ) {
                                          ta .append(line +  " " );
                                  }
                                  bufr.close();
                            }  catch  (IOException ex) {
                                    throw  new  RuntimeException( "读取失败" );
                            }
                      }
                });
                  miSave .addActionListener( new  ActionListener() {
                        public  void  actionPerformed(ActionEvent e) {
                              if  ( file  ==  null ) {
                                    saveDia .setVisible( true );
                                  String dirPath =  saveDia .getDirectory();
                                  String fileName =  saveDia .getFile();
                                    if  (dirPath ==  null  || fileName ==  null )
                                          return ;
                                    file  =  new  File(dirPath, fileName);
                            }
                              try  {
                                  BufferedWriter bufw =  new  BufferedWriter( new  FileWriter(
                                                file ));
                                  String text =  ta .getText();
                                  bufw.write(text);
                                  bufw.close();
                            }  catch  (IOException ex) {
                                    throw  new  RuntimeException( "" );
                            }
                      }
                });
          }

            public  static  void  main(String[] args) {
                  new  MyMenuDemo();
          }
    }



    打jar包的过程:
    1、 编译包 jar –cvf jar名 包名
    2、 写一个文件main-class: 包名.类名【加个回车】
    3、 jar –cvfm jar名 文件名 包名
    配置jar执行的过程:
    工具---文件夹选项---文件类型---新建---文件扩展名jar
    然后确定----高级----修改图标-----open------javaw的路径—jar即可!





      ASP.Net+Android+IO开发 .Net培训 、期待与您交流!


  • 相关阅读:
    从 OKR 工作法到 OKRs-E,落地OKR不能错过的转变
    OKR : 不要让目标仅仅成为口号
    [MySQL]Software caused connection abort: recv failed 问题分析与解决
    VS2010 vcpkgsrv.exe进程CPU占用高的解决方法
    Lync Server 2013企业版部署系列之九:前端部署后续工作
    Lync Server 2013企业版部署系列之八:安装lync server系统
    Lync Server 2013企业版部署系列之七:使用拓扑生成器规划拓扑
    Lync Server 2013企业版部署系列之六:AD准备
    Lync Server 2013企业版部署系列之五:前端服务器软件准备
    Lync Server 2013企业版部署系列之四:SQL准备
  • 原文地址:https://www.cnblogs.com/jiangu66/p/3177734.html
Copyright © 2011-2022 走看看