Java开发笔记(一百二十一)AWT输入框
2019-08-16 10:00:58来源:博客园 阅读 ()
Java开发笔记(一百二十一)AWT输入框
前面介绍了文本标签Label,该控件展示的文字是不可编辑的,若要用户在界面上输入文本,就得使用专门的编辑框控件。在AWT的控件家族当中,用作编辑框的有两种控件,分别是单行输入框TextField和多行输入框TextArea。
TextField主要用于输入短小精悍的单行文字,跟Label一样,它拥有setPreferredSize、setText与setFont方法,但没有setAlignment方法,因为输入框内的文字只能向左对齐。除此之外,TextField还提供了下列几个与编辑框有关的方法:
getText:获取输入框中的文本串。
setColumns:设置输入框的长度为11个字符,但允许输入更多的字符。
setEditable:设置输入框是否允许编辑。true表示允许,false表示不允许。
setEchoChar:设置输入框的回显字符。该方法用来实现密码输入框的功能,用户每输入一个字符,密码框就回显一个星号符“*”,这个星号便是setEchoChar方法设置的回显字符。
以输入11位手机号码为例,此时的手机号输入框可通过以下代码创建:
TextField field = new TextField(); // 创建一个单行输入框 field.setColumns(11); // 设置输入框的长度为11个字符 field.setEditable(true); // 设置输入框允许编辑
在面板对象中添加field,运行测试代码之后,手机号输入框的界面效果如下图所示:
再以输入6位密码为例,此时的密码输入框可通过以下代码创建:
TextField field = new TextField(); // 创建一个单行输入框 field.setColumns(6); // 设置输入框的长度为6个字符 field.setEchoChar('*'); // 设置输入框的回显字符为星号 field.setEditable(true); // 设置输入框允许编辑
同样在面板对象中添加field,运行测试代码之后,密码输入框的界面效果如下图所示:
从上图可见,往密码框中输入字符,显示出来的都是星号。
需要特别注意的是,TextField提供了setEchoChar方法来设置回显字符,却未提供能够取消回显的逆向操作,这意味着:只要调用一次setEchoChar方法,那么该输入框将永远显示指定的回显符,而无法恢复显示明文。唯一的解决办法是,先从面板上移除这个输入框,重头创建新的输入框再添加到面板上,如此操作的代码片段示例如下:
panelCenter.remove(field); // 从中央面板上移除设置了回显的密码框 field = new TextField(); // 创建一个单行输入框 field.setColumns(11); // 设置输入框的长度为11个字符 panelCenter.add(field); // 在中央面板上添加输入框 frame.setVisible(true); // 把最新的界面显示到窗口上
由于TextField只能输入一行文本,无法输入更多的文字,因此AWT又提供了TextArea来接收多行文本。与TextField相比,TextArea多了个setRows方法用于设置输入框的高度(若干行的文字高度),同时取消了回显符设置方法setEchoChar。下面是TextArea与编辑框有关的几个方法说明:
getText:获取输入框中的文本串。
setColumns:设置输入框的长度为11个字符,但允许输入更多的字符。
setRows:设置输入框的高度为3行字符,但允许输入更多行。
setEditable:设置输入框是否允许编辑。true表示允许,false表示不允许。
多行输入框在编码上没啥难点,比如显示一个20个字符宽、3行字符高的输入框,使用TextArea实现的代码片段如下:
TextArea area = new TextArea(); // 创建一个多行输入框 area.setEditable(true); // 设置输入框允许编辑 area.setColumns(20); // 设置输入框的长度为20个字符 area.setRows(3); // 设置输入框的高度为3行字符 panel.add(area); // 在面板上添加多行输入框
运行以上的多行输入框代码,可看到如下图所示的界面效果。
更多Java技术文章参见《Java开发笔记(序)章节目录》
原文链接:https://www.cnblogs.com/pinlantu/p/11154080.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash