图形界面(GUI)

AWT:抽象窗体工具
容器(Frame类)
组件(Button类)
颜色(Color类)
字体(Font类)
swing:
容器(JFrame类)
组件(JButton类)
当涉及到容器和组件的时候用Swing,需要操作字体颜色等用AWT
因此:Swing+AWT=SWT

容器:装东西的
组件:放到容器里面的东西(eg:按钮等)
首层容器:JWindow、JFrame(用的最多)、JOptionPane(弹出框)、Japplet、Jdialog
中间容器:不能单独存在。JPanel(面板)、JLabel(标签)
首层容器下面还可以在加容器和组件,这时的容器称为中间容器
布局管理器:LayOut
内容面板:窗体中间的一个自带容器
内容面板属于窗体

组件:
标签:JLable
文本框:JTextField
密码框:JPasswordField
下拉框:JComboBox
按钮:JButton
单选框:JRadioButton
复选框:JCheckBox
文本域:JTxtArea
滚动条:JScrollPane
菜单栏:JMenuBar
文件按钮:JFileChooser
菜单:JMenu
菜单项:JMenuItem
菜单栏之间诶往窗体上放的,而内容面板是往容器里面放的
菜单是放在菜单栏上的,菜单项是放在菜单里的

布局管理和面板镶嵌
布局管理器
边界布局:BoederLayout
流布局:FlowLayout
网格布局:GridLayout
卡片布局:CardLayout
边界布局:
在没有设置this.contentP.setLayout(null);这个是,默认是使用的边界布局管理器
把界面划分为东西南北中,南北要贯通,中间划最大,中间最大值得是不仅仅范围最大,
而且权利还最大可以占领其他位置,但其他位置是不能去占领中间位置
放的位置就是this.okBtn,BorderLayout.WEST 形式,可为东西南比任意一个位置
设置的时候要new一个BorderLayout this.contentP.setLayout(new BorderLayout());
边界布局管理器不是用来放一个个的组件,而是用来放中间容器的
网格布局
this.contentP.setLayout(new GridLayout(2,3);
按照行列的方式,在界面上划分空间,每个空间等大
如果划分空间不够,优先保证行不变,增加列
作用:主要是用来放置中间容器的
流布局
this.contentP.setLayout(new FlowLayout);
this.okBtn = new JButton();
然后直接放到contentp中去是从左往右,从上往下,中间开始进行顺序排放
组件大小又组件里面的内容决定
流布局用的地方一般是用在一行组件的设置

事件—event
事件委托 模型:
时间源对象–发生在谁身上的
监听器对象(委托对象)–他需要与事件源对象进行一个绑定,监听器是反应事件源对象发生的事
监听器让事件源做什么事件源就做什么,也可以使其他的东西做一些事情
1、先绑定事件源与监听器
2、监听器也有自己的职责范围,只管他自己职责范围内的事情
3、一个事件源可以绑定多个不同职责范围的监听器
4、一个监听器可以监听多个事件源
所有的监听器都是接口
找到事件源对象,然后在new出监听器对象,然后事件源对象有个add什么什么的方法,在传入监听器对象就好了
监听器实现方式一: 单独书写一个监听器类,实现监听接口,重写抽象方法
可以为不同的事件源使用同一个监听器类
也可以为每个事件源书写单独的监听器类
如果要操作窗体上的其他元素,必须要传参
好处:1、代码独立,各个类任务清晰
2、使用灵活,既可以为不同事件源书写同一个监听器类,也可以书写各自的
坏处:1、类的数量增加,维护量也增加了
2、如果要操作其他的容器或者组件,必须传参,也就是说非事件源的容器或组件,需要传参
监听器实现方式二:让容器类充当监听器
让容器类充当监听器,实现监听器接口,重写监听方法
好处:1、操作本容器的子容器或组件,不需要传参
坏处:1、类的任务不明确
2、无法为不同的事件源书写各自的监听
监听器实现方式三:使用匿名内部类,在绑定的时候,同时实现接口的重写
好处:1、访问本容器的子容器或者组件,不传参
2、每个事件源书写各自的监听器
3、类的功能各自独立
坏处:1、初学者代码比较难懂

CardLayout:
this.imgP = new ImagePanel();
this.btnP = new ButtonPanel();

this.contP.add(this.imgP);
this.contP.add(this.btnP);
首先设置为cardlayout

其他地方也一样 还是按照之前放进去,但是在放的时候需要起一个别名,并且别名不能重复
在添加的时候,要传两个参数,第一个是添加,第二个是该层的别名
放置的顺序和add的顺序是有关的,默认显示第一个

分层的时候就跟绑定有关系了
绑定拿的时候,是绑定的cardFrame

首先得到被翻页容器的cardlayout对象,然后调用布局管理器的cardlayout对象的next方法翻页
传入被翻页的容器和别名

1、取得被要求使用的卡片布局管理器
2、选择方法
Show
显示指定卡片
轮番
first,next,previous,last

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值