1.接口:描述抽象的方法;只有方法的描述,没有方法的实现。
如果一个类实现了一个接口,必须覆盖这个接口中的所有方法。
2.多态:方法覆盖;方法重载。
3.子类对象的创建:先执行父类的方法,再执行子类的方法。
4.窗口。AWT
//自定义窗口类
public class MyFrame extends Frame {
public MyFrame() {
super("我的第一个窗口");//窗口标题
//设置窗口大小:x,y是窗口出现的位置,width和height是像素为单位
this.setBounds(200, 200, 400, 300);
this.setLayout(null);//不设置布局方式
Button bt01=new Button("确定");
bt01.setBounds(50, 50, 100, 60);//按钮的坐标相对于窗口
this.add(bt01);//把按钮添加到窗口中
MyListener m1=new MyListener();
bt01.addActionListener(m1);//m1为事件侦听器,bt01是事件源
//当前窗口绑定鼠标,这需要鼠标到侦听
MyMouseListener m2=new MyMouseListener();
this.addMouseListener(m2);
}
}
//定义一个侦听类(按钮)
public class MyListener implements ActionListener {
//抽象方法
public void actionPerformed(ActionEvent e) {
System.out.print("方法被执行");
System.exit(0);//退出
}
}
//鼠标侦听器
public class MyMouseListener implements MouseListener {
@Override//鼠标单击
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override//鼠标按下
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
System.out.println("按下了"+e.getX()+","+e.getY());
}
@Override//鼠标抬起
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override//鼠标进入
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override//鼠标离开
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
//入口类
public class TestMain {
public static void main(String args[]) {
//创建窗口对象
MyFrame f1=new MyFrame();
f1.setVisible(true);//显示窗口
}
}
5.用户登录窗口并简单验证
public class LoginFrame extends Frame implements ActionListener{
//Label:标签,文字提示
public Label labUName;
public Label labUPass;
//TextField:文本输入框
public TextField tfUname;
public TextField tfUpass;
//按钮
public Button btLogin;
public LoginFrame() {
//当前窗口标题
this.setTitle("用户登录");
//窗口大小:起始坐标;宽高
this.setBounds(200, 200, 400, 300);
//不设置布局方式,则根据参数布局
this.setLayout(null);
//创建标签
labUName=new Label("用户名");
labUPass=new Label("密码");
labUName.setBounds(50, 50, 80, 30);
labUPass.setBounds(50, 100, 80, 30);
this.add(labUName);
this.add(labUPass);
//创建输入框
tfUname=new TextField();
tfUpass=new TextField();
tfUname.setBounds(150 ,50, 80, 30);
tfUpass.setBounds(150 ,100, 80, 30);
this.add(tfUname);
this.add(tfUpass);
//创建按钮login
btLogin=new Button("登录");
btLogin.setBounds(100, 150, 60, 30);
this.add(btLogin);
btLogin.addActionListener(this);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
//获取用户输入到用户名和密码
if(this.tfUname.getText().equals("admin")&&this.tfUpass.getText().equals("123456")) {
//显示成功对话框
javax.swing.JOptionPane.showMessageDialog(this, "登录成功");
}else {
javax.swing.JOptionPane.showMessageDialog(this, "用户名或密码错误");
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
LoginFrame lf=new LoginFrame();
lf.setVisible(true);
}
}



本文介绍Java中的GUI编程实践,包括自定义窗口类、按钮及事件处理,并通过具体示例展示了用户登录窗口的设计与简单验证过程。
1995

被折叠的 条评论
为什么被折叠?



