Java Swing笔记】的更多相关文章

想到了解一下GUI主要是想用来做点小工具,记录一些笔记. 文本框自动换行和滚动条 private static JTextArea addJTextArea(JPanel panel, int x, int y, int width, int height, String text) { JTextArea jsText = new JTextArea(text); jsText.setLineWrap(true); jsText.setWrapStyleWord(true); JScrollP…
很多与AWT类似. 事件处理参考:Java学习笔记--AWT事件处理 1.设计模式: 模型:存储内容视图:显示内容控制器:处理用户输入· 2. 文本输入常用组件 2.1 文本域: JLabel labelname = new JLabel("username");JTextArea textname = new JTextArea(1,40);//参数也可以为("默认字符",行,列);JPanel panel = new JPanel();panel.add(lab…
前面介绍了AWT界面编程的若干技术,在编码实践的时候,会发现AWT用起来甚是别扭,它的毛病包括但不限于下列几点:1.对中文的支持不好,要想在界面上正常显示汉字,还得在运行时指定额外的运行参数“-Dfile.encoding=gbk”:2.Label标签控件居然无法分行展示文本,连换行这么基本的功能都不支持,真是让人醉了:3.AWT没提供专门显示图像的控件,只能由程序员自己定义单独的图像视图,繁琐的操作立马吓跑一票人:考虑到AWT属于Java1时代的产物,种种不足之处尚且情有可原.可是AWT拿来开…
提起AWT的标签控件Label,那个使用体验可真叫糟糕,不但不支持文字换行,而且对中文很不友好,既可能把中文显示为乱码,还不支持博大精深的各种中文字体.所幸Swing的升级版标签JLabel在各方面都做了优化,使之成为一个功能强大的标签控件,那么到底JLabel拥有哪些提升之处呢?且待笔者一一道来. 首先看JLabel相较Label增加的新方法,这些方法主要有下列几个:setOpaque:设置标签的背景是否为不透明.true表示不透明,false表示透明.注意如果想让setBackground方…
前面提过,AWT没提供能够直接显示图像的控件,这无疑是个令人诟病的短板,因为一上来就得由程序员自己去定义新控件,对于初学者来讲很不友好.这个问题在Swing中也解决掉了,不过Swing并未提供单独的图像视图,而是利用标签控件JLabel来显示图像.JLabel的setText方法用来设置标签上的文本,而setIcon方法用来设置标签上的图标,根据两个方法的调用与否状况,标签所展示的内容可分为下列三种情况:1.只调用setText方法,未调用setIcon方法,此时标签只显示文本.2.只调用set…
Swing的输入框仍然分成两类:单行输入框和多行输入框,但与AWT的同类控件相比,它们在若干细节上有所调整.首先说单行输入框,AWT的单行输入框名叫TextField,平时输入什么字符它便显示什么字符,可一旦调用了setEchoChar方法设置回显字符,TextField马上变成只显示密文字符了.然而尴尬之处在于,设置回显字符之后,就没有办法取消原来的回显设置,输入框对象从此只能傻乎乎地显示密文了.如此一来,程序代码难以判断某个输入框究竟会显示明文还是密文,也无法确定输入框文字的加密与否.这不可…
不管是AWT还是Swing,都把选择框分成两类:复选框和单选按钮,这两类控件无论是外观上还是功能上均有显著差异.例如,在外观方面,复选框是在方框内打勾,而单选按钮是在圆圈内画圆点:在功能方面,复选框允许多选,而同组的单选按钮只能选择其中一个.然而AWT的复选框和单选按钮统统采用Checkbox类型,区别之处在于是否加入了单选组CheckboxGroup.这不可避免又带来困惑,同样是Checkbox类型,代码该如何区分某个选择框到底是复选框还是单选按钮?显然AWT的控件设计很不合理,非常容易引起混…
前面介绍了选择框的用法,当时为了方便用户勾勾点点,无论是复选框还是单选按钮,统统把所有选项都摆在界面上.倘若只有两三个选项还好办,要是选项数量变多比如超过五个,这么多的选择框一齐在界面罗列,不光程序员排版费劲,用户瞅着也容易眼花.鉴于这些选择框往往选完一次就了事,难得有重新选择第二次的机会,因而在界面上全部铺开这些选择框实属浪费.更好的做法是在选择的时候才展开所有选项,选完之后就缩回只显示选中的那一项,一伸一缩之间才能充分利用有限的屏幕界面.以单选按钮的组合为例,许多个单选按钮只能选择其中一个,…
前面介绍了程序界面上一些简单控件的组合排列,它们用来表达相互之间联系较弱的信息倒还凑合,要是用来表达关联性较强的聚合信息就力不从心了.倘若只是简单信息的罗列,例如商品名称列表.新闻标题列表.学生姓名列表等,尚可使用列表框JList予以展示:倘若要求罗列复杂的排列信息,例如商品订单列表.新闻分类列表.学生成绩列表等等,像这种存在多项细节的信息列表就无法通过列表框表达,而应通过Swing的表格类型JTable加以描述.JTable如其名字所言,它的面貌正是分行分列的表格,每行是一条完整的信息,而每列…
传统的桌面程序基本是对某种类型的文件进行加工,例如Window自带的记事本用来读写文本文件,自带的画图程序用来查看和修改位图文件.为了方便用户切换各种操作,这些程序在窗口顶端放了一排菜单栏,单击菜单栏上的每个菜单,又会在下方弹出一列菜单项,就像下图所示的记事本菜单那样. 然后单击某个菜单项,比如“新建”.“打开”.“保存”等,记事本程序便会执行相应的处理操作.这组菜单在Swing中被分解为三种控件,首先是顶部的一整条菜单栏,对应的控件叫JMenuBar:其次是菜单栏上的每个菜单,对应的控件叫JM…