首页 > 编程 > Java > 正文

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

2019-11-26 14:22:26
字体:
来源:转载
供稿:网友

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

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

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表