精华内容
下载资源
问答
  • Java-GUI快速入门

    万次阅读 多人点赞 2018-08-31 17:16:24
    1.2Java提供了三个主要包做GUI开发: 2.Swing组件 2.1顶层容器介绍 2.2中间容器 2.3基本组件 3.API介绍 3.1Jframe组件 3.2Panel组件 3.3功能组件 4.案例代码 4.1UI介绍 4.2代码 5.插件介绍WindowBuilder...

    目录

    1.GUI的介绍

    1.1GUI概述

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

    2.Swing组件

    2.1顶层容器介绍

    2.2中间容器

    2.3基本组件

    3.API介绍

    3.1Jframe组件

    3.2Panel组件

    3.3功能组件

    4.案例代码

    4.1UI介绍

    4.2代码

    5.插件介绍WindowBuilder

    5.1搜索WindowBuilder

    5.2.在eclipse的中安装

    5.3WindowBuilder插件的使用


    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.案例代码

    这个UI是用来读取ipa文件info.plist中的信息,有需要的朋友可以去下面链接看看

    https://blog.csdn.net/qq_42035966/article/details/82086462

    4.1UI介绍

    主窗口Jframe,

        Jframe添加2个Jpanel面板,

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

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

     

    4.2代码

    import java.awt.BorderLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JOptionPane;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    
    public class IpaUI {
    	public static JFrame frmIpa;
    	public JTextArea textArea;
    
    	public IpaUI() {
    		// 窗口框架
    		frmIpa = new JFrame();
    		frmIpa.setTitle("ipa工具类");
    		frmIpa.setBounds(600, 300, 500, 400);
    		frmIpa.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    		// 面板1
    		JPanel panel = new JPanel();
    		frmIpa.getContentPane().add(panel, BorderLayout.NORTH);
    		JButton button = new JButton("选择文件");
    		// 监听button的选择路径
    		button.addActionListener(new ActionListener() {
    			@Override
    			public void actionPerformed(ActionEvent e) {
    				// 显示打开的文件对话框
    				JFileChooser jfc = new JFileChooser();
    				jfc.showSaveDialog(frmIpa);
    				try {
    					// 使用文件类获取选择器选择的文件
    					File file = jfc.getSelectedFile();//
    					//这里是我的业务需求,各位不必照抄
    //					String content = IpaService.getIpaInfoMap(file.toString());
    //					textArea.setText(content);
    				} catch (Exception e2) {
    					JPanel panel3 = new JPanel();
    					JOptionPane.showMessageDialog(panel3, "没有选中任何文件", "提示", JOptionPane.WARNING_MESSAGE);
    				}
    			}
    		});
    		panel.add(button);
    
    		// 可滚动面板
    		JScrollPane scrollPane = new JScrollPane();
    		frmIpa.getContentPane().add(scrollPane, BorderLayout.CENTER);
    		textArea = new JTextArea();
    		scrollPane.setViewportView(textArea);
    		//这个最好放在最后,否则会出现视图问题。
    		frmIpa.setVisible(true);
    	}
    
    }
    ​

     

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

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

    展开全文
  • java gui源代码
  • JAVA-GUI_Project 这是我的第一个具有Java Gui基础的GUI ATM Java项目
  • Java计算器GUI

    2007-12-30 11:28:04
    简单JAVA 计算器GUI
  • java-GUI反编译

    2018-08-06 10:20:12
    java-GUI反编译 打开文件解压。 jd-gui.exe打开 file选中需要反编译的class 然后导出。
  • JAVA-GUI学生管理系统

    2021-07-08 09:45:03
    JAVA-GUI学生管理系统
  • java简单GUI

    2012-11-03 10:06:46
    简单的javaGUI界面。基本上就是java课上老师的实验内容,可以参考。
  • JavaGUI设计

    2015-06-15 18:05:47
    第六章 JavaGUI设计 6.1 java.awt 6.2 AWT组件 6.3窗口和菜单设计 6.4布局管理 6.5Java图形设计
  • matlab gui计算器代码 CM10228-Coursework-java-GUI CM10228 Coursework java GUI 加微信 qiushiwenmeng
  • 该系统基于mysql+eclipse+jdk1.6(内部有注释,系统完整) 实现3张表的增删查改操作 简单GUI操作界面 适合课程设计
  • 这是一个关于 Java GUI 的教程。 由詹姆斯温撰写。 ###目录 ###术语和定义: ####GUI 代表图形用户界面 允许用户与程序或机器交互的可视化界面 使用图标、按钮、窗口和其他视觉组件 ####AWT 代表抽象窗口...
  • Billards-Billing-System-By-Java-GUI 台球计费系统通过 Java GUI
  • 文档JAVA-GUI

    2016-02-19 11:50:09
    java基础,GUI基础,自己总结的笔记。
  • java swing开发学生选课系统 数据库使用MySQL 该系统主要包括学生和管理员两个用户角色 以学生角色登陆进去 学生可以查看自己的选修课情况 修改自己的个人信息 以管理员的角色登陆进去,管理员可以查看选修课的选修...

    java swing开发学生选课系统 数据库使用MySQL
    该系统主要包括学生和管理员两个用户角色 以学生角色登陆进去 学生可以查看自己的选修课情况 修改自己的个人信息
    以管理员的角色登陆进去,管理员可以查看选修课的选修情况 增加选修课,查看学生的个人情况

     

    数据库创建代码:

    /*
     Navicat Premium Data Transfer
    
     Source Server         : localhost
     Source Server Type    : MySQL
     Source Server Version : 50527
     Source Host           : localhost:3306
     Source Schema         : chenji
    
     Target Server Type    : MySQL
     Target Server Version : 50527
     File Encoding         : 65001
    
     Date: 13/10/2019 11:34:33
    */
    
    SET NAMES utf8mb4;
    SET FOREIGN_KEY_CHECKS = 0;
    
    -- ----------------------------
    -- Table structure for stu
    -- ----------------------------
    DROP TABLE IF EXISTS `stu`;
    CREATE TABLE `stu`  (
      `id` int(11) NOT NULL AUTO_INCREMENT,
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `Chinese` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `Math` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `English` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `class` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      PRIMARY KEY (`id`) USING BTREE
    ) ENGINE = InnoDB AUTO_INCREMENT = 789457 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    -- ----------------------------
    -- Records of stu
    -- ----------------------------
    INSERT INTO `stu` VALUES (123456, '清明', '80', '90', '100', '1203班');
    INSERT INTO `stu` VALUES (789456, '史蒂夫', '100', '100', '80', '1203班');
    
    -- ----------------------------
    -- Table structure for teacher
    -- ----------------------------
    DROP TABLE IF EXISTS `teacher`;
    CREATE TABLE `teacher`  (
      `name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `course` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `class` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `time` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL,
      `age` int(11) NULL DEFAULT NULL
    ) ENGINE = InnoDB CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact;
    
    -- ----------------------------
    -- Records of teacher
    -- ----------------------------
    INSERT INTO `teacher` VALUES ('天明', '语文', '1203班', '8', 18);
    INSERT INTO `teacher` VALUES ('王老师', '数学', '123456班', '60', 30);
    
    SET FOREIGN_KEY_CHECKS = 1;
    

     

    展开全文
  • Java】浅谈JavaGUI开发

    千次阅读 2019-11-29 22:07:36
    JavaGUI开发

    GUI是什么?

    图形用户界面(Graphical User Interface,简称 GUI,又称图形用户接口)是指采用图形方式显示的计算机操作用户界面。
    图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。与通过键盘输入文本或字符命令来完成例行任务的字符界面相比,图形用户界面有许多优点。图形用户界面由窗口、下拉菜单、对话框及其相应的控制机制构成,在各种新式应用程序中都是标准化的,即相同的操作总是以同样的方式来完成,在图形用户界面,用户看到和操作的都是图形对象,应用的是计算机图形学的技术。
    (上面的介绍来自百度百科,我说的肯定没他规范,有条件的可以查阅一些更好的百科……这里不能提怎么查,懂吧~~)

    Java的GUI怎么样?

    GUI方面的JFC(Java Foundation Classes,Java基础类库)包含AWT、Swing、辅助功能API、2D API以及拖放API。更强大JavaFX早已从JDK中剥离出去,下载JDK8以后的版本应该是不存在JavaFX的,而JavaFX甚至能提供给我们Web般的开发效果,这可比Swing好看太多了(AWT过于丑陋已经无法被拿来探讨),只不过也麻烦很多。

    AWT(Abstract Window Toolkit),中文译为抽象窗口工具包,该包提供了一套与本地图形界面进行交互的接口,是Java提供的用来建立和设置Java的图形用户界面的基本工具。AWT中的图形函数与操作系统所提供的图形函数之间有着一一对应的关系,称之为peers,当利用AWT编写图形用户界面时,实际上是在利用本地操作系统所提供的图形库。由于不同 操作系统的图形库所提供的样式和功能是不一样的,在一个平台上存在的功能在另一个平台上则可能不存在。为了实现Java语言所宣称的“一次编写,到处运行(write once, run anywhere)”的概念,AWT不得不通过牺牲功能来实现平台无关性,也即AWT所提供的图形功能是各种操作系统所提供的图形功能的交集。

    Swing是一个用于开发Java应用程序用户界面的开发工具包。
    以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件来创建优雅的用户界面。 工具包中所有的包都是以swing作为名称,例如javax.swing,javax.swing.event。

    Sun公司已于2008年12月05日发布了JavaFX技术的正式版,它使开发者能利用 JavaFX 编程语言开发互联网应用程序(RIA)。该产品于2007年5月在JavaOne大会上首次对外公布。JavaFX技术主要应用于创建Rich Internet Applications(RIAs)。当前的JavaFX包括JavaFX脚本和JavaFX Mobile(一种运营于行动装置的操作系统),今后JavaFX将包括更多的产品。JavaFX Script编程语言(以下称为JavaFX)是一种declarative, statically typed(声明性的、静态类型)脚本语言。

    官方套话,说白了就是AWT不仅特别丑还系统相关、重量级,Swing可以有更好的系统无关性、挺丑,JavaFX可能会的人不太多但是看着挺好看是真的……

    GUI开发怎么学?

    斗胆讲讲本蒟蒻这一块儿的学习经历。

    我记得当时学Python进而入门编程的时候还被要求做Tkinter的GUI开发,当时就很困惑啊,这东西这么难受怎么学,程序员大佬们都是什么妖孽写得出这么厉害的UI?

    后来学Java,惊觉输入输出的不便(感兴趣可以对比Java和Python在Console输入输出的麻烦程度,C/C++都比Java简单的多),忘了在哪里看到一个说法是Java的设计者们在最初打算让Java的开发者直接使用GUI而不是命令行(他们这些神仙可能高估了我等憨批),所以对Console的I/O支持的不是很好。而且在命令行的低端与web的复杂之间需要一个“中转站”,我便有幸结缘了丑陋的JavaGUI至今……

    学习这个,开始是头铁硬编代码,一个Frame/JFrame硬着头皮用记事本敲上一个小时以上的代码,然后再cmd的编译错误下人工debug,一步一步建立起自己的GUI小程序,如今想来竟是这么有趣~~

    学了一段时间,不敢妄言会多少,但是也用过AWT和Swing开发过有趣的Demo,见过JavaFX。回顾一番,对于GUI(特别是Java这块儿)的学习我有下面的看法:

    • 学习抓住核心三大核心内容:组件与容器布局设计与管理事件监听与处理(我觉得GUI核心就这三个东西)。
    • 勤于动手,多写多练。你不练习总是不能很好地掌握,这里代码动辄百行以上,凭空想象很难入门。
    • 养成先做设计的习惯,UI设计是学问,但我们即使是开发小的Demo也应该先画画图,进行调整以后再编码实现。
    • 学会看文档以及借助其他途径,自主的解决问题,因为很多问题的答案网上基本找不到。
    • 先学会自己写,但也要学会用插件工具加快开发速度(例如Window-Builder,真香)。
    • 积累,积累多了就有一定的经验了。你若问再积累呢?那就转Web呗哈哈……
    • 思维的转换很重要,要学习MVC设计模式(MVC模式和经典的23种设计模式不是一类东西),改变固有的命令行思维。
    • 有些开发需要另起线程,还要理解匿名内部类等知识,仔细看看是蛮有趣的。

    当理解和掌握了Java GUI的开发以后,就好比一个“搭积木”、“拼拼图”的游戏过程(虽然这个过程伴随着诸多令人头秃的不好体验),慢慢的,就会渐至佳境。

    VB.NET开发工具与JavaGUI开发的开发工具界面

    先是看一下VB.NET开发工具——Visual Studio:
    在这里插入图片描述

    其实我们也都知道,VB.NET可以快速开发Windows环境下的GUI项目,VS的使用这里不加赘述,但看看它的开发方式,你可能就想:Java能不能也拖动生成然后再编码完善呢?
    这里推荐Eclipse IDE + Window-Builder插件,开发视图如下 (字用鼠标写的,太丑了,见谅)
    在这里插入图片描述
    左下角切换文本编辑器的视图和拖动窗体的视图,自己调节组件大小和进行布局管理,可以灵活添加事件监听器,从而大大简化了GUI的开发。
    由于写过Window-Builder下的Swing代码,所以学VB.NET的时候心里耐受力还是可以的。

    结语

    虽然现在大家都在学习Web开发、移动开发而较少提及桌面程序开发,更何况Java本身就是“不适合”做GUI开发的语言,有很多人觉得学而无益,故而不愿学习这块儿的技术。
    其实呢,我觉得但凡是一种技术都有它存在的意义,只不过你可能因为个人的精力和规划有所倾斜或者专攻。之前玩的Logisim还是Swing写的呢。尽管说没意思,可又有几个人能写到那个程度呢?
    感兴趣的可以学一学,不感兴趣的就算了,但是我觉得UI开发的思想是贯通的。特别是Swing组件本身就采用了MVC模式,若能体会到其精髓,也算不虚此行了吧。
    当然了,GUI毕竟不能当饭吃,只是请你想想:不会GUI,会不会有点遗憾呢?

    展开全文
  • java课程 GUI

    2013-12-07 21:49:03
    java课程,一小部分,介绍GUI的,我们上课老师就用它。
  • Java Gui ppt课件

    2010-06-02 14:13:18
    java gui java gui java gui java gui java gui java gui java gui java gui java gui java gui
  • Create-PDF-with-Java-GUI 如何使用 Java 创建 PDF 的 GUI 示例
  • java_GUI界面

    2014-03-02 21:29:01
    java GUI界面做的一个注册界面
  • 100个Java+GUI+swing的小程序100个Java+GUI+swing的小程序100个Java+GUI+swing的小程序
  • Java GUI打开没反应

    2019-10-28 20:14:44
    运行 GUI 后,没有窗口打开 原因: setVisible ( true ) ; 需要设置是否可见!

    运行 GUI 后,没有窗口打开
    原因:

    setVisible(true);
    

    需要设置是否可见!

    展开全文
  • java_GUI设计教程

    2013-04-23 16:06:50
    java_GUI设计教程 给那些对图形用户界面编程感到有困难的同学看
  • 由于自己的win7电脑没有自动关机的快捷方式,所以自己编写了个定时关机的小程序!程序简单易学易用,能够定时打开电脑中所有你想定时打开的文件!谢谢支持~0.
  • Java GUI 五子棋

    2021-04-06 14:36:16
    一个使用java编写的GUI五子棋项目,已经标有注释,可以运行
  • 积分管理系统java源码 JDBC-JAVA-GUI- JDBC+JAVA GUI会员积分消费管理系统源码+报告+周志
  • java gui layout API

    2018-06-02 20:46:50
    java gui layout API, java gui layout API,java gui layout API
  • mathTest java gui

    2014-06-13 19:05:15
    mathTest java gui

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 176,310
精华内容 70,524
关键字:

java怎么打开gui

java 订阅