文本域

将文本域添加到窗口的常用办法就是将它添加到面板或者其他的容器中:

JPanel panel = new JPanel();
JTextField textField = new JTextField("Default input", 20);
panel.add(textField);

上面的代码添加一个文本域,同时传递“Default input”,进行初始化。构造器的第二个参数设置了文本域的宽度。这里的宽度就是当前使用字体的下一个字符的宽度。如果希望文本域最多能输入 n 个字符,就应该把宽度设置为 n 列。实际上,应该将最大输入长度再多设 1 ~ 2 字符。
如果布局管理器需要缩放这个文本域,它会调节文本域的大小。在 JTextField 的构造器中设定的宽度并不是用户能输入的字符的个数的上限。用户可以输入更长的字符串,但是当文本长度超过文本域长度时输入就会滚动。用户通常不会喜欢滚动文本域,所以应该尽量把文本域设置的宽一些。如果需要在运行时重新设置列数,可以使用setColumns 方法。

使用setColumns 方法改变了一个文本域的大小之后,需要调动包含这个文本框的容器的 revalidate 方法。
textField.setColumns(10);
panel.revalidate();
revalidate 会重新计算容器内所有组件的大小,并且对他们进行布局。它并不是立即改变组件的大小,而是先给组件加上要修改的标记。这样避免了修改组件大小带来的重复计算。

  • JTextField(int cols)
    构造一个给定列数的空JTextField对象。

  • JTextField(String text, int cols)
    构造一个给定列数,给定初始字符串的JTextField对象

  • int getColumns()

  • void setColumns(int cols)
    获取或设置文本域使用的列数

  • void revalidate()
    重现计算组件的位置和大小

  • void setFont(Font f)
    设置组件的字体

  • void validate()
    重现计算组件的位置和大小。如果组件是容器,容器中包含的所有组件的位置和大小也被重现计算

  • Font getFont()
    获取组件的字体


标签和标签组件

  • JLabel(String text)
  • JLabel(Icon icon)
  • JLabel(String text, int align)`
  • JLabel(String text, Icon icon, int align)`
    text :标签中的文本
    icon:标签中的图标
    align:常量,LEFT(默认),CENTER,RIGHT
  • String getText()
  • void setText(String text)
    获取或设置标签的文本
  • Icon getIcon()
  • void setIcon(Icon icon)
    获取或设置标签的图标

密码域

密码域是一种特殊的文本域。用户输入的字符不显示出来。Swing 提供了JPassworldField类来实现这样的文本域。

  • JPasswordField(String text, int columns)
    构造一个新的密码域对象
  • void setEchoChar(char echo)
    为密码域设置回显字符。注意:独特的观感可以选择自己的回显字符。 0 表示重新设置为默认的回显字符。
  • char[] getPassword()
    返回密码域中的文本。为了安全起见,在使用之后应该覆盖返回的数组内容。

文本区

当用户输入的文本超过一行时,可以输入多行文本,并以“Enter”键换行。每行以“\n”结尾就需要使用JTextArea组件来接收这样输入。在构造器中可以指定文本的行数和列数:
textArea = new JTextArea(8, 40); // 8行1040列
处于稳妥考虑,列数可以设置大一些。此外,用户并不受限于指定的行数和列数,当输入过长时,文本会滚动。还可以用 setColumns 方法改变列数,用 setRows 改变行数。这些数值只是首选大小——布局管理器会对文本区进行缩放。
如果文本区的文本超出显示的范围,那么剩下的文本就会被剪裁掉。可以通过开启换行特性来避免剪裁过长的行。
text.setLineWrap(true); // 长的行被剪裁掉
换行只是视觉效果,文档中的文本并没有改变,在文本中并没有 \n 字符。


滚动窗格

在Swing 中,文本区没有滚动条。如果需要滚动条,可以将文本插入到滚动窗格中:
textArea = new JTextArea(8, 40);
JScrollPane scrollPane = new JScrollPane(textArea)

当滚动窗格管理文本区的视图时,如果文本超出了文本区可以显示的范围,滚动条就会自动的出现,并且,在删除部分文本后,当文本能显示在文本区范围内时,滚动条会自动的消失。滚动是有滚动窗格内部处理的,编程时无需无需处理滚动事件。所以,要想为组件添加滚动条,只需要将他们放入一个滚动个窗口中即可。


