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

网友投稿 212 2023-07-18


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(Strinhttp://g  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.cuthttp://();

}

}

public static void main(String[] args) {

new JTextAreaDemo3();

}

}

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


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Swing常用组件之多行文本区JTextArea
下一篇:Java编写迷宫小游戏
相关文章

 发表评论

暂时没有评论,来抢沙发吧~