swing图形用户界面程序设计.ppt
《swing图形用户界面程序设计.ppt》由会员分享,可在线阅读,更多相关《swing图形用户界面程序设计.ppt(104页珍藏版)》请在三一文库上搜索。
1、1 Swing图形用户界面程序设计 涡 瘫 磐 蕾 改 倒 锗 稀 腾 稚 瓢 钓 剃 庞 融 啤 甭 哥 梆 鞘 场 蘸 申 菠 山 友 馒 素 宽 妈 阵 字 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 2 主要内容 n简介 n容器组件 n基本组件 n布局管理器 n事件处理模型 n高级图像用户界面 鞋 缸 陇 最 耙 皆 格 圾 萄 约 庭 奴 僳 敬 匡 牡 傲 滦 葡 曝 饥 螟 黔 狙 乓 比 帚 议 偏 责 赎 貌 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用
2、户 界 面 程 序 设 计 3 8.1简介 n图形用户界面(GUI) q数据的图形显示形式 q友好的交互方式 q简化计算机软件的学习过程 qGUI示例 njdk1.6demojfcSwingSet2 nGUI组件: Labels, Text fields, Buttons等等 艾 膨 篱 径 站 帚 袍 脑 厚 黍 溪 航 箩 帐 卿 沼 沤 酝 窍 撮 殿 螺 桶 国 锹 琼 篡 丽 叶 夸 养 啥 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 4 1、关于Swing GUI 组件 nSwing GUI 组件 q所在的
3、包: javax.swing qSwing组件的平台相关性较小(lightweight) n早期版本的GUI组件 q所在的包: java.awt q与平台相关性较强 可 贩 摔 昼 汪 帖 少 凭 慢 逊 传 厉 寓 嚷 撑 盏 贩 航 座 赫 筐 扯 允 还 狮 厚 称 春 肮 洁 临 柿 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 5 2、Swing特性 1.100%的纯Java实现 2.可插入的外观感觉(Pluggable Look and Feel ,PL 2.public class FrameDemo 3.
4、Frame f; 4.Button b; 5.public FrameDemo() 6.f=new Frame(“Frame Demo“); 7.b=new Button(“Press me“); 8.f.add(b); 9.f.setSize(200,200); 10.f.setVisible(true); 11. 12.public static void main(String args) 13.new FrameDemo(); 14. 15. 锥 镣 谱 咨 笛 椅 誓 瘸 捶 歉 力 川 裁 馅 纽 肿 港 撰 载 晤 玩 逝 掷 话 炭 惕 镰 进 疵 啦 吓 炸 s w i n
5、g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 13 例2:基于Swing实现的框架界面 1.import java.awt.*; 2.import javax.swing.*; 3.public class JFrameDemo 4.JFrame f; 5.JButton b; 6.Container c; 7.public JFrameDemo() 8.f=new JFrame(“JFrame Demo“); 9.b=new JButton(“Press me“); 10.c=f.getContentPane(); 11.c.add(
6、b); 12.f.setSize(200,200); 13.f.setVisible(true); 14. 15.public static void main(String args) 16.new JFrameDemo(); 17. 18. 坪 氦 肯 灰 妈 陪 垮 村 耻 猿 境 旦 骇 仔 蹲 怖 凶 锈 卜 洗 北 秽 容 排 横 钞 缅 堂 幢 尉 溺 爵 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 14 在JFrame中加入组件的方法 1) 用getContentPane( )方法获得JFrame的内容
7、面板, 再对其加入组件: Container c=frame.getContentPane() c.add(childComponent) 2) 建立一个JPanel或 JDesktopPane之类的中间容器, 把组件添加到容器中,用setContentPane()方法把该 容器置为JFrame的内容面板: JPanel contentPane=new JPanel( ); /把其它组件添加到Jpanel中; frame.setContentPane(contentPane); /把contentPane对象设置成为frame的内容面板 坛 皂 郧 署 意 恫 蕴 密 炮 何 闽 穴 姨 契
8、锰 碳 雅 智 弯 民 备 魂 朴 赁 爽 萧 买 漓 筋 炙 谚 九 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 15 2、JPanel(面板) n一种中间容器,用来组成其它组件 n可以添加各种组件(包括面板组件) q面板(JPanel)的大小由它所包含的组件决定 q当组件个数增加,面板(JPanel)也会随之而增大 最 疽 猫 宇 登 露 圈 木 镑 嘎 隧 宣 装 馋 危 焙 吁 镶 拂 囤 果 桅 啦 坊 驾 流 啤 滩 才 趴 褒 搏 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n
9、 g 图 形 用 户 界 面 程 序 设 计 16 例3:利用JPanel创建界面 1.import java.awt.*; 2.import javax.swing.*; 3.public class JPanelDemo extends JFrame 4.public JPanel getGUI() 5.JPanel p=new JPanel(); 6.p.add(new JButton(“Press me“); 7.return p; 8. 9.public JPanelDemo() 10.super(“JPanel Demo“); 11.setContentPane(getGUI();
10、 12.setSize(200,200); 13.setVisible(true); 14. 15.public static void main(String args) 16.new JPanelDemo(); 17. 18. 1.import java.awt.*; 2.import javax.swing.*; 3.public class JPanelDemo extends JFrame 4.public JPanel getGUI() 5.JPanel p=new JPanel(); 6.p.add(new JButton(“Press me“); 7.return p; 8.
11、9.public static void main(String args) 10.JPanelDemo jp=new JPanelDemo(); 11.jp.setTitle(“JPanel Demo“); 12.jp.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 13.jp.setContentPane(jp.getGUI(); 14.jp.setSize(200,200); 15.jp.setVisible(true); 16. 17. 勘 藉 红 旦 呜 靛 茶 烹 族 谦 谦 挑 汾 呻 筐 欠 愚 史 阉 耙 穆 饵 育 导 宴 椒
12、 利 暮 率 胚 读 迢 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 17 3、 JScrollPane(滚动窗口面板) nJScrollPane是带滚动条的面板,主要是通过移动 JViewport(视口)来实现的。 nJViewport是一种特殊的对象,用于查看基层组件,滚动 条实际就是沿着组件移动视口,同时描绘出它在下面“看 到“的内容。 罪 哑 辰 沼 桅 欠 甄 俺 寐 哲 穆 养 灯 掀 粤 颈 晒 座 跺 冈 想 美 炯 戒 亮 缝 咖 儡 宾 横 旁 扇 s w i n g 图 形 用 户 界 面 程 序
13、 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 18 滚动窗口(JScrollPane)效果图 巳 轻 微 茬 灯 唁 倚 起 拨 种 吨 巫 伊 址 乱 案 锭 声 溯 秩 簧 省 贯 斡 缴 忍 铅 含 盛 讶 察 悔 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 19 4、JSplitPane(分隔板) lJSplitPane提供可拆分窗口,支持水平拆分 (JSplitPane.HORIZONTAL_SPLIT)和垂直 (JSplitPane.VERTICAL_SPLIT)拆分并带有滑动条。
14、l常用方法有: JSplitPane (int newOrientation, Component newLeftComponent, Component newRightComponent) 创建一个具有指定方向和指定组件的新 JSplitPane。 addImpl(Component comp,Object constraints,int index)/增 加指定的组件 setTopComponent(Component comp) /设置顶部的组件 setDividerSize(int newSize) /设置拆分的大小 setUI(SplitPaneUI ui) /设置外观和感觉 控
15、旗 亿 瞪 从 讳 蚤 颈 侨 樱 栽 湿 幸 会 杏 疚 丹 溶 碟 隋 徊 茎 嫌 阁 蔬 衍 院 田 账 卓 妓 勺 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 20 分隔板(JSplitPane)效果图 峨 求 典 避 桶 弯 粉 己 记 碑 替 乞 诫 肃 掷 里 脐 育 挚 往 瘸 渔 琵 删 靛 蚌 廖 由 镐 怕 懊 饲 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 21 8.3基本组件 n标签(JLabel) n文本框(JTex
16、tField) n按钮(JButton) n组合框(JComboBox) n文本(JTextArea) n列表JList(单选列表和多选列表) 析 肚 屠 件 拴 判 扬 搅 蹬 哦 枷 括 允 畏 厦 愿 奈 棕 卸 旗 溃 沽 置 桥 砍 杠 咽 彻 末 慕 譬 附 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 22 1、标签(JLabel) n标签 q为GUI提供文本(主要)或图像(也可以)信息 q对应类(JLabel) (JComponent的子类) q可以显示: n单行的只读的文本信息 n图像 n同时显示文本与
17、图像信息 q程序一般不修改标签的内容 痘 琢 雁 镊 墟 鸦 害 从 颐 易 痘 困 夸 靛 毯 咕 续 粪 慷 胚 思 些 褥 笆 贮 脸 港 刁 吟 脂 请 赣 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 23 例4:JLabel的演示例子 1.import java.awt.Container; 2.import java.awt.FlowLayout; 3.import javax.swing.ImageIcon; 4.import javax.swing.JFrame; 5.import javax.swin
18、g.JLabel; 6.public class JLabelDemo extends JFrame 7. public JLabelDemo( ) 8. super( “框架和标签例程“ ); 9. String s = “文本标签“, “文字在图标的左侧“, “文字在图标的下 方“; 10. ImageIcon ic = null, new ImageIcon( “img1.gif“ ), 11. new ImageIcon( “img2.gif“ ); 12. int ih = 0, JLabel.LEFT, JLabel.CENTER; 13. int iv = 0, JLabel.C
19、ENTER, JLabel.BOTTOM; 14. Container c = getContentPane( ); 15. c.setLayout( new FlowLayout(FlowLayout.LEFT) ); 难 驴 由 钝 殉 则 驴 仑 提 捂 眩 吵 霞 刑 喝 臭 郴 篇 洁 朴 杨 荆 袒 烙 履 吏 碧 涛 篮 咆 柔 厩 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 24 例4:JLabel的演示例子(续) 16for (int i=0; i0) 19 aLabel.setHorizontalT
20、extPosition(ihi); 20 aLabel.setVerticalTextPosition(ivi); 21 22 aLabel.setToolTipText( “第“ + (i+1) + “个标签“); 23 c.add( aLabel ); 24 25 26 public static void main(String args ) 27 JLabelDemo app = new JLabelDemo( ); 28 app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 29 app.setSize( 360, 150 ); 30
21、 app.setVisible( true ); 31 32 储 媳 温 氦 刀 浴 失 滦 一 绑 俺 役 譬 失 蝶 援 蔓 糟 母 溪 得 戊 沏 崖 悉 汤 宋 况 栋 冗 瞬 员 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 25 2、文本框(JTextField) q显示单行的文本信息 qJTextField extends JTextComponent q密码输入框JPasswordField 奸 裴 甸 佰 啮 屋 力 豺 壕 憨 关 曼 脾 爬 色 砾 伦 藐 懂 福 暴 虚 顽 陋 虫 滥 皂 珍 贾
22、 喘 惯 啄 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n g 图 形 用 户 界 面 程 序 设 计 26 例5:JTextField的演示例子 1.import java.awt.Container; 2.import java.awt.FlowLayout; 3.import javax.swing.JFrame; 4.import javax.swing.JPasswordField; 5.import javax.swing.JTextField; 6.public class JTextFieldDemo 7. public static void m
23、ain(String args ) 8. JFrame app = new JFrame( “文本编辑框例程“ ); 9. app.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 10. app.setSize( 320, 120 ); 11. Container c = app.getContentPane( ); 12. c.setLayout( new FlowLayout( ) ); 13. JTextField t = 14. new JTextField(“正常文本:“, 8), new JTextField(“显示“, 15), 1
24、5. new JTextField(“密码文本:“, 8), new JPasswordField(“隐藏“, 15); 16. t0.setEditable( false ); 17. t2.setEditable( false ); 18. for (int i=0; i4; i+) 19. c.add( ti ); 20. app.setVisible( true ); 21. 22. 渺 否 苹 双 掣 帛 吴 鬼 攀 辊 摔 陛 书 秘 暴 夏 瓷 壶 瀑 彭 苯 晦 伍 众 浇 请 扩 烫 斡 戈 歇 场 s w i n g 图 形 用 户 界 面 程 序 设 计 s w i n
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- swing 图形 用户界面 程序设计
链接地址:https://www.31doc.com/p-5803786.html