----------------------------
-------
android培训
、
java培训
、期待与您交流! --------------------------------------------------
GUI:
图形用户界面
用图形的方式,来显示计算机操作的界面,这样更方便更直观。
java为GUI提供的对象都存在java.awt和javax.swing两个包中
GUI设计的三个概念:
组件(Component):java的图形用户界面的最基本组成部分
容器(Container):是Component的子类
布局管理器(Layout Manager):每个容器都有一个布局管理器,当容器需要对某个组件进行定位或者判断其大小
尺寸时,就会调用其对应的布局管理器
Awt和Swing:
java.awt:Abstract Window ToolKit (抽象窗口工具包),需要调用本地系统方法实现功能。属重量级控件。
javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
javax.swing:在AWT的基础上,建立的一套图形界面系统,其中提供了更多的组件,而且完全由Java实现。增强了移植性,属轻量级控件。
Container:为容器,是一个特殊的组件,该组件中可以通过add方法添加其他组件进来。
布局管理器:
容器中的组件的排放方式,就是布局。
常见的布局管理器:
FlowLayout(流式布局管理器)
从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。
GridLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
常见的布局管理器:
FlowLayout(流式布局管理器)
从左到右的顺序排列。
Panel默认的布局管理器。
BorderLayout(边界布局管理器)
东,南,西,北,中
Frame默认的布局管理器。
GridLayout(网格布局管理器)
规则的矩阵
CardLayout(卡片布局管理器)
选项卡
GridBagLayout(网格包布局管理器)
非规则的矩阵
简单窗体创建的过程:
Frame f = new Frame(“my window”);
f.setLayout(new FlowLayout());
f.setSize(500,400);//设置窗体大小
f.setLocation(300,200);//设置窗体出现在屏幕的位置
f.setVisible(true);
f.setLayout(new FlowLayout());
f.setSize(500,400);//设置窗体大小
f.setLocation(300,200);//设置窗体出现在屏幕的位置
f.setVisible(true);
awt相关代码演示:
import java.awt.Button;
import java.awt.FlowLayout;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
public class AwtDemo {
/**
* @param args
*/
public static void main(String[] args) {
//1,创建窗体。
Frame f = new Frame("my frame");
//2,对创建进行基本设置。
// f.setSize(600, 500);
// f.setLocation(350, 150);
f.setBounds(350, 150, 600, 500);
f.setLayout(new FlowLayout());
//3,创建其他组件。比如按钮。
Button but = new Button("new button");
//4,将其他组件添加到窗体中。
f.add(but);
//给窗体添加一个监听器。处理关闭动作。
f.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e) {
System.out.println("程序关闭");
System.exit(0);
}
});
but.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.out.println("按钮关闭");
System.exit(0);
}
});
//5,显示窗体。
f.setVisible(true);
}
}
Swing组件的分类:
1,顶层容器:JFrame,JApplet,JDialog,JWindow共4个
2,中间容器:JPanel,JScrollPane,JSplitPane,JToolBar等
3,特殊容器:在GUI上起特殊作用的中间层,如:JInternal,JFrame,JLayeredPane,JRootPane等。
4,基本控件:实现人机交互的组件,如:Jbutton,JcomboBoJList, JMenu,JSlider,JTextFieldx等。
5,不可编辑信息的显示:向用户显示不可编辑信息的组件,如:JLabel,JProgressBar,ToolTip等。
6,可编辑信息的显示:向用户显示能被编辑的格式化信息的组件,如 JColorChooser,JFileChoose,JFileChooser,JTable,JTextArea等。
事件监听机制组成:
1,事件源(组件)
2, 事件(Event)
3,监听器(Listener)
4,事件处理(引发事件后处理方式)
事件监听机制:
2, 事件(Event)
3,监听器(Listener)
4,事件处理(引发事件后处理方式)
事件监听机制:
1,确定事件源(容器或组件)
2,通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。
该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象。一般用匿名内部类来表示。
3,在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
4,事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。)
2,通过事件源对象的addXXXListener()方法将侦听器注册到该事件源上。
该方法中接收XXXListener的子类对象,或者XXXListener的子类XXXAdapter的子类对象。一般用匿名内部类来表示。
3,在覆盖方法的时候,方法的参数一般是XXXEvent类型的变量接收。
4,事件触发后会把事件打包成对象传递给该变量。(其中包括事件源对象。通过getSource()或者,getComponent()获取。)
相关代码演示:
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
public class SwingDemo {
/**
* @param args
*/
public static void main(String[] args) {
JFrame frame = new JFrame("my jframe");
frame.setBounds(350, 150, 600, 500);
frame.setLayout(new FlowLayout());
JButton but = new JButton("new Button");
frame.add(but);
but.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
System.exit(0);
}
});
frame.setVisible(true);
}
}
菜单组件JMenu:
作用:用户用来输入有关操作命令的简便工具。
形式:下拉方式或者弹出方式。
组成:
1,菜单条JMenuBar:包含若干的菜单
2,菜单JMenu:包含若干的菜单项
3,菜单项JMenuItem:与按钮相识,在单击时引发一系列的动作命令
菜单组件的设置:
菜单组件的设置:
JMenuBar是通过JFrame、JWindow的根窗格添加至容器的组件,由多个JMenu组成。
JMenu在JMenuBar下以字符串形式显示,而在用户单击它时,则以弹出式菜单显示。
JMenuItem是JMenu中的一个组件,以字符串形式显示,可以具有图标,外观可以修改,如字体、颜色、背景、边框。
-----------------------------------------------android培训、java培训、期待与您交流! --------------------------------------