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(); } }
以上就是本文的全部内容,希望对大家的学习有所帮助。