【GUI开发】Swing的一本极好的入门教材

 1 // Java大学简明教程 Deitel 著 简单易懂,详细讲Swing图形界面开发
 2
 3 package first;
 4
 5 import java.awt.*;
 6 import javax.swing.*;
 7
 8
 9 public class WelcomeSwing extends JFrame
10 {
11     private JLabel textJLabel;
12     //private JLabel pictureJLabel;
13
14     public WelcomeSwing()
15     {
16         createUserInterface();
17     }
18
19     private void createUserInterface()
20     {
21         Container contentPane = getContentPane();
22         contentPane.setBackground(Color.YELLOW);
23         contentPane.setLayout(null);
24
25         textJLabel = new JLabel();
26         textJLabel.setText("Welcome to Java Programming!");
27         textJLabel.setLocation(35,0);
28         textJLabel.setSize(550,88);
29         textJLabel.setFont(new Font("SanSerif",Font.PLAIN,36));
30         contentPane.add(textJLabel);
31
32         //pictureJLabel = new JLabel();
33         //pictureJLabel.setIcon(new ImageIcon());
34
35         setTitle("WelcomeSwing");
36         setSize(608,413);
37         setVisible(true);
38     }// end mothod createUserInterface
39
40     public static void main(String[] args)
41     {
42         WelcomeSwing application = new WelcomeSwing();
43         application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
44     }// end method main
45
46 }

学习Swing,这本书恐怕是最浅显易懂的,这是Deitel一贯的风格,通过Swing界面来学习Java的基本语法和一些API当初买Java大学教程(2003版),里面的GUI是awt,是JDK1.0的例子,里面applet的action方法目前已完全过时在JDK1.8上,里面的例子有的还可以运行出来,但文本框输入数据后回车,界面已无法响应回车的事件消息那是一本通俗易懂的好书,可惜已没什么温习的效用了,65块钱!

重温一下awt,这是第一支学习的Java程序呦
 1 // A first program in Java
 2 package first;
 3 import java.applet.Applet;
 4 import java.awt.Graphics;
 5
 6 public class Wellcom extends Applet{
 7     public void paint(Graphics g){
 8         g.drawString("Welcome to Java programing!", 5, 50);
 9         g.drawString("Welcome to Java programing!", 5, 100);
10     }
11 } 

诚实的说,Deitel的书是好书,但这本他写的Java大学教程(2003.4版),使用awt,当年却让我这个两眼一抹黑的菜菜,深感java做GUI界面的无比乏味

当时个人机器配置较差,运行个applet都挺费劲,看着那呆板的方框,又丑又慢的缓缓挤上屏幕,一种厌恶感油然而生。。。

更重要的,学习java的基本语法,不应该采用这种GUI的教学方式!因为,这样对于初学者,甚至对oop都没有任何概念,一开始就会陷入一大堆不必要的知识点当中,比如类的继承,GUI界面的事件消息响应机制,子类的方法覆盖,一些跟GUI相关的特定对象到底是怎么回事,比如,这个可恶的Graphics g ,他奶奶的到底是啥东东尼???等等等等,真是非常的麻烦!

无非为了就是更加形象化那么一点,但却极可能直接挫伤初入门者的积极性,搞的一头雾水,更何况,那awt界面还丑的出奇,sun设计这种烂东西,简直就是在侮辱java本身,结果没过多久,awt就欧了。

事实证明,虽然Deitel后来也出了Swing版的java基础教程(如这里推荐的),但他还是在java大学基础教程第六版里,采取了其他java教材中管用的经典:

public static void main(String[] args){

  System.out.println("Welcome to Java programming!");

}

并用起了命令行编译运行java程序的教学方式

这种转变说明了什么?

这说明了,10年前,是一个无比浮躁的时代,是一个沉迷于GUI界面至上的时代,那个时代没,VB,Delphi满天飞,一个视GUI能使教学更简单更方便的时代,这,绝对是错误的

时光飞梭,10多年后的今天,在配置极其一般的机器上,swing界面都可以跑的很流畅,当用eclipse打开上面的那个程序时,弹出一个亮丽的欢迎界面,这才是当年梦想中的java,或许当时我不知道有swing,也或者swing根本不能达到现在的流畅,不管怎么说,一个awt式的语法教程,让我和Java擦肩而过。。。

幸好,在鬼使神差的从一个久远的目录中,点击到eclipse的图标后,一切翻天覆地,大大的不同了,这,才是我想要的Java!

警告:完全没有GUI,oop的概念的初学者,如果从练习写GUI界面代码的方式来学习java基本语法,你将会误入歧途。初学者,强烈建议远离GUI编程的学习

