A、首先更改窗体左上角的图片
步骤一:
创建3个包,分别建立1个类
第一个是窗体的包,窗体类:设置窗体的主要布置和功能
第二个是资源包,图片:把想要改的图案拉进来
第三个是UI界面包,UI界面设计类:专门对窗体界面进行美化
步骤二:
在UI界面设计类中写代码:
1 /** 2 * 做皮肤效果的类 3 */ 4 package zl_util; 5 6 import java.awt.Image; 7 import java.awt.Toolkit; 8 import javax.swing.JFrame; 9 10 public class UiUtil { 11 //私有化 12 private UiUtil(){} 13 //修改窗体的图标 14 //Frame 是带有标题和边框的顶层窗口。 15 //JFrame 是java.awt.Frame 的扩展版本 16 public static void setFramerImage(JFrame jf){ 17 18 //创建工具类对象 19 //public static Toolkit getDefaultToolkit():获取默认工具包。 20 Toolkit t = Toolkit.getDefaultToolkit(); 21 22 //创建图像类对象,并使用工具类根据路径获取图片 23 Image i = t.getImage("src\zl_resource\jjcc.jpg"); 24 25 //更改窗体的图标 26 jf.setIconImage(i); 27 28 //这些搞定后,去设置窗体类的源码中调用这个方法 29 } 30 }
步骤三:
窗体类中写主要代码,上一章的。(未校验版本)
只不过这次要在源码中调用步骤二中的,UI界面设计类中的方法,从而实现界面美化
1 public class NewJFrame1 extends javax.swing.JFrame { 2 3 /** 4 * Creates new form NewJFrame1 5 */ 6 public NewJFrame1() { 7 initComponents(); 8 init(); 9 } 10 private void init(){ 11 this.setTitle("四则运算计算器"); 12 UiUtil.setFramerImage(this); 13 }
B、设置窗体一启动就在屏幕的中央
步骤一:在UI界面设计类中添加一个方法:
1 //设置窗体出现在屏幕中央 2 public static void setFrameCenter(JFrame jf){ 3 /* 4 思路: 5 A:首先获取屏幕的长和宽 6 B:然后获取窗体的长和宽 7 C:再用屏幕的长和宽分别减去窗体的,再除以2 8 D:得到的值作为窗体出现的坐标 9 */ 10 //获取默认工具包 11 Toolkit tl = Toolkit.getDefaultToolkit(); 12 13 //获取屏幕的长和宽,不确定什么类型,用double类 14 //public abstract Dimension getScreenSize() 15 Dimension d = tl.getScreenSize(); 16 double ScreenHeigth = d.getHeight(); 17 double ScreenWidth = d.getWidth(); 18 19 //获取窗体的长和宽,这个是int类的 20 int FrameWidth = jf.getWidth(); 21 int FrameHeigth = jf.getHeight(); 22 23 //相减再除以2,因为设置窗体出现的坐标所需要的是int类的,所以要转换成int类 24 int Higth = (int)(ScreenHeigth - FrameHeigth)/2; 25 int Width = (int)(ScreenWidth - FrameWidth)/2; 26 27 //值作为窗体出现的坐标 28 jf.setLocation(Width, Higth); 29 30 //去窗体类中调用该方法 31 }
步骤二:
去窗体类中调用该方法,不粘贴了。
C、更换窗体的皮肤
步骤一:把相关的皮肤jar文件和相关的皮肤路径包导入
步骤二:
在窗体类中的main方法里使用皮肤:
看绿色和黄色的字段,其它都是抛出的异常。
1 public static void main(String args[]) { 2 /* Set the Nimbus look and feel */ 3 //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) "> 4 /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel. 5 * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 6 */ 7 try { 8 for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 9 if ("Nimbus".equals(info.getName())) { 10 javax.swing.UIManager.setLookAndFeel(info.getClassName()); 11 break; 12 } 13 } 14 } catch (ClassNotFoundException ex) { 15 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 16 } catch (InstantiationException ex) { 17 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 18 } catch (IllegalAccessException ex) { 19 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 20 } catch (javax.swing.UnsupportedLookAndFeelException ex) { 21 java.util.logging.Logger.getLogger(NewJFrame1.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 22 } 23 //</editor-fold> 24 try { 25 //UIManager 管理当前外观、可用外观集合、外观更改时被通知的 PropertyChangeListeners、外观默认值以及获取各种默认值的便捷方法。 26 //public static void setLookAndFeel(LookAndFeel newLookAndFeel 将当前外观设置为 newLookAndFeel 27 UIManager.setLookAndFeel(MyLookAndFeel.SYS_WINDOWS); 28 29 30 } catch (ClassNotFoundException ex) { 31 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 32 } catch (InstantiationException ex) { 33 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 34 } catch (IllegalAccessException ex) { 35 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 36 } catch (UnsupportedLookAndFeelException ex) { 37 Logger.getLogger(NewJFrame1.class.getName()).log(Level.SEVERE, null, ex); 38 }