当前位置:首页 » 编程语言 » jtextfieldjava

jtextfieldjava

发布时间: 2022-05-07 21:43:16

java 中 JTextArea 和 JTextField 的有什么区别

文本输入框、密码输入框

文本输入框包括两种,单行文本输入框 (JTextField) 和多行文本输入框 (JTextArea)。密码输入框则只有一种 (JPasswordField)。JPasswordField 是 JTextField 的子类,它们的主要区别是 JPasswordField 不会显示出用户输入的东西,而只会显示出程序员设定的一个固定字符,比如 '*'。

下面的示例图和代码是 JTextField、JPasswordField 和 JTextArea 的示例:

import javax.swing.*;
import javax.swing.event.*;

public class TestTexts extends JFrame {

private JLabel label = new JLabel("Status");
private JTextField textField;
private JPasswordField pwdField;
private JTextArea textArea;

public TestTexts() {
super("Test Texts");
setDefaultCloseOperation(EXIT_ON_CLOSE);
getContentPane().setLayout(new java.awt.FlowLayout());

textField = new JTextField(15);

textField.addCaretListener(new CaretListener() {
public void caretUpdate(CaretEvent e) {
// 如果改变了内容,就可以即时更新 label 显示的内容
label.setText(textField.getText());
}
});

pwdField = new JPasswordField(15);
pwdField.setEchoChar('#');

textArea = new JTextArea(5, 15);
textArea.setLineWrap(true);

getContentPane().add(textField);
getContentPane().add(pwdField);
getContentPane().add(textArea);
getContentPane().add(label);

setSize(200, 200);
}

public static void main(String[] args) {
TestTexts tt = new TestTexts();
tt.show();
}
}

上例中,我们构造了一个宽度为 15 个字符的单行文本框 (textField = new JTextField(15);),并使用 addCaretListener 方法添加了一个 CaretListener (textField.addCaretListener ...)。CaretListener 监听文本光标的移动事件。当用户使用键盘、鼠标等移动了文本光标在 JTextField 中的位置时触发这个事件。我们需要重载 caretUpdate(CaretEvent e) 对事件进行处理 (public void caretUpdate(CaretEvent e) ...)。这样,我们可以在这里做类似 VB 中 TextBox 的 OnChange 事件中做的事情。

JTextField 有 5 个构造方法,常用其中的四个:

JTextField()
JTextField(int columns),如上例 textField = new JTextField(15);
JTextField(String text)
JTextField(String text, int columns)

其中,参数 text 是单行文本框的初始内容,而 columns 指定了单行文本框的宽度,以字符为单位。JTextField 中的文本内容可以用 getText() 方法获得。也可以用 setText 方法指定 JTextField 中的文本内容。

JPasswordField 是 JTextField 的子类,其构造方法也是类似的。JPasswordField 提供了 setEchoChar(char ch) 方法设置为了隐藏密码而显示的字符,默认为 '*' 字符,上例中则设置为了 '#' 字符 (pwdField.setEchoChar('#');)。与 JTextField 一样,JPasswordField 也用 getText 方法和 setText 获得或者设置文本内容 (当然在用户界面上是隐藏的)。

JTextField 是单行文本框,不能显示多行文本,如果想要显示多行文本,就只好使用多行文本框 JTextArea 了。JTextArea 有六个构造方法,常用的也是四个:

JTextArea()
JTextArea(int rows, int columns)
JTextArea(String text)
JTextArea(String text, int rows, int columns)

text 为 JTextArea 的初始化文本内容;rows 为 JTextArea 的高度,以行为单位;columns 为 JTextArea 的宽度,以字符为单位。如上例中就构造了一个高 5 行,宽 15 个字符的多行文本框 (textArea = new JTextArea(5, 15);)。

多行文本框默认是不会自动折行的 (不过可以输入回车符换行),我们可以使用 JTextArea 的 setLineWrap 方法设置是否允许自动折行。setLineWrap(true) 是允许自动折行,setLineWrap(false) 则是不允许自动折行。多行文本框会根据用户输入的内容自动扩展大小,不信,自己做个实验——如果不自动折行,那么多行文本框的宽度由最长的一行文字确定的;如果行数据超过了预设的行数,则多行文本框会扩展自身的高度去适应。换句话说,多行文本框不会自动产生滚动条。怎么办?后面讲到滚动窗格 (JScrollPane) 的时候,你就知道了。

多行文本框里文本内容的获得和设置,同样可以使用 getText 和 setText 两个方法来完成。

Ⅱ java中JTextField什么意思

是api里面得一个文本主键,要掉用它就要import实现接口,对于初学者建议先看写基础点得书,孙卫琴的《Java面向对象编程》 ,良葛格(林信良)的《java学习笔记 》都还不错,不要一来就看<<Thinking in Java>>太难了,即使要看也最好看英文版得,翻译得自己感觉翻译得不咋样

