0、问题总结

Warning:java: 源值1.5已过时, 将在未来所有发行版中删除:

Error:java: Compilation failed: internal java compiler error:

1、窗体的初使用

创建GUI Form


注意使用这个关闭模式:

使用 jFrame.pack(); 替换 jFrame.setSize(800,400); 。。。可以很好的包裹住界面。。

设置窗体的icon图标:

绝对路径:

jFrame.setIconImage(new ImageIcon("D:\\daima\\allmyjava\\moreUtils\\src\\main\\java\\cn\\zuo\\myres\\icon\\seal.png").getImage());

相对路径:注意根路径的位置。。。

jFrame.setIconImage(new ImageIcon("src/main/java/cn/zuo/myres/icon/seal.png").getImage()); //找到了,当前目录就是本项目的根路径

2、主窗体的布局选择

选择表单布局:


使用这种布局需要导入依赖:

<!-- https://mvnrepository.com/artifact/com.jgoodies/forms -->
<dependency><groupId>com.jgoodies</groupId><artifactId>forms</artifactId><version>1.2.1</version>
</dependency>

表格位置的移动:

调节表单的每部分的大小:

对行列的添加与删除:

使用preview查看窗体:




设置preview时的长度:只对展示时有用,不对真实运行时有用。

3、对字体的设置

字体的选择:

4、关于标签Label

设置LabelFor:(。。感觉没有效果啊。。。)

5、文本域的添加

文本域外边距的设置

调节文本域大小:

设置文本域的不可编辑:

文本域内容的预先定义:

6、对按钮的添加

使按钮占满区域:

7、事件

7.1、按钮事件



8、菜单栏

添加manubar组件:

菜单的manu和manuItem手动添加:这种只能执行main函数才能看到,使用preview是看不到的。。

9、通过卡片Card布局实现界面切换

不使用可视化的代码:

//不使用可视化的Card布局,实现界面切换。。。
public class Test1 extends JFrame implements ActionListener {private JPanel jp1;private JPanel jp2;private JPanel jp3;private JButton bt1;private JButton bt2;private JButton bt3;private JPanel card;private CardLayout cl;private JMenuBar jmb;private JMenu jm;private JPanel jpmain;public Test1(){jmb = new JMenuBar();jm = new JMenu("doge");jmb.add(jm);jpmain = new JPanel(new BorderLayout());jpmain.add(jmb,"North");bt1 = new JButton("按钮1");bt2 = new JButton("按钮2");bt3 = new JButton("按钮3");bt1.addActionListener(this);bt2.addActionListener(this);bt3.addActionListener(this);jp1= new JPanel();jp1.add(bt1);jp2 =new JPanel();jp2.add(bt2);jp3=new JPanel();jp3.add(bt3);card = new JPanel();cl = new CardLayout();card.setLayout(cl);card.add(jp1);card.add(jp2);card.add(jp3);jpmain.add(card,"Center");}public static void main(String[]args){JFrame jf = new JFrame("界面切换");Test1 t = new Test1();jf.add(t.jpmain);jf.pack();jf.setDefaultCloseOperation(3);jf.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==bt1){cl.next(card);}else if(e.getSource()==bt2){cl.next(card);}else if(e.getSource()==bt3){cl.first(card);}else{}}
}

card的可替换部分使用可视化进行组装,而主要页面(包括菜单栏和替换部分)使用非可视化,手动进行构建。。

//主界面
public class Test1 extends JFrame implements ActionListener {private JPanel jp1;private JPanel jp2;private JPanel jp3;private JPanel card;//能够替换的部分private CardLayout cl;//用来执行替换private JMenuBar jmb;private JMenu jm;private JMenuItem jmi1,jmi2,jmi3;private JPanel jpmain;//主页面,包括菜单部分和替换部分public Test1(){jmb = new JMenuBar();jmi1 = new JMenuItem("card1");jmi1.addActionListener(this);jmi2 = new JMenuItem("card2");jmi2.addActionListener(this);jmi3 = new JMenuItem("card3");jmi3.addActionListener(this);jm = new JMenu("doge");jm.add(jmi1);jm.add(jmi2);jm.add(jmi3);jmb.add(jm);jpmain = new JPanel(new BorderLayout());jpmain.add(jmb,"North");jp1= new JPanel();jp1.add(new Card1().getPanel1());jp2 =new JPanel();jp2.add(new Card2().getPanel1());jp3=new JPanel();jp3.add(new Card3().getPanel1());card = new JPanel();cl = new CardLayout();card.setLayout(cl);card.add("card1",jp1);//要在能替换界面的直接位置添加名字card.add("card2",jp2);card.add("card3",jp3);jpmain.add(card,"Center");}public static void main(String[]args){JFrame jf = new JFrame("界面切换");Test1 t = new Test1();jf.add(t.jpmain);jf.pack();jf.setDefaultCloseOperation(3);jf.setVisible(true);}@Overridepublic void actionPerformed(ActionEvent e) {if(e.getSource()==jmi1){cl.show(card,"card1");//根据名字切换界面}else if(e.getSource()==jmi2){cl.show(card,"card2");}else if(e.getSource()==jmi3){cl.show(card,"card3");}else{}}
}

