A、首先更改窗体左上角的图片

步骤一:

 创建3个包,分别建立1个类

  第一个是窗体的包,窗体类:设置窗体的主要布置和功能

  第二个是资源包,图片:把想要改的图案拉进来

  第三个是UI界面包,UI界面设计类:专门对窗体界面进行美化

步骤二:

  在UI界面设计类中写代码:

 /**
* 做皮肤效果的类
*/
package zl_util; import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JFrame; public class UiUtil {
//私有化
private UiUtil(){}
//修改窗体的图标
//Frame 是带有标题和边框的顶层窗口。
//JFrame 是java.awt.Frame 的扩展版本
public static void setFramerImage(JFrame jf){ //创建工具类对象
//public static Toolkit getDefaultToolkit():获取默认工具包。
Toolkit t = Toolkit.getDefaultToolkit(); //创建图像类对象,并使用工具类根据路径获取图片
Image i = t.getImage("src\\zl_resource\\jjcc.jpg"); //更改窗体的图标
jf.setIconImage(i); //这些搞定后,去设置窗体类的源码中调用这个方法
}
}

步骤三:

  窗体类中写主要代码,上一章的。(未校验版本)

只不过这次要在源码中调用步骤二中的,UI界面设计类中的方法,从而实现界面美化

 public class NewJFrame1 extends javax.swing.JFrame {

     /**
* Creates new form NewJFrame1
*/
public NewJFrame1() {
initComponents();
init();
}
private void init(){
this.setTitle("四则运算计算器");
UiUtil.setFramerImage(this);
}

B、设置窗体一启动就在屏幕的中央

步骤一:在UI界面设计类中添加一个方法:

         //设置窗体出现在屏幕中央
public static void setFrameCenter(JFrame jf){
/*
思路:
A:首先获取屏幕的长和宽
B:然后获取窗体的长和宽
C:再用屏幕的长和宽分别减去窗体的,再除以2
D:得到的值作为窗体出现的坐标
*/
//获取默认工具包
Toolkit tl = Toolkit.getDefaultToolkit(); //获取屏幕的长和宽,不确定什么类型,用double类
//public abstract Dimension getScreenSize()
Dimension d = tl.getScreenSize();
double ScreenHeigth = d.getHeight();
double ScreenWidth = d.getWidth(); //获取窗体的长和宽,这个是int类的
int FrameWidth = jf.getWidth();
int FrameHeigth = jf.getHeight(); //相减再除以2,因为设置窗体出现的坐标所需要的是int类的,所以要转换成int类
int Higth = (int)(ScreenHeigth - FrameHeigth)/2;
int Width = (int)(ScreenWidth - FrameWidth)/2; //值作为窗体出现的坐标
jf.setLocation(Width, Higth); //去窗体类中调用该方法
}

步骤二:

  去窗体类中调用该方法,不粘贴了。

C、更换窗体的皮肤

步骤一:把相关的皮肤jar文件和相关的皮肤路径包导入

步骤二:

在窗体类中的main方法里使用皮肤:

看绿色和黄色的字段,其它都是抛出的异常。

  public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
* For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
try {
//UIManager 管理当前外观、可用外观集合、外观更改时被通知的 PropertyChangeListeners、外观默认值以及获取各种默认值的便捷方法。
//public static void setLookAndFeel(LookAndFeel newLookAndFeel 将当前外观设置为 newLookAndFeel
UIManager.setLookAndFeel(MyLookAndFeel.SYS_WINDOWS);     
} catch (ClassNotFoundException ex) {
Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
} catch (UnsupportedLookAndFeelException ex) {
Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex);
}

