java gui框架_java | JFrame JPanel JButton JLabel

3fb00351c822b63f4fc5042481308ceb.png

文前声明

我是一个练习时长4个月的java练习生

完全没有任何资格写java教程

这篇推送仅仅是因为

这个学期的java在GUI方面讲得过于差

所以我从头到尾都是依靠google

但其实也没有找到特别详尽的手把手GUI教程

所以谨以此文记录一下我的心路历程

更偏向于个人笔记而不是学术交流

(在此推荐易百教程的常规java教学

https://www.yiibai.com/java/

它拯救了我的前半个学期)

所以,如果你是大佬,真的真的不要继续看下去了

也卑微地欢迎大家来debug

JFrame

00

用java实现GUI相关功能主要有javax.swing和java.awt两种方法,具体可以自行google。

JFrame 用于创建一个界面的最外部框架,也就是Fig. 2显示出来的部分。它也是一个class,所以按照Fig. 1. line 6的方法创建。

a1a3beee4fbb01806f060c445c149d21.png

Fig. 1. JFrame code

jf.setTitle

就是set title的过程,这个名字会显示在JFrame的最上部,也就是在Fig. 2里"Setting JFrame"的位置。

jf.setSize

用来规定JFrame尺寸,第一项是width,第二项是height。这里的200我觉得应该是像素,如果不是的话我不负责。另外还有jf.setPreferredSize, jf.setMinimumSize, jf.setMaximumSize, 详见

https://alvinalexander.com/java/java-set-jframe-size/

jf.setLocationRelativeTo(null)

用于把JFrame设置在屏幕正中间。关于屏幕的位置坐标系可以看

https://docs.oracle.com/javase/7/docs/api/java/awt/Window.html

里面的第一张图。

jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)

用于在摁下JFrame上的关闭键时使整个GUI界面终止。所以这个很必要。

jf.setVisible(true)

用于显示JFrame。有的时候,比如需要实现“先在登录框登录成功,再显示内容框”的功能时,就需要在setVisible(true)和setVisible(false)之间转换。

JFrame设置成功的界面如Fig. 2.

058b11c3edf68590113badd16fa0f803.png

Fig. 2. Setting JFrame

JPanel

01

JPanel 是最简单的container class,个人的理解它的作用是为其它组件提供一个空白底板,让其它组件添加到JPanel上。而JPanel可以添加到JFrame上。

d429ad6e33e2cabfe12bb155e6dc5a1f.png

Fig. 3. JPanel code

增加的代码在line 11和line 12。其实此时界面看不出任何差别,看起来与Fig. 2时是一样的。

JButton

02

JButton 用于提供可以跟用户产生交互的按钮,也就是JButton可以对用户的点击作出反应。

9a2fb0977fe7d90f02fd9ece26b3cb97.png

Fig. 4. JButton code

Fig. 4. line 14括号中的"Button 1"是该button的显示名字,会出现在button上面,如Fig. 5. (暂时JButton还不具备“对点击作出具体反应”的功能)

2d53403c29f144663fb18e18495277ba.png

Fig. 5. Adding JButton

此时就可以顺便显示一下JPanel的妙用了。如果删除添加JPanel的语句,把JButton直接添加到JFrame上 (如Fig. 6. line 16-17),JButton会默认占据整个JFrame,并且连续添加两个JButton会导致Button 2覆盖Button 1,如Fig. 7.

(从Fig. 6也可以看到,如果只新建某组件(这里的jp),但并未add的话,是不会显示出来的)

b404954e139558640ce7b2e37a4c59fc.png

Fig. 6. JButton without JPanel code

743ad5eb3999d69a68a25190e2d72f3f.png

Fig. 7. Adding JButton without JPanel

JLabel

03

JLabel 用于显示一段字符串或图案,它与JButton最主要的区别就是,JLabel无法对鼠标行为作出回应,只是起到display的作用。

dfefff96e8a9b1cbd9a4ddab734d687f.png

Fig. 8. JLabel code

JLabel.setText

用于设置JLabel要显示的内容,比如这里是两段字符串,"This is the first label text" 和 "This is the second label text".

b090d3198989abe8a9f79a19f08594ab.png

Fig. 9. Adding JLabel

快乐的时光总是短暂的。基础的JComponent其实就差不多了,这个系列的下一次更新大概要很久以后了~

END

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值