Throwable: Error Exception:RuntimeException
try() catch (错误类型){};
子类->父类
1、基本数据类型比较
==和Equals都比较两个值是否相等。相等为true 否则为false;
2、引用对象比较
==和Equals都是比较栈内存中的地址是否相等 。相等为true 否则为false;
集合
泛型,用泛型 直接报错。
遍历foreach不用Object 用 Course 不用再取出来再类型转换
List<>不能用基本类型, 用包装类或者类。
Set 用foreach itara** 不能用get 因为是无序的
Set中无论添加多少次最终只保留一个该对象
Swing
JFrame jf 与 Container container是转化关系。不能add
绝对布局
/*jf.?*/Container.setLayout(null); jf,container都可以?
JFrame jf=new JFrame(可以在括号里加标题);
Container c=jf.getContentPane(); 这种c.setLayout jf.setLayout都可以;用这种方法创建 必须加jf.都需要调用jf.方法 也可以绝对布局c.setLayout(); 下面直接创建容器不用加jf.
Container c=getContentPane();在相应类中创建可能有不用的重载方法,直接创建该父类的框架的容器,不用再创建父类对象再引用。
有什么区别?可能是在JFrame子类中创建容器不用加jf.什么什么的 同理不用写jf.setSize
要设置大小setSize(100,100) 书里没设置大小可以出窗口我不行;
设置可视化 setVisible(true);
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE); 这个关闭方式作用是什么?
setLayout(new FlowLayout(0,10,10)); 流布局管理器
setLayout(new BorderLayout());
c.add(BorderLayout.CENTER,new JButton(xxx)); add可以直接添加组件同时设置位置。 类直接.CENTER? 边界布局管理器;
setLayout(new GridLayout(7,3,5,5)); 七行三列 网格布局管理器;
常用面板
JPanel类
也是容器,小容器。
Container c=getContentPane();
c.setLayout(new GridLayout(2,1,10,10)); 两行一列为什么能出现四个小框架
JPanel p1=new JPanel(new GridLayout(1,3,10,10));
JPanel p2=new JPanel(new GridLayout(1,3,10,10));
... p3
... p4
p1.add(new JButton("1"));
...
c.add(p1);
c.add(p2);
...
JScollPane类
带滚动条的面板 小窗体显示较大部分内容。
(也是一种容器,)但是JScrolPane只能放一个组件,不可以使用布局管理器。
如果要在JScrollPane放置多个组件,先将多个组件放在JPanel面板上,将JPanel面板作为一个整体组件放在JScrollPane上
JScrollPane sp=new JScrollPane();
c.add(sp); //它不是一种容器么?
按钮组件
按钮
JButton();
单选按钮
JRadioButton();
复选框组件
JCheckBox();
列表组件
下拉列表组件
JComboBox类
JComboBox();
列表框组件
JList();
文本组件
文本框组件
JTextField()
密码框组件
JPasswordField()
文本域组件
JTextArea()
常用事件监听器
动作事件监听器;
事件名称 ActionEvent
事件源 JButton JList JTextField等
监听接口ActionListener 后面定义触发事件
addActionListener() removeActionListener()
焦点事件监听器
事件名称 FocusEvent
事件源 Component以及派生类
监听接口 FocusListener
addFoucusListener() removeFocusListener()