java(6)--GUI学习
来源:互联网 发布:windows phone论坛 编辑:程序博客网 时间:2024/06/05 20:18
GUI图形用户接口,相当于c#中的winform。以前一直用winform做,感觉特简单,控件拖进去,点点点就行了,写一些事件就能完成大多数事件。似乎学习c#都是从winform开始,感觉好简单的说,好了废话不多说。
Java为GUI提供的对象都存在java.Awt和javax.Swing两个包中。
先说一下Awt和Swing的区别:
Awt与 Swing
java.Awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。(重量级控件就是和系统结合比较紧密的控件,受限于操作系统,不易于移植。)
javax.Swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。(移植性很好)
接下来说说AWT的继承体系
我们可以通过add方法将控件(window、frame、dialog和panel增加进去)
记得第一次玩布局的时候是做Android的一个小应用,有一些布局是必须知道的,当时就是因为不懂布局,所以界面做的很差劲。常见的布局管理器:
FlowLayout(流式布局管理器)
- 从左到右的顺序排列。
- Panel默认的布局管理器。
BorderLayout(边界布局管理器)
- 东,南,西,北,中
- Frame默认的布局管理器。
GridLayout(网格布局管理器)
- 规则的矩阵
CardLayout(卡片布局管理器)
- 选项卡
GridBagLayout(网格包布局管理器)
- 非规则的矩阵
有了控件就必须写方法,在控件上写入方法
除了activeListener事件,其余事件都可以用WindowAdapter适配器来完成,省去了全部复写方法的麻烦。
例子:
Frame frame=new Frame("zgq"); //frame.setSize(500,400); //frame.setLocation(300,200); frame.setBounds(500, 400, 300, 200); frame.setLayout(new FlowLayout()); Button but=new Button("button"); frame.add(but); //为button写点击事件 but.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent arg0) { // TODO 自动生成的方法存根 System.out.println("点击button"); } }); //为frame写事件 frame.addWindowListener(new WindowAdapter() { public void windowClosing(WindowEvent arg0){ System.exit(0); } }); //如果不用windowAdapter适配器,需要复写这么多事件 故使用适配器更为方便// frame.addWindowListener(new WindowListener() {// // @Override// public void windowOpened(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// // @Override// public void windowIconified(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// // @Override// public void windowDeiconified(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// // @Override// public void windowDeactivated(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// // @Override// public void windowClosing(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// // @Override// public void windowClosed(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// // @Override// public void windowActivated(WindowEvent arg0) {// // TODO 自动生成的方法存根// // }// }); frame.setVisible(true);
0 0
- java(6)--GUI学习
- java gui学习
- JAVA GUI 学习
- Java学习笔记-GUI
- java学习--GUI
- Java学习GUI最大公约数
- Java简单学习GUI
- Java学习-GUI
- GUI学习笔记MyWindowDemo.java
- GUI学习笔记MyMenuDemo.java
- GUI学习笔记MyMenuTest.java
- java学习之---GUI开发
- 【java学习】GUI组件--CheckBox
- Java SE学习笔记-GUI
- java基础学习GUI编程
- Java学习笔记:GUI基础
- Java学习笔记(GUI)
- 重拾Java-GUI学习
- iOS开发笔记- 判断是否是数字
- Ubuntu12.10编译MPTCP
- 二、WorldWindJavaApplet
- Java基本知识(连载)-分支和循环-2
- java_home should point to a jdk not a jre
- java(6)--GUI学习
- Maven Dependency Scope
- Intellij IDEA JUnit处理
- 无法监听程序
- Storm Trident API总结-1
- KVM下qcow2磁盘格式磁盘扩容
- CSS权威指南学习笔记--Chapter1 CSS和文档
- 我的隔天Codeforces——Round #334 (Div. 2)
- iOS开发笔记-判断输入的是否是字母