java 24 - 9 GUI 之 给窗体换图标、设置启动在屏幕中间、更换皮肤
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 之 给窗体换图标、设置启动在屏幕中间、更换皮肤的更多相关文章
- java 24 - 7 GUI之 创建多级菜单窗体
需求: 创建多级菜单 步骤: A:创建窗体对象(并设置属性和布局) B:创建菜单栏 C:创建菜单和子菜单 D:逐步添加菜单(子菜单添加到菜单中,菜单添加到菜单栏中) E:窗体中设置菜单栏(菜单栏并不是 ...
- java 24 - 5 GUI之 鼠标移动改变窗体背景颜色
需求: 创建一个可改变背景颜色的窗口,鼠标移动到按钮上,窗口背景就会改变成特定的颜色 步骤: (大致上) 创建窗口对象 创建按钮对象 添加按钮到窗口中 设置窗口关闭监听事件 设置鼠标进入按钮区域的监听 ...
- java 24 - 8 GUI之创建四则运算计算器(未校验版)
这个是用NetBeans软件制作的,因为这个软件制作GUI任务比较方便 通过拖拽控件生成的窗体:(红色的名称是更改后的控件名称) 拉拽好布局后,要进行的步骤: A:更改想要进行操作的控件的名称(右键控 ...
- java 24 - 1 GUI之GUI的概述和基本代码
GUI(图形用户界面) GUI和CLI的区别: GUI Graphical User Interface(图形用户接口). 用图形的方式,来显示计算机操作的界面,这样更方便更直观. CLI Comma ...
- java 24 - 10 GUI 之 四则预算的数据校验
我想要在校验的过程中,如果输入到操作数中的不是数字,则弹出提醒框: 类 JOptionPane 有助于方便地弹出要求用户提供值或向其发出通知的标准对话框 方法名 描述 showConfirmDial ...
- java 24 - 6 GUI之 创建只能输入数字的文本框
需求: 创建一个含有标签和文本框的窗体,其中文本框只能输入数字 步骤:(大致上) 创建窗体对象 创建标签对象 创建文本框对象 把组件添加到窗体中 设置标签的监听事件,对键盘按下的数据进行监听 设置窗体 ...
- java 24 - 4 GUI之创建数据转移窗口
需求: 把文本框中的数据,通过点击按钮,转移到文本域中. 同时清空文本框中的数据 代码:(步骤都注释了) public class FrameDemo4 { public static void m ...
- java 24 - 3 GUI之添加按钮
需求:把按钮添加到窗体,并对按钮添加一个点击事件. A:创建窗体对象 B:创建按钮对象 C:把按钮添加到窗体 D:窗体显示 注意:这里对按钮添加点击事件,同样使用监听器. 但是,这里的按钮是组件,所以 ...
- java 24 - 2 GUI之监听机制和适配器改进窗口关闭
我们创建了窗体后,就要对窗体进行操作,比如关闭窗口.而这时候就要建立监听机制: 事件监听机制: A:事件源 事件发生的地方 B:事件 就是要发生的事情 C:事件处理 就是针对发生的事情做出的处理方案 ...
随机推荐
- Atitit.url 汉字中文路径 404 resin4 resin 解决 v2 q329
Atitit.url 汉字中文路径 404 resin4 resin 解决 v2 q329 1. Pluginx机制1 2. Code1 3. 参考4 1. 原理 过滤器 ,,拦截jpg w ...
- OC笔记
self的概念:指向了当前对象(方法的调用者) self的用途 可以利用 self -> 成员变量名 访问当前对象内部的成员变量 [self 方法名]; 调用其他对象方法或者类方法 所有继 ...
- 【读书笔记】iOS-程序进入到后台
当一个iOS应用被送到后台,它的主线程会被暂停.你用NSThread的detachNewThreadSelector:toTar get:withObject:类方法创建的线程也被挂起了.如果你想在后 ...
- lambda浅尝
很久没写日志了,今天动动手记录下刚刚弄了一遍的lambda. 配置module下的build.gradle android { ... // 版本有要求 buildToolsVersion " ...
- Mac下的快速回到桌面快捷方式
今天突然发现一个Mac下快速回到桌面的快捷方式. command+F3 快速回到桌面. 如果想增加动画效果,快捷键是: command+shift+F3 这个功能虽然小,但是确实非常实用啊!
- Linux high memory 学习总结
在free命令中有个参数l,它表示 show detailed low and high memory statistics.其实最先是对High Memory总是为零有些不解(Linux是64为). ...
- 创建一个Point类,有成员变量x,y,方法getX(),setX(),还有一个构造方 法初始化x和y。创建类主类A来测试它
package com.hanqi.test; public class Point { private int x; private int y; Point(int xx,int yy) { x= ...
- jq+css+html简单实现导航下拉菜单
相信导航栏下拉菜单是web开发最常见的一个item了.这里就不做介绍了,直接上code. Html部分 <div class="_nav"> <ul id=&qu ...
- html5+css3实现跑动的爱心/动态水滴效果[原创][5+3时代]
大风起兮云飞扬,安得猛士兮走四方!html5+css3,不学不行. 做web开发已经有好几年了,见证了太多语言的崛起和陨落. 其实作为一个程序员最苦逼的事情莫过于每天要不停的追赶各大公司新出的框架和语 ...
- log4j 实现只输入我们指定包的日志
#all logger output level is 'ERROR' and output position is stdout #so only write our project's DEBUG ...