zoukankan      html  css  js  c++  java
  • Java GUI快速入门

    1.GUI的介绍

    1.1GUI概述

      早期,电脑向用户提供的是单调、枯燥、纯字符状态的“命令行界面(CLI)”。就是到现在,我们还可以依稀看到它们的身影:在Windows中开个DOS窗口,就可看到历史的足迹。后来,Apple公司率先在电脑的操作系统中实现了图形化的用户界面(Graphical User Interface,简称GUI),但由于Apple公司封闭的市场策略,自己完成电脑硬件、操作系统、应用软件一条龙的产品,与其它PC不兼容。这使得Apple公司错过了一次一统全球PC的好机会。
      后来,Microsoft公司推出了风靡全球的Windows操作系统,它凭借着优秀的图形化用户界面,一举奠定了操作系统标准的地位。这也造就了世界首富---比尔.盖茨和IT业的泰山北斗微软公司。
      在这图形用户界面风行于世的今天,一个应用软件没有良好的GUI是无法让用户接受的。而Java语言也深知这一点的重要性,它提供了一套可以轻松构建GUI的工具。在本章和下一章中,我们将向你充分证明这一点。

    1.2Java提供了三个主要包做GUI开发:

    java.awt 包 – 主要提供字体/布局管理器

    javax.swing 包[商业开发常用] – 主要提供各种组件(窗口/按钮/文本框)

    java.awt.event 包 – 事件处理,后台功能的实现。

    2.Swing组件

    如图所示:swing组件主要可分为三个部分,后面会详细介绍

    (1)顶层容器::常用有JFrame,JDialog

    (2)中间容器:JPanel,JOptionPane,JScrollPane,JLayeredPane 等,主要以panel结尾。

    (3)基本组件:JLabel,JButton,JTextField,JPasswordField,JRadioButton 等。

    2.1顶层容器介绍

    #         

    组件         

    描述

    1         

    JFrame         

    一个普通的窗口(绝大多数 Swing 图形界面程序使用 JFrame 作为顶层容器)

    2         

    JDialog         

    对话框

    2.2中间容器

    #         

    组件         

    描述

    1         

    JPanel (相当于div)

    一般轻量级面板容器组件(作为JFrame中间容器)

    2         

    JScrollPane         

    带滚动条的,可以水平和垂直滚动的面板组件

    3         

    JSplitPane         

    分隔面板

    4         

    JTabbedPane         

    选项卡面板

    5         

    JLayeredPane         

    层级面板

    2.3基本组件

    #         

    组件         

    描述

    1         

    JLabel

    标签

    2         

    JButton         

    按钮

    3         

    JRadioButton         

    单选按钮

    4         

    JCheckBox         

    复选框

    5         

    JToggleButton         

    开关按钮

    6         

    JTextField         

    文本框

    7         

    JPasswordField         

    密码框

    8         

    JTextArea         

    文本区域

    9         

    JComboBox         

    下拉列表框

    10         

    JList         

    列表

    11         

    JProgressBar         

    进度条

    12         

    JSlider         

    滑块

    3.API介绍

    3.1Jframe组件

    JFrame frame = new JFrame("HelloWorldSwing");

      // 创建及设置窗口

    frame.setDefaultLookAndFeelDecorated(true);

     // 确保一个漂亮的外观风格

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    设置默认的关闭窗口

    frame.pack();

       // 显示窗口

    frame.setVisible(true);

    //这个最好放在最后,不然会出现视图看不到的情况

    frame.setBounds(600, 300, 500, 400);

    设置窗口的x,y位置,窗口大小x,y.

    frame.add(panel)

    添加panel面板到容器

    frmIpa.getContentPane().add(panel, BorderLayout.NORTH);

    添加面板到主窗口,布局在北面

    frmIpa.getContentPane().add(scrollPane, BorderLayout.CENTER);

    添加可滚动面板到主窗口,布局在中间

    3.2Panel组件

    Jpanel

    JPanel panel = new JPanel();

    创建面板容器

    panel.add(button);

    添加按钮到面板

    JOptionPane

    JOptionPane.showMessageDialog(panel3, "没有选中任何文件", "提示", JOptionPane.WARNING_MESSAGE);

    弹出提示框到panel容器

    JScrollPane

    JScrollPane scrollPane = new JScrollPane();

    创建可滚动面板

    scrollPane.setViewportView(textArea);

    设置面板内容

    3.3功能组件

    JLabel

     JLabel label = new JLabel("Hello World");

    添加标签

    Jbutton

    JButton button = new JButton("选择文件");

    创建按钮

    button.addActionListener(new ActionListener() {}

    添加操作按钮后的事件监听器

    JFileChooser

     jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES );

    // 设置文件对话框

    jfc.showSaveDialog(frmIpa);

    // 显示打开的文件对话框

    jfc.getSelectedFile();

    // 获取选择器选择的文件

    JTextArea

    JTextArea textArea = new JTextArea();

    创建文本区域

    textArea.setText(content);

    设置内容

    4.案例代码

    4.1UI介绍

    主窗口Jframe,

        Jframe添加2个Jpanel面板,

             北面Jpanel添加JButton,JButton打开JFileChooser文件对话框。

             中间JScrollPane添加JTextArea文本区域,文本区域按各自业务逻辑来处理。

    4.2代码

     1 import java.awt.BorderLayout;
     2 import java.awt.event.ActionEvent;
     3 import java.awt.event.ActionListener;
     4 import java.io.File;
     5 import javax.swing.JButton;
     6 import javax.swing.JFileChooser;
     7 import javax.swing.JFrame;
     8 import javax.swing.JOptionPane;
     9 import javax.swing.JPanel;
    10 import javax.swing.JScrollPane;
    11 import javax.swing.JTextArea;
    12  
    13 public class IpaUI {
    14     public static JFrame frmIpa;
    15     public JTextArea textArea;
    16  
    17     public IpaUI() {
    18         // 窗口框架
    19         frmIpa = new JFrame();
    20         frmIpa.setTitle("ipa工具类");
    21         frmIpa.setBounds(600, 300, 500, 400);
    22         frmIpa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    23  
    24         // 面板1
    25         JPanel panel = new JPanel();
    26         frmIpa.getContentPane().add(panel, BorderLayout.NORTH);
    27         JButton button = new JButton("选择文件");
    28         // 监听button的选择路径
    29         button.addActionListener(new ActionListener() {
    30             @Override
    31             public void actionPerformed(ActionEvent e) {
    32                 // 显示打开的文件对话框
    33                 JFileChooser jfc = new JFileChooser();
    34                 jfc.showSaveDialog(frmIpa);
    35                 try {
    36                     // 使用文件类获取选择器选择的文件
    37                     File file = jfc.getSelectedFile();//
    38                     //这里是我的业务需求,各位不必照抄
    39 //                    String content = IpaService.getIpaInfoMap(file.toString());
    40 //                    textArea.setText(content);
    41                 } catch (Exception e2) {
    42                     JPanel panel3 = new JPanel();
    43                     JOptionPane.showMessageDialog(panel3, "没有选中任何文件", "提示", JOptionPane.WARNING_MESSAGE);
    44                 }
    45             }
    46         });
    47         panel.add(button);
    48  
    49         // 可滚动面板
    50         JScrollPane scrollPane = new JScrollPane();
    51         frmIpa.getContentPane().add(scrollPane, BorderLayout.CENTER);
    52         textArea = new JTextArea();
    53         scrollPane.setViewportView(textArea);
    54         //这个最好放在最后,否则会出现视图问题。
    55         frmIpa.setVisible(true);
    56     }
    57 }

    5.插件介绍WindowBuilder

        总算骗大家看完文章,其实最方便的方法是用插件制作,当然大家先了解完代码原理是最好的哈哈。eclispe安装windowbuilder有两种方式,一种是离线安装,一种是在线安装。

    5.1搜索WindowBuilder

    找到http://www.eclipse.org/windowbuilder/download.php

    根据自己的eclipse版本选择,因为我的是4.8版本了,所以只能在线安装。

    5.2.在eclipse的中安装

    (1)选择Help - Eclipse MarketPlace

    (2) 在商店中搜索windowbuilder ,会出现WindowBuilder插件

    (3)一路下一步,进行安装,等待安装结束重启eclipse即可。

    5.3WindowBuilder插件的使用

    (1)在Eclipe菜单中File - New -Other ,选中WindowBuilder - Swing Designer - JFrame。

    (2)打开文件,点击左下角的Design进入视图模式,左边对应代码模式

    左上是整个视图结构,左下是单个结构的属性,可以在这里修改窗口的一些属性,

    中间是整个swing的界面按钮,前面第二点介绍过的,这里就不说了,

    右边就是视图了,可以点击按钮往视图里面添加,如下图。

  • 相关阅读:
    js实现图片加载特效(从左到右,百叶窗,从中间到两边)
    Netbeans不能正常启动glassfish或者部署失败不能运行的问题
    Netbeans 中创建数据连接池和数据源步骤(及解决无法ping通问题)
    Codeforces Round #277(Div. 2) (A Calculating Function, B OR in Matrix, C Palindrome Transformation)
    eclipes创建一个web项目web.xml不能自动更新的原因(web.xml和@WebServlet的作用)
    eclipse开发web应用程序步骤(图解)
    正则表达式之IP地址检验
    正则表达式实现条件替换功能
    实现单词大小写不敏感的正则表达式的匹配!
    codeforces C. Bits(数学题+或运算)
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14072277.html
Copyright © 2011-2022 走看看