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的界面按钮,前面第二点介绍过的,这里就不说了,

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

  • 相关阅读:
    leetcode 29-> Divide Two Integers without using multiplication, division and mod operator
    ros topic 发布一次可能会接收不到数据
    python中的print()、str()和repr()的区别
    python 部分函数
    uiautomatorviewer错误 unable toconnect to adb
    pyqt 不规则形状窗口显示
    appium 计算器demo
    Spring 3.0 注解注入详解
    Spring Autowire自动装配
    restful 学习地址
  • 原文地址:https://www.cnblogs.com/ybqjymy/p/14072277.html
Copyright © 2011-2022 走看看