Java第05次实验提纲(Java图形界面编程)(1)

各种对话框参考代码

//输入对话框

String x = JOptionPane.showInputDialog(“请输入变量x的值:”);

System.out.println(“x=”+x);

//消息对话框:用来显示消息。

JOptionPane.showMessageDialog(null, “消息对话框”);

//确认对话框:根据不同的选择会有不同的返回值

int choice = JOptionPane. showConfirmDialog(null, “请选择”);

/*

JOptionPane.YES_OPTION

JOptionPane.NO_OPTION

JOptionPane.CANCEL_OPTION

上面的几个都是预先定义好的常量,比如

JOptionPane.YES_OPTION等于0

使用常量使代码可读性更好

*/

对话框参考资料:Java中对话框的弹出

3.改进

  1. 界面中的JTextField组件边缘与其他组件紧贴在一起,请使用BorderFactory为其添加边框。

  2. 如何让登录界面更美观一点,比如插入背景图。

题目2: NetBeans基本使用(用户信息更改模块)

  • NetBeans简介、图形界面设计器、简单布局、组件布置(如,辅助线、组件对齐等)、组件变量名

  • 事件处理代码。NetBeans常用快捷键:ctrl+\(代码提示),Tab(自动完成,比如sout,然后按tab),Alt+Insert(自动生成代码,类似Eclipse中的Alt+Shift+S)

  • 使用JPanel布置组件,设置带标题的边框。

  • 使用不同风格的外观。右键点击JFrame,选择Preview Design.

  • 按钮监听器代码中包含3中类型代码(引入MVC模式):

  1. 获取文本框数据并进行简单判断。如,name、age文本框不能为空。如果为空则弹出对话框提示“name不能为空”,并重设焦点(文本框的requestFocus方法)到相应的文本框。

  2. 业务逻辑代码:对数据按照业务要求进行判断(如,提示年龄不能小于0)与处理(如对年龄+1)。

  3. 将处理后的数据更新到下方标签。

  • 使用MVC模式解释并改造上述代码。

  • 常见问题:

  1. 组件与其变量名的对应关系。组件变量名最好要有意义,能体现出其类型,比如nameTextField就是一个显示姓名的JTextField

  2. 未将主窗体设置为主类无法启动。右键点击项目-属性(Properties)-运行(Run),设置正确的主类(Main Class)。

  3. 文本类型转化为数值类型时可能出错。常见错误:当字符串前后带空格时,当文本框输入的字符串为非数字的时候。

  • GUI程序的发布:

  • 方法1:生成可执行jar文件。参见参考资料5.NetBeans生成可执行GUI jar程序.doc

  • 方法2:创建批处理脚本Run.bat执行jar程序。

@echo off

start javaw -jar GUI1.jar

4.进阶思考:

尝试在NetBeans上操作布局管理器、添加事件处理代码,实现题目1的界面与功能。对比NetBeans自动生成的代码与自己手写的代码有何不同?(从布局管理器与事件处理代码这两个方面来分析)

题目3:数据交换与MVC模式

**演示:**DataExchangeTest.java。该文件见参考资料重要:GUI实验参考文件。**讲解:**结合课件中的数据交换例子进行代码讲解。

题目4:使用NetBeans设计复杂用户界面

演示:

  1. 添加菜单栏、菜单、菜单项等,怎么为菜单项添加事件处理程序。

  2. 为程序添加一个JDialog。为JDialog设置BorderLayout,在BoderLayout上添加JPanel后,右键点击JPanel属性-Layout-Direction设置其在BorderLayout的方位。JDialog模式设置(modal属性)。

  3. 为JPanel设置布局管理器GridLayout。

  4. 添加另一个JPanel,添加JButton,将该JPanel放到JDialog的south(可以右键点击JDialog,选择Add From Palette)。在Button中编写隐藏jDialog代码(jDialog.setVisible(false))。

  5. 使用“弹簧”(Vertical gap, Horizontal gap)调整组件位置。

  6. 在某个菜单项上添加弹出JDiaolg代码(jDialog.pack();jDialog.setVisible(true);)。

