| import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
//下行说明主类派生自JFrame/框架类,要实现ActionListener接口以处理动作事件
class LoginFrame extends JFrame implements ActionListener {
//以下四行用于声明要加到框架窗口中的所有组件
JLabel UserLabel,PasswordLabel,UserResult,PasswordResult;
JTextField User;
JPasswordField Password;
JButton LoginButton,ExitButton;
public LoginFrame() {
super("登录");//调用父类构造方法,设置窗口标题
setSize(300,200);//设置窗口大小
getContentPane().setLayout(new GridLayout(5,2,10,10));//设置布局管理器,将窗口分成5行2列,行、列间保留10个像素的空白
//以下8行具体创建组件实例
UserLabel=new JLabel("用户名称:");
PasswordLabel=new JLabel("用户密码:");
UserResult=new JLabel(" ");
PasswordResult=new JLabel(" ");
User=new JTextField(10);
Password=new JPasswordField(10);
LoginButton=new JButton("登录");
ExitButton=new JButton("退出");
//以下两行设置用于保存结果的标签的前景色属性
UserResult.setForeground(Color.blue);
PasswordResult.setForeground(Color.blue);
//以下两行为"登录"按钮与"退出"按钮注册监听者
LoginButton.addActionListener(this);
ExitButton.addActionListener(this);
//以下八行将所有组件加入到框架窗口中
getContentPane().add(UserLabel);
getContentPane().add(User);
getContentPane().add(PasswordLabel);
getContentPane().add(Password);
getContentPane().add(LoginButton);
getContentPane().add(ExitButton);
getContentPane().add(UserResult);
getContentPane().add(PasswordResult);
//以下一行用于窗口事件监听者注册
addWindowListener(new WindowManager());
setVisible(true);//使框架窗口变为可见
}
//以下函数用于处理按钮动作事件
public void actionPerformed(ActionEvent evt)
{
if(evt.getSource()==LoginButton)//表明按下了"登录"按钮
{
UserResult.setText("用户名称:"+User.getText());
PasswordResult.setText("用户密码:"+Password.getPassword());
}
else
if(evt.getSource()==ExitButton)//表明按下了"退出"按钮
{
dispose();
System.exit(0);
}
}
//以下为系统主函数,是程序的入口
public static void main(String args[]) {
LoginFrame mainFrame = new LoginFrame();//创建框架窗口实例
}
}
class WindowManager extends WindowAdapter//窗口事件监听者类
{
public void windowClosing(WindowEvent evt)//本方法用于窗口关闭事件
{
JFrame frame=(JFrame)(evt.getSource());
frame.dispose();
System.exit(0);
}
} |