Ⅲ java中怎么在文本框(JTextField)中输出Int型的数字

要输出到UI界面或者到控制台都只能是字符串的形式。只有后台参与逻辑、算术运算的时候才需要有整形这种类型的存在。将文本框中的字符串转换成int有两种方式:

第一种就是强制类型转换。

例如:inta=(int)"3";

第二种方式就是使用java提供的自动装箱拆箱功能,使用整形类型的包装类。

例如:Integera=Integer.parseInt("3");


在计算机中我们能够通过界面UI呈现出来的字符都是字符串。当然你这里说的JTextField中的文本当然也不例外。程序开发中之所以有整形(byte, short,int ,long),只是为了程序在后台进行算术运算和逻辑运算方便而已,能够将计算机语言和我们人类的自然语言相互靠拢,方便程序的编写。

Ⅳ java中获取JTextField中的内容

获得 JTextField 中的内容的方法是 : jtf.getText();API中有这个方法,你看看吧,而且,jtf.setText()方法可以设置 JTextField 中的内容。
希望能够帮助到你,望采纳!

Ⅳ 怎么样在java中设置jTextField可输入的字符数

//引用方法:
//JtextFieldjtf=newJTextFiel()
//jtf.setDocument(newClsNumberDocument(5));


importjavax.swing.text.PlainDocument;
importjavax.swing.text.AttributeSet;
importjavax.swing.text.BadLocationException;
importjava.awt.Toolkit;
/**
*<p>Title:限制输入为数字</p>
*@authorWancar
*@version0.5
*日期2002-03-21
*@right(c)2000-2001.
*
*@description
*限制输入为数字的文本类
*
*并行策略描述(可选)
*修改历史:
*无
*修改描述:无
*
*内部类清单:
*无
*/
/**
*限制输入为数字的文本类
*/
{
/**
*
*/
=1L;
privatebooleanisCanBeNegative=false;//可以为负数
privatefinalstaticintSTRING_MAX_LEN=255;//最大长度
privateintlen=STRING_MAX_LEN;//当前可接受的最大长度
/**
*构造方法
*/
publicClsNumberDocument(){
}
/**
*构造方法
*
*@paramlen
*限制的长度
*/
publicClsNumberDocument(intlen){
this.len=len;
}
/**
*可以为付数并限制长度
*
*@paramisCanBeNegative
*是否可以为负数
*@paramlen
*限制的最大长度
*/
publicClsNumberDocument(booleanisCanBeNegative,intlen){
this.isCanBeNegative=isCanBeNegative;
this.len=len;
}
//变量falg的作用是,通过传入的数是正数还是负数来决定数字的位数
//以便做到指定数字位数时,只要考虑数字的位数,而无需考虑正负号
//所占用的位数。
privatebooleanfalg=false;
/**
*实现的插入方法
*
*@paramoffset
*偏移
*@params
*要接受的字符串,在拷贝粘贴时会有多个字符
*@paramattributeSet
*@throwsBadLocationException
*/
publicvoidinsertString(intoffset,Strings,AttributeSetattributeSet)
throws
BadLocationException{
try{
if(isAllNumber(s)){
finalintlength=this.getLength();
if(s.charAt(0)=='-'){
if(this.isCanBeNegative){
if(length==0){
this.len=falg?len:len+1;
falg=true;
super.insertString(offset,s,attributeSet);
}
}
}else{
if(length==0){
this.len=falg?len-1:len;
falg=false;
}
if(length<len){
Stringsrc=this.getText(0,length);
Double.parseDouble(src.substring(0,offset)+s
+src.substring
(offset,src.length()));
super.insertString(offset,s,attributeSet);
}
}
}
}catch(Exceptionex){
Toolkit.getDefaultToolkit().beep();
}
}
/**
*判断字符串是否全是数字
*
*@params
*@return
*/
privatebooleanisAllNumber(Strings){
booleanret=true;
if(s.length()>0){
char[]buf=s.toCharArray();
for(inti=0;i<buf.length;i++){
charc=buf[i];
if(c<'0'||c>'9'){
if(c!='.'&&c!='-'){
ret=false;
break;
}
}
}
}else{
ret=false;
}
returnret;
}
}

Ⅵ java JTextField中的内容比较

先理解下你的代码:
----------------------------存在的问题-----------------------------------------
JTextField text1 = new JTextField("");

String s1=text1.getText(); //此时s1的字符串就是“”
if(s1.equals("111"))//你试图让字符串""和字符串"111"比较。当然是false了

