文本框(JTestField)和密码框(JPassword)
JTextField是一个轻量级的组件,可以编辑单行文本,实现剪切,复制,粘贴,快捷键等工作,如果文本的长度超出显示范围,会自动滚动文本,JTextField类的构造方法
JTextFrame() :创建一个内容为空的文本框
JTextFrame(Document doc,String text,int columns) :创建具有指定文本内容,文本储存模型和列数的文本框
JTextFrame(int columns) :指定列数的文本框
JTextFrame(String text) :指定文本内容的文本框
JTextFrame(String text,int columns) :指定文本内容和列数的文本框
public void setText(String s):设置文本框中的文本为s。
public String getText():获取文本框中的文本。
public void setEchoChar(char c):设置文本框中的回显字符,只显示字符c。
public void setEditable(boolean b):设置文本框是否可编辑,默认为可编辑的。
public void addActionListener(ActionListener):向文本框增加动作监视器。
public void removeActionListener(ActionLisener):删除文本框上的动作监视器。
public void requesFocus() :获得焦点
实例代码:
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(); } }