继承使用原则:
- 子类可以继承父类属性和方法,并能扩展属性和方法。
- 观察要使用的类,确定之间共同、特有的的特征和行为,将这些共性数据迁移到父类里。便于子类中进行方法和属性的重用。
- 对于不同的特征和行为,在子类里可以重新定义。
单继承和多继承
- 某些语言例如c++允许子类有多个父类。
- Java中,一个类只能有一个父类,
所有类的根类都是Object
- 都是直接,或间接继承Object
- public final Class gerClass();
- public int hashCode();
通过GUI练习一下代码,熟悉继承方法
JAVA中使用Awt和Swing两个包
- awt:是使用操作系统本身提供的组件风格来构件JAVA的gui组件,所以在跨平台时,显示风格不一致。
- swing:弥补了awt类包的不足,有自己的显示风格,这样在跨平台时,显示风格会保持一致。
GUI有一个先进先出原则,最先加入的窗体的组件在最上层,最后加入窗体的组件在最下层。所以背景图片一定要放在最后面
public Class MyJFrame extends JFrame{ }//思想,
继承 JFrame,然后再添加其他组件,实际是对父类的扩展的过程!
抽象: 将像的东西抽出来,并在方法(或者构造方法里面写死),将不相同的地方抽出来,作为引参来实现方法重用
比如
添加自定义窗体
this.setTitle("我的窗体");
//设置窗体的布局管理器,null布局的含义是,使用组件的大小和位置定位组件
this.setLayout(null);
this.setSize(1024, 576);
this.setVisible(true);//这句代码会让代码之前的所有组件可见。
this.setDefaultCloseOperation(3);关闭
this.setLocationRelativeTo(null);屏幕居中
添加标签组件
//标签组件
JLabel j1 =new JLabel("姓名");
j1.setFont(getFont());
//设置标签的位置和大小
j1.setBounds(60,80,100,40);
//将标签加入窗体
this.add(j1);
文本框组件
//文本框组件
JTextField jtxt = new JTextField();
jtxt.setBounds(140, 80, 120, 40);
this.add(jtxt);
设置按钮
//设置按钮
JButton button = new JButton("确定");
button.setBounds(200, 350, 80, 20);
this.add(button);
单选框,互斥单选框
//单选框
JRadioButton radio1 =new JRadioButton("男");
radio1.setBounds(300, 50, 80, 20);
this.add(radio1);
JRadioButton radio2 =new JRadioButton("女");
radio2.setBounds(380, 50, 80, 20);
this.add(radio2);
//完成单选框互斥
ButtonGroup bg = new ButtonGroup();
bg.add(radio1);
bg.add(radio2);
复选框
//创建复选框
JCheckBox jc = new JCheckBox("记住密码");
jc.setBounds(300, 100, 80, 20);
this.add(jc);
JLabel imgLabel = new JLabel();
//得到图像
Image img =new ImageIcon("img/3.jpg").getImage();
img = img.getScaledInstance(1024, 576, 1);//裁剪图片
//设置标签的图片
imgLabel.setIcon(new ImageIcon(img));
imgLabel.setBounds(0, 0, 1024, 576);//设置位置偏移
this.add(imgLabel);