所以s1要在点击按钮的时候在取得。你要写死了。他就只取得一次。就是最开始赋值的时候,他取得了一次text1的值。无论你后来如何修改text1的值。对于s1来说没用。
---------------------------------------------------------------------------------
修改建议:1:去掉button1外面的if判断。
2:把if判断写到button1动作监听里面,并在判断前取得一次text1的值给予s1

----------------------------------修改-----------------------------------------
button1.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
String s1 = text1.getText();
if (s1.equals("111")){
JOptionPane.showMessageDialog(button1, "ok");
}
}
});

Ⅶ java中JTextField如何强制失去焦点或者赋予焦点

让JTextField文本框响应焦点事件 即可.

核心代码

JTextFieldjtf=newJTextField(10);jtf.addFocusListener(newFocusListener(){publicvoidfocusLost(FocusEvente){//失去焦点时System.out.println("失去了焦点");jtf.setBackground(Color.WHITE);}publicvoidfocusGained(FocusEvente){//获得焦点时System.out.println("获得了焦点");tf.setBackground(Color.PINK);}});

效果图

参考代码

importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;{JTextFieldjtf;publicTextFrame(){JPaneljp=newJPanel();jtf=newJTextField(10);jtf.addFocusListener(newFocusListener(){@OverridepublicvoidfocusLost(FocusEvente){//失去焦点时System.out.println("失去了焦点");jtf.setBackground(Color.WHITE);}@OverridepublicvoidfocusGained(FocusEvente){//获得焦点时System.out.println("获得了焦点");jtf.setBackground(Color.PINK);}});jp.add(jtf);JButtonjb=newJButton("点击按钮,文本框会失去焦点");add(jb,BorderLayout.NORTH);add(jp,BorderLayout.SOUTH);setTitle("DEMO");setSize(300,220);//窗口大小setLocationRelativeTo(null);//窗口居中setDefaultCloseOperation(EXIT_ON_CLOSE);//窗口点击关闭时,退出程序setVisible(true);}publicstaticvoidmain(String[]args){newTextFrame();}}

Ⅷ 如何获取java中jtextfield

JTextField jtf = new JTextField(10);
jtf.setText("123");//设置文本框的默认文本是123

如果想要获得jtf文本框里的数据.可以使用
String str = jtf.getText();//得到字符串123
如果想要得到整数类型.就转换一下
int x = Integer.parseInt(str);//得到了整数123

Ⅸ java里的JTextField文本框怎么设置大小

  1. 文本框.setBounds(10,10,30,170) 设置位置。
    文本框的宽是改不了的,只有长度才能改变,JTextField jtf = new JTextField(length);
    length大了,文本框就长了。
    想要长宽可变的文本框可用:JTextArea jta = new JTextArea(长,宽);

  2. JTextArea jta = new JTextArea(长,宽); 也是用jta.setText(); 来显示的;
    与JTextField用法几乎一样;具体用法可查API。

  3. 代码如下:

    1.//核心代码第一部分,设置文本框,密码框长宽;

    2.wbk=newJTextField(8);//在这个窗口大小里,设置长度为8,比较合适;

    3.mmk=newJPasswordField(8);//密码框也设置长度为8;

    4.//核心代码第二部分,把文本框,密码框等加入到JPanel里;

    5.JPaneljpwbk=newJPanel();//1放文本框的JPanel面板;

    6.jpwbk.add(wbk);//把文本框放入;

    7.p[0].add(jpwbk);//把JPanl放入网格布局里; 8.JPaneljpbutton0=newJPanel();//2放按钮的JPanel面板(按钮也小点好看点); 9.jpbutton0.add(button[0]);

    10.jp[0].add(jpbutton0);

    11.jp[0].add(biaoqian[2]);

    12.JPaneljpmmk=newJPanel();//3放密码框的JPanel面板

    13.jpmmk.add(mmk);

    14.jp[0].add(jpmmk);

热点内容
安卓设置页面是怎么 发布:2024-05-21 01:32:51 浏览:520
学生成绩管理系统数据库设计 发布:2024-05-21 01:14:41 浏览:42
我的世界什么指令直接出现服务器 发布:2024-05-21 01:10:00 浏览:397
星等算法 发布:2024-05-21 00:53:06 浏览:509
李兴华的java视频 发布:2024-05-21 00:49:55 浏览:605
数据库4种索引类型 发布:2024-05-21 00:47:29 浏览:241
给服务器添加另一个ip 发布:2024-05-21 00:40:37 浏览:821
搭建ftp服务器出现微软蓝屏 发布:2024-05-21 00:35:18 浏览:369
ftp怎么加照片 发布:2024-05-21 00:14:37 浏览:623
redisphp机制 发布:2024-05-21 00:01:27 浏览:124