10、打成可执行jar包





注:

打成完毕,但是界面不完整了。。。

原因:原来是使用的主题的问题,使用beautyeye主题就会有界面不完整,暂时还找不到解决方案。但是使用系统默认主题就没问题了,系统主题中nimbus好看一点。。。

注:

打成完毕,但是icon不显示了。。。

暂时还没有解决方法。

*、杂

*.1 窗体主题风格的设置

这里是参考此博客写的:https://www.cnblogs.com/clarino/p/8668160.html

// Metal风格 (默认)
String lookAndFeel = "javax.swing.plaf.metal.MetalLookAndFeel";
UIManager.setLookAndFee(lookAndFeel);// Windows风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsLookAndFeel";
UIManager.setLookAndFee(lookAndFeel);  // Windows Classic风格
String lookAndFeel = "com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel";
UIManager.setLookAndFee(lookAndFeel);  // Motif风格
String lookAndFeel = "com.sun.java.swing.plaf.motif.MotifLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);// Mac风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.mac.MacLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);// GTK风格 (需要在相关的操作系统上方可实现)
String lookAndFeel = "com.sun.java.swing.plaf.gtk.GTKLookAndFeel";
UIManager.setLookAndFeel(lookAndFeel);// 可跨平台的默认风格
String lookAndFeel = UIManager.getCrossPlatformLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);// 当前系统的风格
String lookAndFeel = UIManager.getSystemLookAndFeelClassName();
UIManager.setLookAndFeel(lookAndFeel);

########## 优选 ##########

Weblaf:非常赞的套件,界面现代、简约。依赖包较少。 有开源也有商业协议,个人最喜欢的皮肤。
https://github.com/mgarin/weblaf

PgsLookAndFeel:界面简约现代,Apache2开源协议
http://www.pagosoft.com/projects/pgslookandfeel/

Seaglass:蛮美观的UI,界面现代,是基于Java 7自带皮肤Nimbus改进
https://github.com/khuxtable/seaglass/wiki

beautyeye:国人开发的UI,界面现代(但是项目打成jar包后,执行,窗体加载有问题)
https://github.com/JackJiang2011/beautyeye

1、导入包

2、改变样式(在new出JFrame的地方添加)

try
{org.jb2011.lnf.beautyeye.BeautyEyeLNFHelper.launchBeautyEyeLNF();
}
catch(Exception e)
{//TODO exception
e.printStackTrace();
}

3、具体的操作请去github上查看

########## 中选 ##########

Synthetica:较丰富的UI风格,但对中文字体的支持有问题。一半的皮肤免费,但其中一些较美观的需要商业授权
http://www.javasoft.de/synthetica/themes/

Jtattoo:分GPL / LGPL / Apache三种协议,有开源也有商业版,个人较喜欢其中的Luna风格(提供直观显示其各种主题的效果,同时推荐下载其源码学习各种控件的使用方法)
http://www.jtattoo.net/

----- 参考附件

Insubstantial:substance项目的分支项目
https://github.com/Insubstantial/insubstantial

Nimbus:Java SE 6 Update 10以后Oracle内置的皮肤,如果想安全稳定,选它没错了
http://docs.oracle.com/javase/tutorial/uiswing/lookandfeel/nimbus.html

########## 其他 ##########

Quaqua:整的很像MAC OS的界面
http://www.randelshofer.ch/quaqua/index.html

Alloy:商业的,感觉一般
http://lookandfeel.incors.com/

JGoodies:商业的,感觉更一般
http://www.jgoodies.com/products/swing-suite/

设置自己喜欢的主题:(另一种方式获得)

执行程序时的窗体主题的实现转换功能(×),好像只能执行程序的时候执行一次

#、说明

本文只是简单的对Swing UI Designer的使用。

如有疏漏、错误,感谢指正。

