1. 接口: 在类的继承中要求子类必须重写父类的方法就用到了接口。
接口的定义:用关键字:interface
接口的属性:常量值
接口的方法:无方法体,只定义方法的返回类型,方法名, 参数列表
接口可以实现多个继承。
例:
public interface 接口名{
//属性:常量final
//方法:抽象方法 abstract
}
public abstract 返回值类型 方法名;
2.接口的实现
关键字:implements
格式:public class 类名 implements 接口名{
//接口中的所有抽象方法
//自己属性及方法
}
一个接口可以继承多个接口,接口名之间用“,”隔开。
例如鼠标件监听器(接口)的实现:
public interface MouseListener extends EventListener {
public void mouseClicked(MouseEvent e){
}
public void mousePressed(MouseEvent e){
}
public void mouseReleased(MouseEvent e){
}
public void mouseEntered(MouseEvent e){
}
public void mouseExited(MouseEvent e){
}
}
3.关于监听器QQ登录界面
在打开QQ登录界面按下登录按钮后,会弹出一个新的窗口并关闭原有登录窗口,这里就要用到监听器。
相关概念:
事件:点击一个按钮,关闭一个窗口,这种可以发生响应的操作就叫做事件。
事件源:那个按钮就是事件源,由它们来引导相应事件的发生。
监听器:判断是否发生事件
例:
//好友列表 实例化监听器
public class Friends implements ActionListener {
//传参:因为需要消除原有的登录界面
private JFrame jf1;
public Friends(JFrame jf){
jf1=jf;
}
//实现抽象方法
public void actionPerformed(ActionEvent e){
//消除登录页面
jf1.dispose();
//新面板
JFrame jf=new JFrame();
jf.setTitle("QQ");
jf.setSize(new Dimension(300,600));
//位置
jf.setLocation(800, 150);
jf.setVisible(true);
}
}
//登陆界面,监听器的调用
public class Newlogframe {
public static void main(String args[] ){
......
//将监听器添加在按钮
ActionListener al=new Friends(jf);
jb.addActionListener(al);
......
}
}
*在登录页面的其他设置
~~布局:根据QQ界面的样式选择总体用边框布局,内部用到流式布局
边框布局:分为北,南,西,东,中部四个面板,按顺序依次设置大小
流式布局:从中间开始布局,逐行排列
网格布局:把容器组件均分为多个矩形,每个举矩形大小一致 例:
//设置边框布局
jf.setLayout(new BorderLayout());
//设置五个面板
JPanel jp_North=new JPanel();
JPanel jp_South=new JPanel();
JPanel jp_West=new JPanel();
JPanel jp_East=new JPanel();
JPanel jp_Center=new JPanel();
//显示面板
jf.add(jp_North,BorderLayout.NORTH);
jf.add(jp_South,BorderLayout.SOUTH);
jf.add(jp_West,BorderLayout.WEST);
jf.add(jp_East,BorderLayout.EAST);
jf.add(jp_Center,BorderLayout.CENTER);
//添加图片
ImageIcon icon=new ImageIcon("Image/111.jpg");
//添加标签
JLabel jlb2=new JLabel("注册帐号");
//下拉框
JComboBox jcb=new JComboBox();
//密码框
JPasswordField jpf=new JPasswordField();
//复选框
JCheckBox jcb1=new JCheckBox("记住密码");
//按钮
JButton jb=new JButton("登录");
//设置背景
//设置标签的位置
jlb4.setBounds(0, 0, backImage.getIconWidth(), backImage.getIconHeight());
//得到窗体的底层,把标签添加到这一层
jf.getLayeredPane().add(jlb4,new Integer(Integer.MIN_VALUE));
//得到放置组件的那一层,强制转换为JPanel类型
JPanel back_panel=(JPanel) jf.getContentPane();
//设为透明
back_panel.setOpaque(false);
//并将五个面板设置为透明
jp_North.setOpaque(false);
- 大小: 43.5 KB
- 大小: 10.1 KB