任务:

  1. 使用MVC模式仿照题目3创建一个GUI程序。

  2. 在演示的基础上增加一个新的JDialog,上面放置JTable进行题目5的展示。

题目5:在NetBeans中使用JTable

演示:

怎么在Netbeans中设置JTable控件的属性。右键点击JTable,点击Table Contents进阶:

为JTable编写自己的TableModel。可参考DefaultTableModel的实现。重要参考资料:JTable案例中如何使用JTable。详见其中的jTableDemo,使用代码控制JTable。

参考资料:

Java GUI 中的JTable-Netbeans设置Create and use Java Table in NetBeansJTable常见用法细则-主要讲DefaultTableModel的使用

题目6:其他可选题目

6.1 查看以下参考资料,并思考Student、StudentController、StudentView分别有什么用?他们之间是什么关系?在GUI程序设计中,怎么使用这种模式编写代码。

6.2 模仿Windows记事本,编写一个简易记事本。

6.3 尝试使用MVC模式编写购物车、学生管理系统、计算器等程序。

参考资料:

MVC模式简介-主要看StudentController是怎样协调Model与View

其他问题

1.系统安装JDK 9以上,在Eclipse编写Swing程序,提示javax.swing cannot be resolved to a type

**原因:**JDK 9及以上引入模块系统,java swing相关包默认没有被导入。**解决:**需要在Eclipse项目中的module-info.java加入requires java.desktop;。注意:请安装较高版本的Eclipse。

2.无法安装NetBeans,提示找不到JRE。或者安装成功,打开后,就是无法新建项目。

**原因:**NetBeans 8.2还不支持JDK 9及以上。**解决:**安装JDK 8或者安装Netbeans 9.0。有可能还需要修改netbeans安装目录\etc下的netbeans.conf文件,修改里面的netbeans_jdkhome的值为jdk8的安装目录。注意:NetBeans 9.0安装后无法运行,也可考虑通过修改netbeans_jdkhome来解决,将其设置为jdk9及以上的安装目录。参考资料:Can’t create project on Netbeans 8.2

本次实验参考资料:

重要:视频-使用Netbeans编写GUI重要:GUI实验参考文件Java中对话框的弹出JTable常见用法细则-主要讲DefaultTableModel的使用JTable用法-进阶Swing组件使用系列文章官方文档-在 NetBeans IDE 中设计 Swing GUI官方文档-在 Java GUI 应用程序中处理图像(如,设置背景图片)官网-使用Netbeans开发企业应用的一些案例官方文档-Java Tutorial-Swing

其他参考资料

Java Swing Tutorial各种计算机技术的Tutorial第一篇 开始学习JavaFXOpen JavaFXMVC模式简介-主要看StudentController是怎样协调Model与View

Java游戏参考资料

虽然使用Java开发的游戏(如MineCraft)较少,但初学Java 2D,可尝试使用Java编写一些简单的小游戏。主要学习Java游戏入门1-Java 2D games tutorial中的图形界面游戏基本原理:Basics、Animation、Moving sprites、Collision detection。知其然、知其所以然。怎么学?先把程序跑起来,然后尝试看懂程序并进行改造。

参考资料:Java游戏入门:

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

image

高效学习视频

么学?先把程序跑起来,然后尝试看懂程序并进行改造。

参考资料:Java游戏入门:

更多:Java进阶核心知识集

包含:JVM,JAVA集合,网络,JAVA多线程并发,JAVA基础,Spring原理,微服务,Zookeeper,Kafka,RabbitMQ,Hbase,MongoDB,Cassandra,设计模式,负载均衡,数据库,一致性哈希,JAVA算法,数据结构,加密算法,分布式缓存等等

[外链图片转存中…(img-vm5JvT5q-1714136535135)]

高效学习视频

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值