当前位置: 移动技术网 > IT编程>开发语言>Java > Swing常用组件之文本框和文本区

Swing常用组件之文本框和文本区

2019年07月22日  | 移动技术网IT编程  | 我要评论
一、jtextfield(文本框)的使用 jtextfield是一个轻量级的组件,可以编辑单行文本,实现剪切,复制,粘贴,快捷键等工作,如果文本的长度超出显示范围,会自动

一、jtextfield(文本框)的使用

jtextfield是一个轻量级的组件,可以编辑单行文本,实现剪切,复制,粘贴,快捷键等工作,如果文本的长度超出显示范围,会自动滚动文本,jtextfield类的构造方法
1.jtextfield的常用构造方法:
  jtextfield() 构造一个新的 textfield。
 jtextfield(int columns) 构造一个具有指定列数的新的空 textfield。
  jtextfield(string text) 构造一个用指定文本初始化的新textfield。
 jtextfield(string text, int columns) 构造一个用指定文本和列初始化的新textfield。
2.jtextfield的常用方法:
    settext(string) 设置文本域中的文本值
    gettext()返回文本域中的输入文本值
    getcolumns()返回文本域的列数
    seteditable(boolean) 设置文本域是否为只读状态
3.jtextfield的使用示例:

package ch10; 
 
import java.awt.event.*; 
 
import javax.swing.*; 
 
public class logintest extends jframe implements actionlistener 
{ 
  private jpanel jp = new jpanel(); 
  jlabel name = new jlabel("请输入用户名"); 
  jlabel password = new jlabel("请输入密码"); 
  jlabel show = new jlabel(""); 
  private jlabel[] jl = new jlabel[]{name,password,show}; 
  jbutton login = new jbutton("登录"); 
  jbutton reset = new jbutton("重置"); 
  private jbutton[] jb = new jbutton[]{login,reset}; 
  private jtextfield jname= new jtextfield(); 
  private jpasswordfield jpass = new jpasswordfield(); 
  public logintest() 
  { 
    jp.setlayout(null); 
    for(int i=0;i<2;i++) 
    { 
      jl[i].setbounds(30,20+40*i,180,20); 
      jb[i].setbounds(30+110*i,100,80,20); 
      jb[i].addactionlistener(this); 
      jp.add(jl[i]); 
      jp.add(jb[i]); 
    } 
    jname.setbounds(130,15,100,20); 
    jp.add(jname); 
    jname.addactionlistener(this); 
    jpass.setbounds(130,60,100,20); 
    jp.add(jpass); 
    jpass.addactionlistener(this); 
    jpass.setechochar('*'); 
    jl[2].setbounds(10,180,270,20); 
    jp.add(jl[2]); 
    this.add(jp); 
    this.setbounds(200,200,300,300); 
    this.setvisible(true); 
    this.settitle("登录窗口"); 
    this.setdefaultcloseoperation(jframe.exit_on_close); 
  } 
  public void actionperformed(actionevent a) 
  { 
    if(a.getsource()==jname) 
    { 
      jpass.requestfocus(); 
    } 
    else if(a.getsource()==jb[1]) 
    { 
      jl[2].settext(""); 
      jname.settext(""); 
      jpass.settext(""); 
      jname.requestfocus(); 
    } 
    else  
    { 
      if(jname.gettext().equals("lixiang")&&string.valueof(jpass.getpassword()).equals("201407239")) 
      { 
        jl[2].settext("登录成功,欢迎您的到来!"); 
      } 
      else 
      { 
        jl[2].settext("对不起,您的密码或用户名错误!"); 
      } 
    } 
  } 
  public static void main(string args[]) 
  { 
    new logintest(); 
  } 
} 

二、jtextarea(文本区)的使用

1.jtextarea的常用构造方法:
        jtextarea() 构造新的 textarea。
        jtextarea(string  text) 构造显示指定文本的新的 textarea。
        jtextarea(int rows, int columns)  构造具有指定行数和列数的新的空 textarea。
        jtextarea(string  text, int rows, int columns)  构造具有指定文本、行数和列数的新的 textarea。

使用示例:

jtextarea t1 = new jtextarea();
jtextarea t2 = new jtextarea(2, 8);
jtextarea t3 = new jtextarea("jtextarea3");
jtextarea t4 = new jtextarea("jtextarea4", 5, 10);

2.jtextarea的常用方法:
使用示例:
t1.settext("jtextarea1");// settext()设置文本显示的内容
t2.append("jtextarea2");// append()方法会将给定文本追加到文档结尾。
t4.setlinewrap(true);// 设置文本区的换行策略。
t4.setfont(new font("标楷体", font.bold, 16));  //设置当前字体。
t4.settabsize(2);//使用settabsize()方法设置[tab]键的跳离距离

将jtextarea放入jscrollpane中,这样就能利用滚动的效果看到输入超过jtextarea高度的文字.

3.jtextarea使用的案例:

import java.awt.*; 
import java.awt.event.*; 
import javax.swing.*; 
 
//实现接口actionlistener 
public class jtextareademo3 implements actionlistener { 
 
  jframe jf; 
  jpanel jpanel; 
  jbutton jb1, jb2, jb3; 
  jtextarea jta = null; 
  jscrollpane jscrollpane; 
 
  public jtextareademo3() { 
 
    jf = new jframe("jtextarea案例3"); 
    container contentpane = jf.getcontentpane(); 
    contentpane.setlayout(new borderlayout()); 
 
    jta = new jtextarea(10, 15); 
    jta.settabsize(4); 
    jta.setfont(new font("标楷体", font.bold, 16)); 
    jta.setlinewrap(true);// 激活自动换行功能 
    jta.setwrapstyleword(true);// 激活断行不断字功能 
    jta.setbackground(color.pink); 
 
    jscrollpane = new jscrollpane(jta); 
    jpanel = new jpanel(); 
    jpanel.setlayout(new gridlayout(1, 3)); 
 
    jb1 = new jbutton("复制"); 
    jb1.addactionlistener(this); 
    jb2 = new jbutton("粘贴"); 
    jb2.addactionlistener(this); 
    jb3 = new jbutton("剪切"); 
    jb3.addactionlistener(this); 
 
    jpanel.add(jb1); 
    jpanel.add(jb2); 
    jpanel.add(jb3); 
 
    contentpane.add(jscrollpane, borderlayout.center); 
    contentpane.add(jpanel, borderlayout.south); 
 
    jf.setsize(400, 300); 
    jf.setlocation(400, 200); 
    jf.setvisible(true); 
 
    jf.addwindowlistener(new windowadapter() { 
      public void windowclosing(windowevent e) { 
        system.exit(0); 
      } 
    }); 
  } 
 
  // 覆盖接口actionlistener的方法actionperformed 
  public void actionperformed(actionevent e) { 
    if (e.getsource() == jb1) { 
      jta.copy(); 
    } else if (e.getsource() == jb2) { 
      jta.paste(); 
    } else if (e.getsource() == jb3) { 
      jta.cut(); 
    } 
  } 
 
  public static void main(string[] args) { 
    new jtextareademo3(); 
  } 
} 

以上就是本文的全部内容,希望对大家的学习有所帮助。

如您对本文有疑问或者有任何想说的,请 点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网