Swing常用组件之文本框和文本区
一、JTextField(文本框)的使用
JTextField是一个轻量级的组件,可以编辑单行文本,实现剪切,复制,粘贴,快捷键等工作,如果文本的长度超出显示范围,会自动滚动文本,JTextField类的构造方法
1.JTextField的常用构造方法:
JTextField()构造一个新的TextField。
JTextField(intcolumns)构造一个具有指定列数的新的空TextField。
JTextField(Stringtext)构造一个用指定文本初始化的新TextField。
JTextField(Stringtext,intcolumns)构造一个用指定文本和列初始化的新TextField。
2.JTextField的常用方法:
SetText(string)设置文本域中的文本值
GetText()返回文本域中的输入文本值
getColumns()返回文本域的列数
setEditable(Boolean)设置文本域是否为只读状态
3.JTextField的使用示例:
packagech10;
importjava.awt.event.*;
importjavax.swing.*;
publicclassLoginTestextendsJFrameimplementsActionListener
{
privateJPaneljp=newJPanel();
JLabelname=newJLabel("请输入用户名");
JLabelpassword=newJLabel("请输入密码");
JLabelshow=newJLabel("");
privateJLabel[]jl=newJLabel[]{name,password,show};
JButtonlogin=newJButton("登录");
JButtonreset=newJButton("重置");
privateJButton[]jb=newJButton[]{login,reset};
privateJTextFieldjname=newJTextField();
privateJPasswordFieldjpass=newJPasswordField();
publicLoginTest()
{
jp.setLayout(null);
for(inti=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);
}
publicvoidactionPerformed(ActionEventa)
{
if(a.getSource()==jname)
{
jpass.requestFocus();
}
elseif(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("对不起,您的密码或用户名错误!");
}
}
}
publicstaticvoidmain(Stringargs[])
{
newLoginTest();
}
}
二、JTextArea(文本区)的使用
1.JTextArea的常用构造方法:
JTextArea()构造新的TextArea。
JTextArea(String text)构造显示指定文本的新的TextArea。
JTextArea(introws,intcolumns) 构造具有指定行数和列数的新的空TextArea。
JTextArea(String text,introws,intcolumns) 构造具有指定文本、行数和列数的新的TextArea。
使用示例:
JTextAreat1=newJTextArea();
JTextAreat2=newJTextArea(2,8);
JTextAreat3=newJTextArea("JTextArea3");
JTextAreat4=newJTextArea("JTextArea4",5,10);
2.JTextArea的常用方法:
使用示例:
t1.setText("JTextArea1");//setText()设置文本显示的内容
t2.append("JTextArea2");//append()方法会将给定文本追加到文档结尾。
t4.setLineWrap(true);//设置文本区的换行策略。
t4.setFont(newFont("标楷体",Font.BOLD,16)); //设置当前字体。
t4.setTabSize(2);//使用setTabSize()方法设置[Tab]键的跳离距离
将JTextArea放入JScrollPane中,这样就能利用滚动的效果看到输入超过JTextArea高度的文字.
3.JTextArea使用的案例:
importjava.awt.*;
importjava.awt.event.*;
importjavax.swing.*;
//实现接口ActionListener
publicclassJTextAreaDemo3implementsActionListener{
JFramejf;
JPaneljpanel;
JButtonjb1,jb2,jb3;
JTextAreajta=null;
JScrollPanejscrollPane;
publicJTextAreaDemo3(){
jf=newJFrame("JTextArea案例3");
ContainercontentPane=jf.getContentPane();
contentPane.setLayout(newBorderLayout());
jta=newJTextArea(10,15);
jta.setTabSize(4);
jta.setFont(newFont("标楷体",Font.BOLD,16));
jta.setLineWrap(true);//激活自动换行功能
jta.setWrapStyleWord(true);//激活断行不断字功能
jta.setBackground(Color.pink);
jscrollPane=newJScrollPane(jta);
jpanel=newJPanel();
jpanel.setLayout(newGridLayout(1,3));
jb1=newJButton("复制");
jb1.addActionListener(this);
jb2=newJButton("粘贴");
jb2.addActionListener(this);
jb3=newJButton("剪切");
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(newWindowAdapter(){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
}
//覆盖接口ActionListener的方法actionPerformed
publicvoidactionPerformed(ActionEvente){
if(e.getSource()==jb1){
jta.copy();
}elseif(e.getSource()==jb2){
jta.paste();
}elseif(e.getSource()==jb3){
jta.cut();
}
}
publicstaticvoidmain(String[]args){
newJTextAreaDemo3();
}
}
以上就是本文的全部内容,希望对大家的学习有所帮助。