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

 更新时间:2016年05月08日 17:09:03   投稿:lijiao  
这篇文章主要为大家详细介绍了Swing常用组件之文本框(JTestField)和文本区(JTextArea),Swing是一个用于开发Java应用程序用户界面的开发工具包,本文开始带大家学习Swing

一、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(); 
  } 
} 

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

相关文章

  • Java 8中HashMap的底层原理解析

    Java 8中HashMap的底层原理解析

    HashMap作为Java中常用的数据结构之一,在JDK 1.8中经过了一系列的优化和改进,深入理解其底层原理,包括哈希算法、数组与链表结构、红黑树的引入等,有助于更好地使用和理解HashMap的性能特性,这篇文章主要介绍了Java 8中HashMap的底层原理,需要的朋友可以参考下
    2023-11-11
  • java实现简单的验证码功能

    java实现简单的验证码功能

    这篇文章主要为大家详细介绍了java实现简单的验证码功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-04-04
  • 基于常用json框架介绍和Jackson返回结果处理方式

    基于常用json框架介绍和Jackson返回结果处理方式

    这篇文章主要介绍了基于常用json框架介绍和Jackson返回结果处理方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • java实现系统捕获异常发送邮件案例

    java实现系统捕获异常发送邮件案例

    这篇文章主要为大家详细介绍了java实现系统捕获异常发送邮件案例,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • SpringBoot万字爆肝高级配置

    SpringBoot万字爆肝高级配置

    SpringBoot不仅支持常规的properties配置文件,还支持yaml语言的配置文件,yaml是以数据为中心的语言,在配置数据的时候具有面向对象的特征。application.properties是比较常见的配置文件,SpringBoot的全局配置文件的作用是对一些默认配置的配置值进行修改
    2022-07-07
  • Java锁之阻塞锁介绍和代码实例

    Java锁之阻塞锁介绍和代码实例

    这篇文章主要介绍了Java锁之阻塞锁介绍和代码实例,阻塞锁与自旋锁不同,它改变了线程的运行状态,需要的朋友可以参考下
    2014-09-09
  • springboot 实现Http接口加签、验签操作方法

    springboot 实现Http接口加签、验签操作方法

    这篇文章主要介绍了springboot 实现Http接口加签、验签操作,服务之间接口调用,通过签名作为安全认证来保证API的安全性,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-09-09
  • Java 插入排序之希尔排序的实例

    Java 插入排序之希尔排序的实例

    这篇文章主要介绍了Java 插入排序之希尔排序的实例的相关资料,需要的朋友可以参考下
    2017-07-07
  • Java中String.format的使用方法总结

    Java中String.format的使用方法总结

    这篇文章主要介绍了Java中String.format的用法总结的相关资料,需要的朋友可以参考下
    2017-03-03
  • Java 事务注解@Transactional回滚(try catch、嵌套)问题

    Java 事务注解@Transactional回滚(try catch、嵌套)问题

    这篇文章主要介绍了Java @Transactional回滚(try catch、嵌套)问题,Spring 事务注解 @Transactional 本来可以保证原子性,如果事务内有报错的话,整个事务可以保证回滚,但是加上try catch或者事务嵌套,可能会导致事务回滚失败
    2022-08-08

最新评论