idea前端可视化_IntelliJIDE开发JavaGUI⼊门
本博客主要对java 的GUI相关知识进⾏简单的介绍和总结,整个博客按照创建⼀个java GUI的顺序进⾏介绍,期间穿插讲解⽤到的java Swing的布局、控件等相关知识。本博客所进⾏的讲解及⼯程的创建等,都是基于Intellij IDEA进⾏操作的。
转载请注明出处...虽然感觉没⼈会⽤这个技术吧...
⼀、创建Gradle管理的java⼯程
1.在Intellij IDEA的⾸页,选择Create New Project
⾸页选择创建新⼯程
2.点击之后,界⾯会跳转到如下界⾯,按照图中选择后,点击next即可(另图中*处标明你必须确保你已经为你的intellij配置过了jdk的路径)。
选择gradle
3.之后,会弹出如下界⾯,填写GroupId和ArtifactId即可,填写之后继续点击next。
填写groupId和ArtifactId
4.然后会弹出如下界⾯,并按图中红框标注进⾏选择,选择完毕后再次点击next。
选择gradle配置
5.然后就到了最后⼀步,填写⼯程名称,并选择⼯程所在路径,如图,填写和设置完成后,点击finish即可。
填写⼯程名称和路径
6.在intellij的左侧即可显⽰出创建完成的⼯程,如下图所⽰:
初始创建的⼯程⽬录
以上就是使⽤intellij IDEA 创建⼀个gradle⼯程的简单引导过程,具体的还要以实际操作为准。
⼆、创建页⾯
因为这是鄙⼈整理的关于java GUI的知识⽂档,所以这⼀节是最重要的,毕竟GUI中,页⾯是它最⼤的特⾊。但鄙⼈才疏学浅,也只能是介绍些基础知识和它们的基本⽤法,希望可以起到抛砖引⽟的作⽤。
1. 创建⼀个GUI页⾯的流程:
在上述第⼀节中创建的gradle⼯程中,在其⽬录中选择如下⽂件夹(或者你也可以另外在main⽂件夹下创建新的⽂件夹):
右击java
右击后,选择new-->GUI Form,点击GUI Form后,会出现如下对话框:
guiformdialog
在其中输⼊Form name,则下⽅的Class name默认与Form name相同,例如输⼊Test,点击ok后,即⽣成如下的组合⽂件:
Test组合⽂件
这两个⽂件中,Test.form 即为放置GUI中的布局和控件的地⽅,类似于Android中的xml布局⽂件或者说是前端的html⽂件,或者说是iOS的StoryBoard之类的。可以认为,⽤户最终看到和接触到的就是就是这个⽂件展⽰的效果。另外的Test类,则是Test.form⽂件对应的捆绑类,在这其中主要进⾏Test.for
m页⾯相关的逻辑处理,包括Test.form⽂件中的各个控件的各种事件,⽤到的数据的处理等等。
在这⾥鄙⼈只对Test类中的⼀些共性操作作简单介绍,具体的逻辑处理则因页⾯功能⽽异,需要⼤家⾃⼰去具体处理了;⽽对Test.form中放置的布局、控件等则会进⾏较为详细的介绍,包括布局的基本属性和⽤法,控件的基本属性和⽤法等等。
先给⼤家看个最简单的效果:
巨特么简单的效果
上⾯这个巨简单的效果图,就是通过GUI Form创建的页⾯代码run之后⽣成的java的桌⾯程序。
它虽然简单,但是却包含了使⽤Intellij IDEA 创建java GUI Form程序的完整流程,下⾯鄙⼈对这个完整流程进⾏简单介绍:
⾸先需要说明,这个页⾯中包含的控件,只有⼀个JLabel是本⼈放置的,其它的控件都是系统⾃动⽣成的,它的Component Tree(其实就是组件的节点组合效果) 显⽰如下:
componenttree
下⾯说具体的创建流程:即点击下图中1处的JLabel控件,然后再点击2处系统默认⽣成的Jpanel,就搞定了。。
拖放JLabel
之后,则需要进⾏属性的设置,说到属性的设置,对每个控件都只有设置了它的filed name,才会在该GUI Form⽂件对应的捆绑类中⽣成对应的控件对象。
所以针对上图拖放的JLabel,需要修改它的fieldName,暂且改为testLabel,⽽系统默认⽣成的JPanel则改为rootPanel。然后简单设置testLabel 的text属性,即设置它的显⽰⽂字,如下图中选择testLabel的text属性,点击后输⼊⽂字,再点击键盘的enter即可。
设置testLabel的⽂字
这样test.form⽂件的控件摆放和控件属性设置就完成了,接下来来到Test这个类⽂件中,可以看到在其中已经⽣成了两个控件对象,如下图,这两个控件就是我们设置了field name 的控件:
只有控件
然后就是最关键的⼀步操作了,在当前的Test类的界⾯执⾏如下操作:右击当前类的{}所包含界⾯-->选择Generate-->选择Form main(),点击后即会⽣成如下代码:
⽣成main函数
之后运⾏⼯程,即可显⽰出上述最简单的页⾯效果了。
2. 控件和布局
接下来,鄙⼈再对GUI Form中常⽤的布局和控件进⾏简单的介绍,当然,由于这些布局或控件的数量⽐较多,所以我也只是对其中的某⼀个进⾏属性和⽤法的简单介绍,⾄于其他的,⼤家可以参考这些介绍,⾃⾏尝试即可。
2.1 布局
下⾯先说布局,在GUI Form中提供了以下⼏种选择:
java修改html文件
BorderLayout,CardLayout,FlowLayout,FormLayout(JGoodies),GridBagLayout,GridLayoutManager(Intellij)等。在这⾥鄙⼈只简单讲解GridLayoutManager(Intellij)这个布局的使⽤。
⽬前来说,根据鄙⼈为数不多的使⽤经验来看,通过这个GridLayoutManager的布局,加上JPanel的使⽤,⼀般是可以实现任何布局上的效果的。⽐如,实现上下左右四个panel的效果:
简单的例⼦
上述效果的实现就是在系统的rootPanel的布局属性上选择GridLayoutManager(Intellij)后,再依次拖放四个JPanel控件到rootPanel,然后简单的调整各个控件的⼤⼩,给各个JPanel设置不同的背景⾊后实现的效果。
设置JPanel的布局
好了,关于布局的⽤法,就简单说到这⾥,因为它们的⽤法都太灵活了,需要⼤家去亲⾃实践,才能更好的实现你需要的效果。
2.2 控件
下⾯就讲解控件的属性和⽤法,就以最常⽤的JButton为例来对它的属性和基本⽤法进⾏讲解:
先来看下⾯两个截图中的GUI Form⽂件提供的Button控件的所有属性(需要勾选show expert properties),:
JButton所有属性1
JButton所有属性2
下⾯再针对上⾯两个截图中红框中的属性进⾏简单讲解,其他的属性鄙⼈也没有⽤过就不多说了,靠⼤家⾃⼰去尝试了。
HorizontalSizePolicy ⽔平尺⼨策略
可选择的值有can shrink,can grow,fixed,其效果都是跟它的字⾯意思差不多:
can shrink:⽔平⼤⼩可以收缩
can grow : ⽔平⼤⼩可以扩展
fixed:⽔平⼤⼩固定
请注意,如果JButton设置了prefered Size , MinimumSize , MaximumSize,且这个三个值都是⼀样的,那么就会使当前的HorizontalSizePolicy属性失效。
VerticalSizePolicy 竖直尺⼨策略,同上,只是是竖直⽅向的。
HorizontalAlign  ⽔平对齐⽅式
设置button位置的⽔平对齐⽅式,可选择的值有:
left:位置居左
right:位置居右
center:位置居中
fill:充满⽗容器
其作⽤也是同字⾯意思,但是button的位置是相对于⽗控件⽽⾔的,即⼀般都是Panel类型的控件。
VerticalAlign竖直对齐⽅式,同上⽔平对齐⽅式。
MinimumSize:最⼩尺⼨,PreferedSize:希望呈现的尺⼨,MaximumSize:最⼤尺⼨。
这三个属性是⼀组的,默认值都是[-1, -1],但是想要设置button为某个具体的尺⼨则需要将它们三个的值设置成⼀样的。
background:背景⾊
enabled:是否可以交互。默认都是可以交互的,取消选中后则不可交互。
font: 字体⼤⼩,点击后可选择其⼤⼩值。
foreground:字体颜⾊。
icon:设置按钮上的图⽚,点击后会引导你在⼯程⽬录中选择,所以需要设置图⽚的话,需要提前放到⼯程中。
margin:外边距,同所有的其他语⾔中的margin⼀样。
opaque: 不透明
该属性⼀般控件默认是选中的,但是有个特殊情况:JLabel,这个控件的该属性是默认不选中的,这时候,你若设置JLabel的背景就会发现,它死活不显⽰背景⾊。只有当JLabel的opaque属性选中后才会显⽰。
text:⽂字,即设置按钮上的⽂字
另外,提到按钮,最最最重要的当然是它的点击事件辣,所以这⾥鄙⼈也为⼤家提供⼀种创建某个控件的监听事件的快捷⽅式:
在Form⽂件中,右击要创建监听事件的控件
选择Create Listener
然后就会弹出⼀堆的监听事件,按钮的监听事件即为第⼀个ActionListener,选择后会回到该Form⽂件对应的class⽂件中,弹出如下对话框:
创建按钮事件的弹出对话框
点击ok即可完成创建,创建完成后,会在该Form⽂件对应的class⽂件中⽣成如下代码,在其中的actionPerformed()⽅法中即可完成相应的逻辑处理。
⾃动⽣成的监听事件代码
好了,⾄此就算是勉强给⼤家开了个java GUI相关内容的门缝,具体的掌握这个冷门的技术还是需要⼤家在⽤到的时候,亲⾃去上⼿实践才是。下⾯附上⼀些可能⼤家会想要了解的Java Swing相关介绍的博客链接:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。