java 输入框插件_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,运行测试代码之后,手机号输入框的界面效果如下图所示:

9b6419b387645dccd38342a0f45a4a41.png

再以输入6位密码为例,此时的密码输入框可通过以下代码创建:

TextField field = new TextField(); // 创建一个单行输入框

field.setColumns(6); // 设置输入框的长度为6个字符

field.setEchoChar('*'); // 设置输入框的回显字符为星号

field.setEditable(true); // 设置输入框允许编辑

同样在面板对象中添加field,运行测试代码之后,密码输入框的界面效果如下图所示:

1c07e2f03a2c34af4a14d5952dcd39ab.png

从上图可见,往密码框中输入字符,显示出来的都是星号。

需要特别注意的是,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); // 在面板上添加多行输入框

运行以上的多行输入框代码,可看到如下图所示的界面效果。

5740c987275ed5b168e51799c2d0a7d5.png

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值