今天我们来看一下用户信息修改界面,这部分关于Java Winform的博客今天到这里就是左后一篇了,更多的还是有用到的再去挖。这篇完了之后我们就进入java重拾的web实战。OK,废话不多说,今天还获得惊喜,什么惊喜呢,看完博客再给你说。

用户信息修改的C#界面如下

我们再看一下java版本的界面

初始化代码如下private void Init() {

cmbSex.addItem("男");

cmbSex.addItem("女");

ButtonGroup btnGrp = new ButtonGroup();

btnGrp.add(radioBz);

btnGrp.add(radioWh);

btnGrp.setSelected(radioWh.getModel(), true);

}

那我们今天就要实现这个界面的功能。首先我们先从右边的图片选择下手,点击浏览按钮,弹出文件选择框,选择图片文件,这里设置只支持jpg和GIFprivate void ChooseImageAndShow() {

JFileChooser jfc = new JFileChooser();

jfc.setDialogTitle("选择照片");

jfc.setMultiSelectionEnabled(false);

jfc.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);

JpgFileFilter jpgFilter = new JpgFileFilter();

GifFileFilter gifFilter = new GifFileFilter();

jfc.addChoosableFileFilter(jpgFilter);

jfc.addChoosableFileFilter(gifFilter);

jfc.setFileFilter(jpgFilter);

jfc.showOpenDialog(this);

File file = jfc.getSelectedFile();

if (file != null) {

photoPath = file.getAbsolutePath();

Image img = Toolkit.getDefaultToolkit().createImage(

file.getAbsolutePath());

ImageIcon imgIcon = new ImageIcon(img.getScaledInstance(

panelPhoto.getWidth(), panelPhoto.getHeight(),

Image.SCALE_SMOOTH));

this.labPhoto.setIcon(imgIcon);

}

}

该方法先new一个文件选择框,然后设置标题,设置是否可以多选,选择的模式是只能选择文件还是文件和文件夹都可以选择。然后设置两个文件过滤,只能显示jpg和GIF文件,这个文件过滤没有C#那么简单,需要些两个类去继承FileFilter这个抽象类,并实现他的两个抽象方法class JpgFileFilter extends FileFilter {

public String getDescription() {

return "*.jpg";

}

public boolean accept(File file) {

String name = file.getName();

return name.toLowerCase().endsWith(".jpg");

}

}

class GifFileFilter extends FileFilter {

public String getDescription() {

return "*.gif";

}

public boolean accept(File file) {

String name = file.getName();

return name.toLowerCase().endsWith(".gif");

}

}

好了我们看一下效果

看到了吧标题,文件类型过滤都是我们刚才设置的。好的,我们就选择这个图片

图片就显示在了label中,好了,显示就是通过上面贴的这段代码实现的if (file != null) {

photoPath = file.getAbsolutePath();

Image img = Toolkit.getDefaultToolkit().createImage(

file.getAbsolutePath());

ImageIcon imgIcon = new ImageIcon(img.getScaledInstance(

panelPhoto.getWidth(), panelPhoto.getHeight(),

Image.SCALE_SMOOTH));

this.labPhoto.setIcon(imgIcon);

}

首先,我们将绝对路径赋给一个全局变量,用于最后的保存时获取图片的路径。然后再通过路径得到Image,最后按比例缩放,勾选复选框是表示我们要保存这个图片。