java 24 - 9 GUI 之 给窗体换图标、设置启动在屏幕中间、更换皮肤的更多相关文章

  1. java 24 - 7 GUI之 创建多级菜单窗体

    需求: 创建多级菜单 步骤: A:创建窗体对象(并设置属性和布局) B:创建菜单栏 C:创建菜单和子菜单 D:逐步添加菜单(子菜单添加到菜单中,菜单添加到菜单栏中) E:窗体中设置菜单栏(菜单栏并不是 ...

  2. java 24 - 5 GUI之 鼠标移动改变窗体背景颜色

    需求: 创建一个可改变背景颜色的窗口,鼠标移动到按钮上,窗口背景就会改变成特定的颜色 步骤: (大致上) 创建窗口对象 创建按钮对象 添加按钮到窗口中 设置窗口关闭监听事件 设置鼠标进入按钮区域的监听 ...

  3. java 24 - 8 GUI之创建四则运算计算器(未校验版)

    这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...

  4. java 24 - 1 GUI之GUI的概述和基本代码

    GUI(图形用户界面) GUI和CLI的区别: GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Comma ...

  5. java 24 - 10 GUI 之 四则预算的数据校验

    我想要在校验的过程中,如果输入到操作数中的不是数字,则弹出提醒框: 类 JOptionPane  有助于方便地弹出要求用户提供值或向其发出通知的标准对话框 方法名 描述 showConfirmDial ...

  6. java 24 - 6 GUI之 创建只能输入数字的文本框

    需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...

  7. java 24 - 4 GUI之创建数据转移窗口

    需求: 把文本框中的数据,通过点击按钮,转移到文本域中.  同时清空文本框中的数据 代码:(步骤都注释了) public class FrameDemo4 { public static void m ...

  8. java 24 - 3 GUI之添加按钮

    需求:把按钮添加到窗体,并对按钮添加一个点击事件. A:创建窗体对象 B:创建按钮对象 C:把按钮添加到窗体 D:窗体显示 注意:这里对按钮添加点击事件,同样使用监听器. 但是,这里的按钮是组件,所以 ...

  9. java 24 - 2 GUI之监听机制和适配器改进窗口关闭

    我们创建了窗体后,就要对窗体进行操作,比如关闭窗口.而这时候就要建立监听机制: 事件监听机制: A:事件源 事件发生的地方 B:事件 就是要发生的事情 C:事件处理 就是针对发生的事情做出的处理方案 ...

随机推荐

  1. ora-00119和ora-00132解决方案

    win7 64位    oracle 11g  先登录到sqlplus: sqlplus /nolog; 登录数据库: conn system/manager as sysdba; 然后启动数据库: ...

  2. iOS运用fabric记录crash日志过程

    先前运用友盟记录app闪退,发现有些闪退的记录无法明确定位到详细的位置,决定运用fabric进行闪退的记录:网上也有这方面的记录,有些细节的内容不明确,把今天碰到的坑整理记发不一下: 访问官网地址(进 ...

  3. iOS 开发之路(使用WKWebView加载Html5) 四

    基于Swift 3 . Xcode 8 . iOS 10 下的WKWebView的使用. 首先是WKWebView的基本用法: var wk:WKWebView! var progBar:UIProg ...

  4. json对象转为字符串,当做参数传递时加密解密

    [son对象  字符串 互相转行] 比如我有两个变量,我要将a转换成字符串,将b转换成JSON对象: var a={"name":"tom","sex ...

  5. Maven仓库搭建--nexus私服

    Maven仓库搭建--nexus私服(Linux环境) Maven仓库简介 Maven仓库分为本地仓库.远程仓库.私服.本文重点介绍私服的使用方法. 下载安装包 网址:http://www.sonat ...

  6. 创建android Notification

    说明:根据项目选择的基础sdk,选择不同的创建Notification的方法1 在android sdk 3.0 之前直接通过 new Notification的方法直接创建通知对象 2 在andro ...

  7. JavaScript(一)——简介(简单介绍)

    1.JavaScript是个什么东西? 它是个脚本语言,需要有宿主文件,它的宿主文件是HTML文件. 2.它与Java什么关系? 没有什么直接的联系,Java是Sun公司(已被Oracle收购了),J ...

  8. C#正则表达式开源工具,为.net开源绵尽薄力

    先交代一下背景,最近工作中经常用到正则表达式,而正则表达式这个东西我个人觉得很鸡肋,不用吧,有些功能实现起来会很麻烦.用吧,又不是说工作中经常用到,只是有时候有些需要求用到而已.但是正则表达式只要一段 ...

  9. 今天说一下where 中 exists 和 in 里面的一些区别

    in 和 exists 已经成为我们日常查询时候的常客了.很多时候他们2个都是可以互通实现的,但是,无论兄弟怎么亲,还是会有那么一些差别的. 先搞个测试表 )) ),Col2 )) INSERT IN ...

  10. mongodb的备份

    转载请附原文链接:http://www.cnblogs.com/wingsless/p/5672057.html mongodb现在为止还是没有像XtraBackup这样好用的备份工具,因此一般来说会 ...