idea的Java窗体可视化工具Swing UI Designer的简单使用(一)相关推荐

  1. idea的Java窗体可视化工具Swing UI Designer的简单使用(二)

    11.选择文件夹组件 通过按钮来打开窗口,绑定一个事件: 生成文件选择器窗口: JFileChooser ff = new JFileChooser("d://workplace" ...

  2. Java反编译工具JAD的安装与简单使用

    jad介绍 jad 是一个使用非常广泛的 Java 反编译工具.可以将java编译后的class文件反编译成对应的java文件. 下载地址 JAD下载地址,点击跳转https://varaneckas ...

  3. java 窗体开发_使用 Java 和 Swing UI Designer 开发窗体应用程序入门

    开发环境: Windows 10 Pro x64 20H2 Intellij IDEA Ultimate 2020.2.3 JDK 8 ~ 15 均可 一.创建项目 打开 Intellij IDEA, ...

  4. Intellij插件之~图形界面Swing UI Designer

    资料 Java Swing 介绍 JavaFX快速入门 Java Swing 图形界面开发简介 GUI Designer Basics scrcpy ScrcpyController Services ...

  5. Java解析excel工具easyexcel 助你快速简单避免OOM

    原文链接:http://www.itsleuth.cn/post/javatool-001-easyexcel/ Java解析.生成Excel比较有名的框架有Apache poi.jxl.但他们都存在 ...

  6. 消除冗长Java代码的工具——Lombok详解

    消除冗长Java代码的工具--Lombok详解 文章目录 消除冗长Java代码的工具--Lombok详解 什么是Lombok Lombok的作用 Lombok常用注解 Lombok安装 什么是Lomb ...

  7. 基于JAVA实现的WEB端UI自动化 - WebDriver高级篇 - 关联

    文章目录 关联 (公共变量传递一些值) 基于JAVA实现的WEB端UI自动化 -自动化测试简单介绍 基于JAVA实现的WEB端UI自动化 - WebDriver基础篇 - 实现简单的浏览器操作 基于J ...

  8. java dump分析工具_Java虚拟机详解(八)------虚拟机监控和分析工具(2)——可视化...

    大家好,我是可乐,一个专注原创,乐于分享的程序猿. 本系列教程持续更新,可以微信搜索「 IT可乐 」第一时间阅读.回复<电子书>有我为大家特别筛选的海量免费书籍资料 通过前面的几篇博客,我 ...

  9. Java内存泄露和内存溢出、JVM命令行工具、.JDK可视化工具、Java Class文件

    1.Java内存泄露和内存溢出对比 1.1 Java 内存泄露 内存泄露是指一个不再被程序使用的对象或变量还在内存中占用空间. 1.1.1判断内存空间是否符合垃圾回收的标准 在Java语言中,判断一个 ...

最新文章

  1. 如何使用ROS查找rgbdslam代码包框架的输入
  2. Delphi编程之系统OEM DIY
  3. Android Telephony分析(五) ---- TelephonyRegistry详解
  4. Java5:BigInteger、BigDecimal详解
  5. Intel Sandy Bridge/Ivy Bridge架构/微架构/流水线 (5) - 流水线前端传统译码器
  6. JavaScript重难点解析6(Promise)
  7. 用Apache James搭建本地邮件服务器
  8. 百度指数查关键词(惊到我啦)
  9. 画PCB四层板细节总结
  10. WS小世界网络python快速实现——调用networkx包
  11. Vue二次元个人博客模板
  12. 程序员如何让自己的技术能力突飞猛进?
  13. win10 hao123劫持html文件,Win10 edge浏览器主页被hao123劫持怎么解决?
  14. DSP-EALLOW和EDIS
  15. 【JAVA长虹键法】第七式 建造者模式(23种设计模式)
  16. 腾讯面试--测试工程师社会招聘面试经历
  17. 分体式无线蓝牙耳机什么牌子好?分体式蓝牙耳机排行榜
  18. 如何将PDF删除水印?PDF怎么删除水印
  19. 【疯壳·嵌入式平板开发教程5】手把手教你做平板电脑-触摸屏驱动实验教程
  20. php分类递归类,PHP无限分类(递归)

热门文章

  1. 任务管理器已被管理员禁用
  2. mysql trim_mysql trim函数用法实例
  3. 优酷在线播放器 html5,GitHub - esterTion/Youku-HTML5-Player: 一个适配优酷的简单易用的HTML5播放器...
  4. 易福门PN3594压力传感器
  5. minio-server服务器安装(无限速下载)及启动报错解决方案(一)
  6. 转转集团宣布品牌焕新背后:黄炜继续模仿爱回收,公司多次被处罚
  7. 谈谈在线团队协作工具 - Tower.im
  8. 精彩回顾:软件的生命力在于创新
  9. 微信小程序 简单自定义对话框
  10. ubuntu 20.04减少磁盘存储以及清除最近历史记录