接下来我们看一下保存按钮做的事情private void SaveUserInfo() throws FileNotFoundException {

String userName = txtUserName.getText().trim();

String sex = cmbSex.getSelectedItem().toString();

String age = fmtAge.getText();

String birthDay = datepick.getText();

if (userName.isEmpty()) {

MessageHelper.ShowMessage("姓名不能为空!");

return;

}

if (age.isEmpty()) {

MessageHelper.ShowMessage("年龄不能为空!");

return;

}

if (birthDay.isEmpty()) {

MessageHelper.ShowMessage("出生日期不能为空!");

return;

}

DateFormat df = DateFormat.getDateInstance();

try {

Date dt = df.parse(birthDay);

if (dt.before(df.parse("1920-01-01 00:00:01"))

|| dt.after(df.parse("2000-01-01 00:00:01"))) {

MessageHelper.ShowMessage("出生年份必须在1920至2000年之间!");

return;

}

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

if (chkPhoto.isSelected()) {

if (photoPath == null || photoPath == "") {

MessageHelper.ShowMessage("请选择图片!");

return;

}

}

String sql = "UPDATE TOP(1) dbo.UerInfo SET Name=?,Sex=?,Age=?,BirthDay=?";

if (photoPath != "" && chkPhoto.isSelected()) {

sql += ",Photo=?";

}

sql += " WHERE useNo='" + FrmLogin.user.getUserNo() + "'";

Connection con = JDBCSqlHelper.GetConnection();

try {

PreparedStatement stmt = con.prepareStatement(sql);

stmt.setString(1, userName);

stmt.setString(2, sex=="男"? "1":"0");

stmt.setInt(3, Integer.parseInt(age));

SimpleDateFormat sdf = new SimpleDateFormat();

sdf.applyPattern("yyyy-MM-dd");

Date dt = new Date();

try {

dt = sdf.parse(birthDay);

} catch (ParseException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

stmt.setDate(4, new java.sql.Date(dt.getDate()));

if (photoPath != "" && chkPhoto.isSelected()) {

File fl = new File(photoPath);

FileInputStream fis = new FileInputStream(fl);

stmt.setBinaryStream(5, fis, (int) fl.length());

}

stmt.executeUpdate();

MessageHelper.ShowMessage("保存成功!");

this.dispose();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

进过一系列的验证之后,拼成修改的Sql语句,然后保存进sqlserver。重点是这里的图片保存

主要是获取文件长度和文件流。File fl = new File(photoPath);

FileInputStream fis = new FileInputStream(fl);

stmt.setBinaryStream(5, fis, (int) fl.length());

我们试着来保存一条。

哇靠,这是个什么控件,我也不知道,从网上下载的。选择完生日之后,会自动根据选择的生日计算它的年龄,所以这里的年龄的框框是IsEditable=false的。datepick.getInnerTextField().addCaretListener(new CaretListener() {

public void caretUpdate(CaretEvent e) {

String date = datepick.getText();

if (date.trim() == "")

return;

SimpleDateFormat df = new SimpleDateFormat();

df.applyPattern("yyyy-MM-dd hh:mm:ss");

try {

Date dt = df.parse(date);

int age = new Date().getYear() - dt.getYear();

fmtAge.setText(String.valueOf(age));

} catch (ParseException e1) {

// TODO Auto-generated catch block

e1.printStackTrace();

}

}

});

用当前年份减去选择的年份,大概算出年龄,我们输入完所有的信息后,点击保存

保存成功了,我们重新登陆一下,看照片变了没有。

输入完密码,登录

成功了,到此,我们这一部分的就全部结束了。

最后,我们看一下今天到底啥惊喜呢?对于学网络的人来说这个可能不算什么。前几天我想从网上买个无线路由,然后配置好后,使用手机的Wlan。可是看了一些,价格都比较贵,100以上。我最近很穷,买不起。偶尔看到一篇文章说是有些笔记本可以发射无线网络信号。我想我的dell 1420可能没戏吧,于是试了一下,不行也就算了,大不了工资发了一咬牙每一个无线路由。开始吧

我的系统是Win7,打开cmd输入如下命令netsh wlan set hostednetwork mode=allow ssid=binglanPC key=你的Wlan密码

这段命令的意思是允许虚拟Wifi网卡,无线网络名称是lileiPC,key是密码自己设。

完了之后我们去控制面板看一下(控制面板所有控制面板项网络和共享中心)

点击宽带连接,弹出如下界面

选择属性,弹出如下界面

勾选允许.....,家庭网络连接选择无线网络连接2,OK,点击确定,弹出如下

不用管,点击确定,完了之后就是启动了用如下命令netsh wlan start hostednetwork

注意了,如果要停掉,可以把start改为Stop。

OK,承载成功。

OK,我们已经看到了我们创建的虚拟wifi,他可以访问internet。用手机试了一下也是没问题的,看优酷,PPTV杠杠的。

如果你在按照上面的设置中未能成功,首先看一下你的机器支持不支持虚拟wifi,输入命令netsh wlan show drivers

如果显示的结果里支持的承载网络显示为是的话就可以

二是如果爆出什么无法启动承载网络,什么状态不对的。去windows 设备管理器下去看wifi适配器有没有开启。

OK,到此咋们的wifi就设置成功了,天比较冷,我还是在被窝里看书吧,手机也可以连笔wifi了,看电视剧也是不错的选择,火凤凰最近不错,或者结婚吧也行。

附件:http://down.51cto.com/data/2363817

java winform 工具,重拾JAVA之WinForm实战之(六)相关推荐

  1. php byte stringbuffer,重拾java基础(十三):String姐妹StringBuffer、StringBuilder总结

    重拾java基础(十三):String姐妹StringBuffer.StringBuilder总结 一.StringBuffer类概述buffer:缓冲 2. 字符串缓冲区,跟String非常相似,都 ...

  2. 重拾Java Network Programming(一)IO流

    前言 最近在重拾Java网络编程,想要了解一些JAVA语言基本的实现,这里记录一下学习的过程. 阅读之前,你需要知道 网络节点(node):位于网络上的互相连通的设备,通常为计算机,也可以是打印机,网 ...

  3. Java学习之路1——安装JDK1.8||安装idea2022||Java项目创建【重拾Java】

    Java学习之路1--安装JDK1.8||安装idea2022[重拾Java] 前言 安装 安装JDK1.8 安装idea2022(JetBrains Toolbox) Java项目创建 创建 项目结 ...

  4. Java学习之路3——方法定义、调用【重拾Java】

    Java学习之路3--方法定义.调用[重拾Java] 方法定义 为什么要写方法 方法完整的定义形式.调用 方法定义的格式 修饰符 返回值类型 返回值 调用格式 方法重载 方法定义 为什么要写方法 对于 ...

  5. UrlUtils工具类,Java URL工具类,Java URL链接工具类

    UrlUtils工具类,Java URL工具类,Java URL链接工具类 >>>>>>>>>>>>>>>&g ...

  6. Java Portlet 工具:将 Java Web 应用程序转换为自适型 Portlet--page1

    Java Portlet 工具:将 Java Web 应用程序转换为自适型 Portlet 作者 Andrew Lorek 05/30/2006 译者: 墩子 摘要 这篇文章介绍了如何将工作于门户以外 ...

  7. 重拾java基础知识总结(超级经典)

    Java基础知识总结(超级经典) 写代码: 1,明确需求.我要做什么? 2,分析思路.我要怎么做?1,2,3. 3,确定步骤.每一个思路部分用到哪些语句,方法,和对象. 4,代码实现.用具体的java ...

  8. 我的阿里Offer之路(一):不忘初心,重拾Java

    导读 30了,6年PHP月薪没过万,被同龄人尊称为"耿大傻X",之前沉迷于游戏,突然弃坑,学Java,进大厂 正文 2018年11月20日晚20:05,沉迷于<魂斗罗归来&g ...

  9. 玩转java并发工具_玩Java并发

    玩转java并发工具 最近,我需要将一些文件(每个文件都有JSON格式的对象列表(数组))转换为每个文件都具有相同数据(对象)的分隔行的文件. 这是一次性的任务,很简单. 我使用Java nio的某些 ...

  10. 轻量级java开发工具_成为 Java 程序员必备的 5 个工具

    简介:Java 是一门面向对象的编程语言,它有着简单性.分布式.健壮性.安全性.可移植性.多线程等诸多特点.它也在最近一次的编程语言排行榜中排名第一,并且是连续十二次位居榜首,也就是说 Java 在2 ...

最新文章

  1. 重磅!第二轮“双一流”名单来了,有你的学校吗?
  2. 闭门沙龙招募:吃吃喝喝聊CG | 真格×量子位
  3. 提高收益 酒店大数据之客户数据收集
  4. 回文字符串—回文子串—暴力破解法
  5. java学生信息管理系统
  6. 单总线CPU微程序条件判别测试逻辑
  7. 如何管理员工工时表?
  8. 别让手机偷走你的大半生
  9. 收藏:关于3g手机的市场调查报告
  10. 奇点云 x 阿里云 | 联合发布综合体数字化转型与数据创新解决方案
  11. 三极管做开关管的总结(理解三极管)
  12. 视频教程-前端工程师零基础到就业全套课程-JavaScript
  13. 数字滤波器设计(高通低通)
  14. Android开发-在Android应用里嵌入腾讯广告联盟进行盈利实现
  15. IoT 物联网设备端 SDK 架构设计参考
  16. python前后端脚本之家_Django使用中间件解决前后端同源策略问题
  17. 开发 Spring 自定义视图和视图解析器
  18. 卡迪夫大数据专业排名_2019英国大数据解析
  19. C语言stu1成员age的非法引用,2009年上海市高校计算机等级考试(2级C-b卷)
  20. 基于jsp的房产销售管理系统

热门文章

  1. Intel Fortran编译器安装
  2. android直到开机动画播放完,Android手机开机动画的修改
  3. 计算机dll修复工具,百度dll修复工具(百度电脑专家)
  4. 写给准备用mcafee8.5i企业版的朋友
  5. 学前教育试题库及答案_学前教育学考试试题及答案
  6. 闪迪内存卡软件测试,闪迪存储卡怎么样
  7. 百度文库免费复制文字_如何复制百度文库上的内容——解答!
  8. 交友小程序服务器,又是陌生人交友小程序,探探Lite到底有什么不同?
  9. mysql5.7 bulk insert_Bulk Insert 高效快速插入数据
  10. STM32—驱动GY85-IMU模块