常用的几种文本组件(JTextComponent)

一:JTextField  ,最简单的文本组件

<span style="font-size:18px;">//source code
import java.awt.GridLayout ;
import javax.swing.JTextField ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
class Tester
{
   public static void main(String args[])
   {
      JFrame frame = new JFrame("文本测试样例") ;
      JTextField name = new JTextField(30) ;
      JTextField noed = new JTextField("测试信息",30) ;
      JButton button = new JButton("登陆") ;
      JLabel namelabel = new JLabel("输入用户姓名") ;
      JLabel noedlabel = new JLabel("不可编辑文本") ;
      name.setColumns(1) ;
      noed.setColumns(30) ;
      noed.setEnabled(false) ;   //不可编辑文本
      frame.setLayout(new GridLayout(3,2)) ;
      frame.add(namelabel) ;
      frame.add(name) ;
      frame.add(noedlabel) ;
      frame.add(noed) ;
      frame.add(button) ;
      frame.setSize(300,100) ;
      frame.setLocation(400,400) ;
      frame.setVisible(true) ;

   }
}

这样写会发现文本无法锁定
改用绝对位置
import java.awt.GridLayout ;
import javax.swing.JTextField ;
import javax.swing.JFrame ;
import javax.swing.JButton ;
import javax.swing.JLabel ;
class Tester
{
   public static void main(String args[])
   {
      JFrame frame = new JFrame("文本测试样例") ;
      JTextField name = new JTextField(30) ;
      JTextField noed = new JTextField("测试信息",30) ;
      //JButton button = new JButton("登陆") ;
      JLabel namelabel = new JLabel("输入用户姓名") ;
      JLabel noedlabel = new JLabel("不可编辑文本") ;
      name.setColumns(1) ;
      noed.setColumns(30) ;
      noed.setEnabled(false) ;   //不可编辑文本
      namelabel.setBounds(10,10,100,20) ;
      noedlabel.setBounds(10,40,100,20) ;
      name.setBounds(110,10,80,20) ;
      noed.setBounds(110,40,50,20) ;
      //frame.setLayout(new GridLayout(3,2)) ;使用布局管理器会带来忽略默认参数的问题
      frame.add(namelabel) ;
      frame.add(name) ;
      frame.add(noedlabel) ;
      frame.add(noed) ;
      //frame.add(button) ;
      frame.setSize(300,100) ;
      frame.setLocation(400,400) ;
      frame.setVisible(true) ;

   }
}</span>

二:密码框 JPasswordField

这个有意思!

可以设置默认回显字符比如最常见的 ‘*’   也可以自定义字符,如下图

源代码:

<span style="font-size:18px;">import java.awt.Color ;
import javax.swing.JFrame ;
import javax.swing.JPasswordField ;
import javax.swing.JLabel ;
class Tester
{
    public static void main(String args[])
    {
       JFrame frame = new JFrame("密码框") ;
       JLabel defaultEcho = new JLabel("默认回显字符") ;
       JLabel newEcho = new JLabel("自定义回显$") ;
       JPasswordField jpf1 = new JPasswordField();
       JPasswordField jpf2 = new JPasswordField();
       jpf2.setEchoChar('$') ;
       defaultEcho.setBounds(10,10,100,20) ;
       newEcho.setBounds(10,40,100,20) ;
       jpf1.setBounds(110,10,80,20) ;
       jpf2.setBounds(110,40,50,20) ;
       frame.setLayout(null) ;
       frame.add(defaultEcho) ;
       frame.add(jpf1) ;
       frame.add(newEcho) ;
       frame.add(jpf2) ;
       frame.setBackground(Color.orange) ;
       frame.setSize(300,100) ;
       frame.setLocation(400,400) ;
       frame.setVisible(true) ;
    }
}</span>

三:多行文本 JTextArea

原谅我这句话实在是背不下来,只能指望复制文档

JScrollPane.VERTICAL_SCROLLBAR_ALWAYS ,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS

反正加上这句,就可以加上拖动条了 -_-|||

源代码:

<span style="font-size:18px;">import java.awt.GridLayout ;
import javax.swing.JFrame ;
import javax.swing.JLabel ;
import javax.swing.JTextArea ;
import javax.swing.JScrollPane ;  //神奇的拖动条
class Tester
{
   public static void main(String args[])
   {
      JFrame frame = new JFrame("多行文本") ;
      JTextArea ta = new JTextArea(20,10) ;
      JLabel label = new JLabel("多行文本:",JLabel.CENTER) ;
      JScrollPane sc = new JScrollPane(ta,JScrollPane.VERTICAL_SCROLLBAR_ALWAYS ,JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS ) ;
      frame.setLayout(new GridLayout(2,1)) ;
      frame.add(label) ;
      frame.add(sc) ;
      frame.setSize(400,200) ;
      frame.setLocation(400,400) ;
      frame.setVisible(true) ;
   }
}
</span>
时间: 2024-11-11 21:03:28

常用的几种文本组件(JTextComponent)的相关文章

