其他容器
1、在Swing开发中,窗体部分除了可以使用JFrame表示外,还有其他几种常见的窗体:JPanel、JSplitPane、JTabbedPane、JScrollPane、JDesktopPane、JInternalFrame等。
Jpanel容器
1、在Jpanel中可以加入任意的组件,然后直接将Jpanel容器加到JFrame容器中即可。
2、常用方法(只写构造方法)
· public Jpanel() 创建一个默认的Jpanel对象,使用流布局管理
· public JPanel(LayoutManager layout) 创建一个指定布局管理器的Jpanel对象
例如:
import javax.swing.*;
public class JpanelDemo1 {
public static void main(String[] args) {
JFrame frame=new JFrame("Welcome To MLDN"); //实例化窗体对象
JPanel pan=new JPanel(); //实例化JPanel对象
pan.add(new JLabel("标签-A")); //加入标签组件
pan.add(new JLabel("标签-B"));
pan.add(new JButton("按钮-X")); //加入按钮组件
pan.add(new JButton("按钮-Y"));
frame.add(pan); //将JPanel加入到JFrame窗体
frame.pack(); //书P648根据组件自动调整窗体大小
frame.setLocation(300,200); //设置窗体的显示位置
frame.setVisible(true); //显示组件
}
}
1、所有的组件是采用顺序的形式加入JPanel中,最后再将JPanel加入到JFrame中。
2、 可以将多个组件加入到LPanel中实现复杂的排列。
JSplitPane
1、主要功能是分割面板,可以将一个窗体分为两个子窗体,可以是水平排列也可以是垂直排列。
2、常用方法(构造方法)
· public JSplitPane(int newOrientation) 创建对象,并指明分割方式
· public JSplitPane(int newOrientation,boolean newContinuousLayout,Component newLeftComponent,Component newRightComponent) 创建对象,指明分割方式、
分割条改变是否重绘图像以及两端的显示组件
JTabbedPane
1、在一个面板上设置多个选项卡供用户选择。若需要查看哪方面的信息,则直接选择选项卡即可浏览。
2、常用方法(构造方法)
· public JTabbedPane(int taPlacement) 创建对象,并指定选项卡布局
JScrollPane
1、主要功能是为显示的内容加入水平滚动条。JScrollPane主要由JViewport和JScrollBar两部分组成,前者主要是显示一个矩形区域让用户浏览,而后者主要是形成水平或垂直的滚动条
2、方法(构造方法)
· public JScrollPane(Component view) 将指定的组件加入滚动条,根据大小显示水平或垂直滚动条
· public JScrollPane(Component view,int vsbPolicy,int hsbPolicy) 将指定的组件加入滚动条,根据需要设置是否显示水平或垂直滚动条
JDesktopPane与JInternalFrame
1、在Swing中也可以完成内部窗体的显示,即在一个窗体可以出现多个子窗体,每一个窗体都无法超出父窗体的区域。JDesktopPane规定了一个父窗体的基本形式,而JInternalFrame规定了各个子窗体,
JInternalFrame需要加入到JDesktopPane中。
2、方法(构造方法)
· public JDesktopPane() 创建一个JDesktopPane对象
· public JInternalFrame(String title) 创建不可调整大小的、不可关闭、不可最大化的、不可图标化的、具有指定标题的JInternalFrame
· public JInternalFrame(String title,boolean resizable) 创建不可关闭、不可最大化的、不可图标化的、具有指定标题和可调整大小的JInternalFrame
· public JInternalFrame(String title,boolean resizable,boolean closable,boolean maximizable,boolean iconifiable) 创建可调整大小的、可关闭、可最大化的、可图标化的的####JInternalFrame
事件处理
要想让每一个组件都发挥自己的作用,及必须对所有的组件进行事件处理
事件和监听器
1、事件是表示一个对象发生状态变化。而如果要想处理此事件,则需要事件的监听者不断地监听时间的变化。
2、在Swing编程中,依然使用了最早的AWT的事件处理方式,所有的事件类都是EventObject类的子类。
EventObject类的定义格式如下所示
public class EventObject extends Object implements Serializable{
public EventObject(Object source){
}
public Object getSource(){
}
public String toString(){
}
}
在这个类中定义了3个方法,其中可以通过getSource()取得发生此事件得源对象。事件接收对象被称为事件监听器。所有的事件监听器都是以监听接口的形式出现的,处理时只需要实现此接口即可。
窗体事件
1、windowListener是专门处理窗体事件的监听接口,一个窗体的所有变化都可以使用这个接口进行监听。