GUI最能体现oop思想中最复杂的部分,对于完全不懂oop的初学者,却用GUI编程来接引他们进入oop式样的编程语言,真是很讽刺的一件事

时间: 2024-10-29 16:41:50

【GUI开发】Swing的一本极好的入门教材的相关文章

IntelliJ IDEA 开发swing(一)

原文:idea开发swing(一) 最近项目组需要开发一个swing小工具,以下是开发过程. 一.创建工程: 输入工程名称,选择java module,点击next 接下来什么都不选点击finish,项目创建成功. 二.配置项目: 创建的工程目录结构如下: 在src同级目录下增加以下文件夹:classes.config.db.lib.plugin.test:添加以下文件:start.bat.build.xml.如图所示: 选择swingdemo按F4显示工程配置,如图所示: 将output pa

结对编程1 —— 基于GUI和Swing的四则运算题目生成器

结对编程1 -- 基于GUI和Swing的四则运算题目生成器 合作伙伴 201421123089 周迪 201421123069 黄睿 代码地址:https://git.coding.net/H1159650478/sizeyunsuanjiaqiang.git 题目描述 我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序.进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac.Linux,web,手机上的),成为一个有基本功能.一定价值的程序.在下面

运用BeautyEye组件开发Swing登录界面Demo

import org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper; import org.jb2011.lnf.beautyeye.ch3_button.BEButtonUI; import org.jb2011.lnf.beautyeye.ch8_toolbar.BEToolBarUI; import java.awt.*; import java.awt.event.MouseEvent; import java.awt.event.MouseListen

IntelliJ IDEA 开发swing(二)

原文:idea开发swing(二) 闲话少说,书接idea开发swing(一). 程序编译完成后,需要打包发布,如果有fat_jar的同学可以通过该插件打包,这里是使用ant来打包,步骤如下: 一.编写build.xml <?xml version="1.0" encoding="UTF-8" standalone="no"?> <project default="create_jar" name="

Java -GUI开发九九乘法表

Java GUI开发九九乘法表 (1)实现目标: 利用java自带的awt包,基础控件开发一个九九乘法表,点击可以显示对应的乘法口诀. (2)控件选择: 点击--Button 显示--TextField (3)界面设计:总体设计布局 (4)主窗体编写 将程序在屏幕中央区显示 1 /*窗口居中显示*/ 2 int Win_width=fr.getWidth(); 3 int Win_Height=fr.getHeight(); 4 Toolkit kit = Toolkit.getDefaultT

Python3 GUI开发(PyQt)安装和配置

Python3 GUI开发(PyQt5)安装和配置: 下载安装好Miniconda3, 并且安装好jupyter 注意:最好关闭360杀毒软件或者把cmd加入信任,否则运行activate会有问题. 进入工作区,下载安装PyQt5,需要用镜像,不然下载网络非常不给力. pip install -i https://pypi.tuna.tsinghua.edu.cn/simple PyQt5 pip install -i https://pypi.tuna.tsinghua.edu.cn/simp

熟悉PyQt5 与 Eric6 的 GUI 开发

用 Eric6 与 PyQt5 结合,非常方便的实现界面与逻辑分离,满足python的极速GUI编程,你只需要关注程序的逻辑实现,而不需要在界面上花很多时间. 可以说这是一对GUI开发完美的组合! 为了方便使用在正式开始之前我们先简单配置一下Eric6的项目工作区 配置Eric6 打开Eric6 选择菜单栏 设置-首选项 在左侧列表中选择项目-多重项目,点击右侧图标后选定硬盘中的一个位置,我这里是F:\Python\PyQt5文件夹.选好后点击右下方的OK按钮. 简单配置后,让我们正式开始体验极

python3+PyQt5+pycharm桌面GUI开发环境搭建

python3+PyQt5+pycharm桌面GUI开发环境搭建 一.安装python PyQt5所支持的python版本是不低于3.5版本 python3.5以上的版本安装:https://www.python.org/downloads/windows/ 二.安装PyQt5 pip install PyQt5 pip install PyQt5-tools 三.配置pycharm 官网下载安装pycharm:https://www.jetbrains.com/pycharm/ 1,点击:Fi

现代Java服务端开发核心技术之分布式数据库中间件MyCAT入门

现代Java服务端开发核心技术之分布式数据库中间件MyCAT入门 现代Java服务端开发核心技术 MyCAT系统环境搭建 如下列表展示了搭建MyCAT运行时环境所需要的软件及其版本说明. 软件名称 软件版本 os centos7.5 JDK JDK1.8u191 MySQL MySQL5.7 Mycat Mycat1.6.5 Navicat Navicat12.08 在非集群的环境下,MyCAT仅仅依赖JDK就可以良好的运行在Windows,Linux,macOS等操作系统之上. CentOS7