【REACT NATIVE 系列教程之十三】利用LISTVIEW与TEXTINPUT制作聊天/对话框&&获取组件实例常用的两种方式

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自[黑米GameDev街区] 原文链接: http://www.himigame.com/react-native/2346.html 本篇Himi来利用ListView和TextInput这两种组件实现对话.聊天框. 首先需要准备的有几点:(组件的学习就不赘述了,简单且官方有文档) 1. 学习下 ListView: 官方示例:http://reactnative.cn/docs/0.27/tutorial.html#content

【Flutter学习】基本组件之文本组件Text

一,概述 文本组件(Text)负责显示文本和定义显示样式, 二,继承关系 Object > Diagnosticable > DiagnosticableTree > Widget > StatelessWidget > Text 三,构造方法 单一格式(Text( )) 构造方法创建,只能生成一种style Text() const Text(this.data, { Key key, this.style, this.textAlign, this.textDirecti

html常用表单元素(组件)

html常用表单元素(组件): 语法: <input type = ?/> 总共有10种,另外两种为文本域textarea,下拉列表选择框 select 问号代表的有以下十种: 1. 文本框(默认——如果没有指定type,默认显示文本框) text 语法<input /> 2.密码框——password 3.单选按钮——radio 4.复选框——checkbox 5.普通按钮——button 6.提交按钮——submit 7.重置按钮——reset 8.文件域——file 9.图像

iOS富文本组件的实现—DTCoreText源码解析 数据篇

本文转载 http://blog.cnbang.net/tech/2630/ DTCoreText是个开源的iOS富文本组件,它可以解析HTML与CSS最终用CoreText绘制出来,通常用于在一些需要显示富文本的场景下代替低性能的UIWebView,来看看它是怎样解析和渲染HTML+CSS的,总体上分成两步: 数据解析—把HTML+CSS转换成NSAttributeString 渲染—用CoreText把NSAttributeString内容渲染出来,再加上图片等元素 本篇先介绍第一步,数据解

最常用的6种原型文件格式对比

做互联网产品经理的小伙伴一定不会对"原型"这个词感到陌生.它就像"用户体验"一样经常被各类人挂在嘴边.原型是一种让用户提前体验产品.交流设计构想.展示复杂系统的方式.就本质而言,原型是一种沟通工具.在这里为大家介绍最常用的6种原型图文件格式以及各自的优缺点. 做互联网产品的小伙伴一定不会对"原型"这个词感到陌生.它就像"用户体验"一样经常被各类人挂在嘴边.原型是一种让用户提前体验产品.交流设计构想.展示复杂系统的方式.就本质而

Android中常用的三种存储方法浅析

Android中常用的三种存储方法浅析 Android中数据存储有5种方式: [1]使用SharedPreferences存储数据 [2]文件存储数据 [3]SQLite数据库存储数据 [4]使用ContentProvider存储数据 [5]网络存储数据 在这里我只总结了三种我用到过的或即将可能用到的三种存储方法. 一.使用SharedPreferences存储数据 SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置信息比如窗口状态,它的本质是基

C#1(.net和C#的关系、VS与.net的对应关系、VS2012常用的几种应用程序、C#定义一个类的方法、类页面内容的解释、定义Person的类、调用Person类的方法、命名规范、数值类型)

1..net和C#的关系 .net是一个开发平台,C#是应用在.net平台上的一种语言.   2.VS与.net的对应关系  3.VS2012常用的几种应用程序 第一种是Windows窗体应用程序,也即是我们常用的C/S端的应用软件: 第二种是控制台应用程序,主要是用来学习调试C#代码的(老师上课应用的模式): 第三种是空Web应用程序,建立空的网页模式,B/S模式: 第四种是Web 窗体应用程序,建立后会生成一些常用的网页组件和功能,例如JS.image等,也是B/S模式. 4.C#定义一个类

最常用的两种C++序列化方案的使用心得(protobuf和boost serialization)

导读 1. 什么是序列化? 2. 为什么要序列化?好处在哪里? 3. C++对象序列化的四种方法 4. 最常用的两种序列化方案使用心得 正文 1. 什么是序列化? 程序员在编写应用程序的时候往往需要将程序的某些数据存储在内存中,然后将其写入某个文件或是将它传输到网络中的另一台计算机上以实现通讯.这个将 程序数据转化成能被存储并传输的格式的过程被称为"序列化"(Serialization),而它的逆过程则可被称为"反序列化" (Deserialization). 简单

数据导入HBase最常用的三种方式及实践分析

数据导入HBase最常用的三种方式及实践分析         摘要:要使用Hadoop,需要将现有的各种类型的数据库或数据文件中的数据导入HBase.一般而言,有三种常见方式:使用HBase的API中的Put方法,使用HBase 的bulk load工具和使用定制的MapReduce Job方式.本文均有详细描述. [编者按]要使用Hadoop,数据合并至关重要,HBase应用甚广.一般而言,需要 针对不同情景模式将现有的各种类型的数据库或数据文件中的数据转入至HBase 中.常见方式为:使用H