JAVA用户界面设计

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.流式布局 是将所有组件从左到右依次排列. 当改变容器大小时,组件将重新排列,但组件大小不发生
变化。
10.4 布局设计
1.流式布局 创立方法: FlowLayout():构造一个新的 FlowLayout,居中对齐,默认的
水平和垂直间隙是 5 个单位; FlowLayout(int align):参数为
10.3 菜单组件
窗口中的菜单条、菜单、菜单项:菜单放在菜单条里,菜单 项放在菜单里。
例:Ex10_Menu.java 1.JMenuBar(菜单条) JMenuBar jmb=new JMenuBar(); public void setJMenuBar(JMenuBar menubar):
使用盒式布局的容器将组件排列在一行或一列,这 取决于创立盒式布局对象时,是否指定了是行排 列还是列排列。Example10_5
10.4 布局设计
6.null布局 使用布局管理器时,由布局管理器负责各个组件的大小和位
置,因此用户无法使用setLocation(),setSize(),setBounds() 方法设置组件大小和位置,这些方法都会被布局管理器覆 盖. 这时可用setLayout(null)取消布局管理器,用户手动设置各个 组件的大小和位置. null布局可以更准确设定各个组件的位置。
窗口的布局就会变换, 例GridDemo.java
10.4 布局设计
5.BoxLayout布局(盒式布局) (自学)
java swing包提供了Box类,该类也是Container类 的一个子类,创立的容器称作一个盒式容器,盒 式容器的的默认布局是盒式布局,而且不允许更 改盒式容器的布局。
因此,在筹划程序的布局时,可以利用容器的嵌套, 将某个容器嵌入几个盒式容器,到达你的布局目 的。
网格布局的构造方法有两个: GridLayout(int rows,int cols) GridLayout(int rows,int cols,int hgap,int vgap) 构造方法中的参数分别定义网格的行数,列数,水平间距和
垂直间距。 例:创立一个网格布局的窗口容器,当点击任何一个按钮时,
item1.setAccelerator(KeyStroke.getKeyStroke('o'));
item2.setAccelerator(KeyStroke.getKeyStroke( KeyEvent.VK_S,InputEvent.CTRL_MASK));
返回
10.3 菜单组件
嵌入子菜单JMenu是JMenuItem的子类,因此菜单项本身 还可以是一个菜单,称这样的菜单项为子菜单。
组件可以是容器,这样可以向容器中添加其它组件。
10.4 布局设计
3.卡片式布局(CardLayout) (自学) 卡片布局将组件像卡片一样放置,每次只有最上面的
一张能显示出来,实现界面之间的相互切换。 请见例Example10_4: JTabbedPane创立的对象是一个轻容器,称作选项卡
窗格。选项卡窗格的默认布局是CardLayout卡片 式布局。 选项卡窗格可以使用:
调整大小(默认为可调整); ④ setSize(int width,int height):设置窗口的宽度和高
度;
窗口的标题
width height
10.2 JFrame窗体
1.常用方法:
⑤setBounds(int x,int y,int width,int height):设置窗 口左上角的坐标和窗口宽度和高度;
如:
JFrame f1=new JFrame("这是一个简单的窗口"); f1.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
10.2 JFr器和中间容器的区别在于:顶层容器包含一个内容
面板。
f为窗体对象
10.1 AWT组件与SWING组件概述
3.容器类和组件类 (1)顶层容器: 由Container的子类或间接子类创立 包括JFrame、JApplet、JDialog和JWindow,分别用于设计框架、
小应用程序、对话框和窗体。 它们位于包体系的顶部,其他的GUI组件都包含在顶层容器里。 (2)中间容器: 由JComponent类的子类或间接子类创立 包括JPanel,JScrollPane(滚动窗格),JSplitPane(拆分窗格)等 中间容器可以添加在顶层容器中,也可以容纳其他组件,介于顶
的菜单项。 public int getItemCount():得到菜单项数目。
menu1.add(item1); menu1.addSeparator(); menu1.add(item2);
10.3 菜单组件
2.JMenu菜单与JMenuItem菜单项 JMenuItem菜单项主要方法 public void setEnabled(boolean b):设置当前菜单
FlowLayout.LEFT/RIGHT/CENTER三者之一。 例如:setLayout(new FlowLayout(FlowLayout. LEFT));
FlowLayout(int align,int hgap,int vgap):用来设定组件之 间的水平和垂直间隔距离,单位是像素。
Example10_2
10.3 菜单组件
类: public static KeyStroke getKeyStroke(char keyChar) public static KeyStroke getKeyStroke(int keyCode,
int modifiers) 得到KeyStroke 对象。 其中参数keyCode取值范围:KeyEvent.VK_A~ KeyEvent.VK_Z 。 参数modifiers 取值:InputEvent.ALT_MASK、 InputEvent.CTRL_MASK和InputEvent.SHIFT_MASK。
add(String text,Component c); 方法将组件c添加到容器当中,并指定和该组件c 对应的选项卡的文本提示是text。
10.4 布局设计
4.网格布局(GridLayout)(自学)
网格布局将容器分成假设干个网格,每一个网格可以放置一 个组件,所有组件的大小都一样。当容器窗口改变大小时, 各个组件的大小也做相应的变化。
层组件和原子组件之间。 (3)根本组件:实现人机交互的组件,包括JButton,JTextField,
JLabel, JTextArea, JComboBox,JList,JMenu,JSlider, JCheckBox等。
10.2 JFrame窗体
由JFrame类生成的窗口有一个边框,一个标题和用于窗口关 闭和图标化(最大化,最小化)的按钮。
举例:见Ex10_1.java 10.1 AWT组件与SWING组件概述 1.AWT和Swing概述 Java图形用户界面(GUI)设计主要涉及AWT,
Swing两大类库,Swing是AWT的扩展和功能加 强。
重组件和轻组件
2. Swing类层次构造(见GUI所用类的层次构造 图.doc)
的菜单项
JMenu menu1=new JMenu("文件"); JMenuItem item1=new JMenuItem("翻开"); Icon icon=new ImageIcon("happy.jpg"); JMenuItem item2=new JMenuItem("保存",icon);
图标接口Icon
将菜单条放置到窗口中的方法. 如:f.setJMenuBar(jmb);
菜单
菜单条
菜单项
注意:只能向窗 口添加一个 菜单条。
10.3 菜单组件
2.JMenu菜单与JMenuItem菜单项 主要方法: JMenu(String s):建立一个指定标题菜单,标题由参数s
确定。 JMenuItem(String s):构造有标题的菜单 JMenuItem(String text, Icon icon) 构造有标题和图标
标识:NORTH、SOUTH、EAST、WEST 和 CENTER。
如:
JButton bSouth=new JButton("南"), bNorth=new JButton("北"), bEast =new JButton("东"), bWest =new JButton("西");
JTextArea bCenter=new JTextArea("中心"); win.add(bNorth,BorderLayout.NORTH); win.add(bSouth,BorderLayout.SOUTH); win.add(bEast,BorderLayout.EAST); win.add(bWest,BorderLayout.WEST); win.add(bCenter,BorderLayout.CENTER);
项是否可被选择。 item1.setEnabled(false);
public String getLabel():得到菜单项的名字。 public void setAccelerator(KeyStroke keyStroke)
为菜单项设置快捷键。
item1.setAccelerator(KeyStroke.getKeyStroke('o‘));
⑥pack():用紧凑方式自动设定窗口大小。
⑦setVisible(boolean b):设置窗口是否可见。
〔0,0〕
X轴
y
x y轴
10.2 JFrame窗体 1.常用方法:
⑧setDefaultCloseOperation(int operation):用来设置单击 窗体关闭图标后,程序会做出怎样的处理. 其中的参数需使用下面几个值之一: DO_NOTHING_ON_CLOSE:程序什么也不做。 HIDE_ON_CLOSE:(默认值):隐藏窗体,窗体仍在运行 DISPOSE_ON_CLOSE:关闭当前窗体的运行。 EXIT_ON_CLOSE:完毕整个程序的运行。
example105104布局设计6null布局使用布局管理器时由布局管理器负责各个组件的大小和位置因此用户无法使用setlocationsetsizesetbounds方法设置组件大小和位置这些方法都会被布局管理器覆这时可用setlayoutnull取消布局管理器用户手动设置各个组件的大小和位置
第10章 基于SWING的图形用户界面设计
先获得内容面板:
Container cp=f.getContentPane();
再添加组件:
cp.add(组件名);
或写成一个语句:
f.getContentPane().add(组件名);
(2)不能为JFame窗体设置布局,而应当为JFrame窗体的内容 面板设置布局。
内容面板的默认布局是BorderLayout布局。
10.4 布局设计
2.边界布局 把容器分为5个区:北区(North),南区(South),东区
(East),西区(West)和中区(Center) 。 边界布局按照“上北下南,左西右东〞的布局规律进展布局.
10.4 布局设计
2.边界布局
Example10_3
每个区域最多只能包含一个组件,并通过相应的常量进展
例: Ex10_Frame.java(只看运行效果)
显示一个窗口需要做三件事: 生成实例(对象) -> 设置大小 -> 显示。
10.2 JFrame窗体
1.常用方法: ① JFrame() :创立一个无标题的窗口。
JFrame(String s) :创立一个标题为s的窗口。 ② setTitle(String str):设置窗口标题; ③ setResizable(Boolean boolean):设置窗口是否可自动
返回
10.4 布局设计
根本布局管理器〔见API〕 包括流式布局管理(FlowLayout)和边界布局管理
(BorderLayout) ,它们是最常用的两种。 Panel和Applet默认布局方式是流式布局; JFrame和JApplet的内容面板(content pane)的默认布局管理
器是边界布局管理器。 它们都属于java.awt包。
10.3 菜单组件
2.JMenu菜单与JMenuItem菜单项 JMenu主要方法: public void add(MenuItem item):向菜单增加由参
数item指定的菜单项对象。 public void addSeparator ():向菜单增加分隔条。 public JMenuItem getItem(int n):得到指定索引处
相关文档
最新文档