综合案例:

在下面的程序中

  • 首先,申请了文本域和密码域,为文本域和密码域申请一个面板,并把面板的布局设置为窗格布局。为文本域和密码域添加上用户名和密码的标签。最后,将该面板放置到框架的最上面。
  • 然后,创建一个文本区对象,用来存储显示输入的用户和密码,为文本区添加滚动窗口。这样,当行数很多时会出现窗口滚动,少的时候滚动消失,方便用户查看。最后,将该画板放到框架的中间区域。
  • 最后,创建一个按钮,目的是点击按钮,把写好的额用户名和密码传输到文本区内显示。为按钮进行动作监听和相应一系列操作。最后,把按钮添加到框架的最下面。

呈现的效果图在最后

package text;import java.awt.*;
import java.awt.event.*;
import javax.swing.*;public class TextComponentFrame extends JFrame{private static final long serialVersionUID = 1L;public static void main(String[] args) {TextComponentFrame textComponentFrame = new TextComponentFrame();textComponentFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);textComponentFrame.setVisible(true);}public static final int TEXTAREA_ROWS = 8;public static final int TEXTAREA_COLUMNS = 20;public TextComponentFrame(){final JTextField textField = new JTextField();      //申请文本域final JPasswordField passwordField = new JPasswordField();      //申请密码域JPanel northPanel = new JPanel();       //创建一个画板northPanel.setLayout(new GridLayout(2, 2));     //创建 2x2 窗格布局northPanel.add(new JLabel("User Name: ", SwingConstants.RIGHT));    //在画板右边添加用户名标签northPanel.add(textField);northPanel.add(new JLabel("Password: ", SwingConstants.RIGHT));     //在画板右边添加密码标签northPanel.add(passwordField);add(northPanel, BorderLayout.NORTH);        //将画板添加到框架上面final JTextArea textArea = new JTextArea(TEXTAREA_ROWS, TEXTAREA_COLUMNS); //创建文本区对象JScrollPane scrollPane = new JScrollPane(textArea);         //为文本区添加滚动条add(scrollPane, BorderLayout.CENTER);           //将滚动区域添加到画板中间JPanel southPanel = new JPanel();       //创建一个画板,放在框架下方JButton insertButton = new JButton("insert");       //创建一个插入按钮southPanel.add(insertButton);       //将按钮添加到画板上insertButton.addActionListener(new ActionListener(){    //为按钮添加动作监听public void actionPerformed(ActionEvent event){     //监听到按钮后所要回应的动作textArea.append("User name: " + textField.getText() + " Password: "+ new String(passwordField.getPassword()) + "\n");}});     add(southPanel, BorderLayout.SOUTH);    //把插入按钮添加到框架的下面pack();}private static final int DEFAULT_WIDTH = 700;private static final int DEFAULT_HEIGHT = 500;public Dimension getPreferredSize() {return new Dimension(DEFAULT_WIDTH, DEFAULT_HEIGHT);}
}

  • JTextArea(String text, int rows, int cols)
    构造一个新的文本区对象

  • void setColumns(int cols)
    设置文本区应该使用的首选列数

  • void setRows(int rows)
    设置文本区应该使用的首选行数

  • void append(String newText)
    将给定的文本追加到文本区中已有的文本的尾部

  • void setLineWrap(boolean wrap)
    打开或关闭换行

  • `void setWrapStyleWord(boolean world)**
    如果word 是true,超长的行会在字边框处换行。如果为false,超长的行被截断而不考虑字边框

  • void setTabSize(int c)
    将制表符设置为c列。注意:制表符不会被转化为空格

  • JScrollPane(Component c)
    创建一个滚动窗格,用来显示指定组件的内容。滚动条自动过得出现或消失

文本域、标签、密码域、文本区、滚动窗格——文本输入相关推荐

  1. Windows2003使用WEB方式修改域用户密码

    Windows2003使用WEB方式修改域用户密码 1. 前言 在客户端PC加入到域的情况下,用户修改自己的帐户密码非常方便,但是在生产环境中有时候客户端没有加入到域只是用其账号登录到某些应用系统,比 ...

  2. 标题标签、段落标签、文本格式化标签

    我们在浏览新闻或者博客的时候,首先阅读到的是标题,在HTML中,我们用H1至H6的标签对来显示定义标题,标题的默认显示方式是加粗左对齐,H1到H6字体大小逐级递减,换句话说,H后面的数字越大,字体越小 ...

  3. [ZT]Word设置“文档结构图”中文本的格式

    设置"文档结构图"中文本的格式 在设置"文档结构图"中文本的格式之前,必须首先拥有能够显示在"文档结构图"中的标题(例如具有内置标题样式的文 ...

  4. java隐含文本框_Linux_文本框中密码的隐藏与显示, HTML文本框中,如果设定为密 - phpStudy...

    文本框中密码的隐藏与显示 HTML文本框中,如果设定为密码框,则输入的值显示为"*",如果在后台管理中,需要相询密码,则无法及时掌握密码值. 使用Javascrtip控制,则能很快 ...

  5. php html 文本域,html文本域标签属性有哪些?html文本域标签属性用法介绍

    本篇文章主要介绍的是关于HTML文本域textarea标签的属性和简单的用法实例.文章内容很简单,很容易学习的,代码都是很基础的代码,还是没有难度的代码,所以想学习的请认真的自己敲代码.接下来让我们一 ...

  6. 前端:HTML/06/表单,表单元素(单行文本域,单行密码域,单选按钮,复选框,下拉列表,文本区域,上传文件域,各种按钮,隐藏域,lt;caption表格标题)

    表单<form>(块元素) 表单的概念:表单主要用来获取用户数据(信息),如:注册表单, 查询表单,登录表单. 表单的工作原理: 浏览有表单的网页,填写一些必要的信息,然后点击某个按钮进行 ...

  7. HTML——文本域标签(textarea)

    在  HTML 中还有一种特殊定义的文本样式,称为文本城.它与文本框的区别在于可以添加多行文字,从而可以输人更多的文本.这类控件在一些留言板中最为常见. 语法如下: <textarea name ...

  8. 第十三篇、文本框、密码框和文本域。

    文章目录 前言 一.文本框.密码框和文本域之间的对比 二.代码示例 1.文本框 2.密码框 3.文本域 总结 前言 上一篇我们共同学习了下拉框和列表框,本篇我们将学习文本框.密码框和回顾我们之前学习的 ...

  9. 密码域的HTML代码是,表单中的密码域password

    [实例介绍] 表单中的密码域password 在表单中还有一种文本字段的形式--密码域,输入到其中的文字均以星号"*"或圆点"●"显示. [基本语法] [语法介 ...

最新文章

  1. mysql自定义收藏分类_MYSQL中SHOW的使用整理收藏
  2. python之 启动一个子进程并等待其结束
  3. 英伟达驱动更新记录_N卡驱动更新软件(NVIDIA GeForce Experience) v3.16.0.122 官方版
  4. 区块链即数字生产关系
  5. 经典C语言程序100例之十三
  6. html语言中括号怎么打,HTML语言中括号(尖括号)的字符编码
  7. postman可以测试websocket吗_小海塔罗娱乐测试2021年可以脱单吗?
  8. java的hr样式,spring+spring mvc+mybatis开发java医院HR人事管理系统(加强版本+ shiro)...
  9. 【Vue】【Router】手动跳转用 this.$router.push() 时 $router 未定义的问题
  10. LeetCode 2140. 解决智力问题(动态规划)
  11. 【java基础知识】Spring Boot启动报错com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectExcepti
  12. 《天天数学》连载33:二月二日
  13. java实现物体下落效果_手撸一个物体下落的控件,实现雪花飘落效果
  14. (三)svn 服务器端之创建仓库
  15. 小狼毫 Rime 输入法任务导向式常用参数修改指南
  16. 利用计算机来对指纹,指纹识别系统(文献综述).doc
  17. 百货的客单价-林财添
  18. 安卓期末大作业——售票APP源码和设计报告
  19. (JAVA) 相反数
  20. python 图片打水印 透明图片合并

热门文章

  1. docker中konga的安装
  2. Sony官网的售后服务怎么样?
  3. SDL编程入门(28)每像素碰撞检测
  4. .Net Core 分布式微服务框架 - Jimu 添加 Swagger 支持
  5. 分布式计算模式:Stream
  6. 从零入门 HTML、CSS、JS、React,构建 ToDo 待办事项管理项目!
  7. windows下连接服务器
  8. python--斗地主
  9. NUC977 烧录裸机程序到DDR
  10. Python学习 —— open()函数