一:绘制图形界面的两套工具包
1)awt
1.awt是Abstract Window Toolkit(抽象组件窗口工具包)的缩写,是java最早的(JDK1.4之前)用于编写图形界面应用程序的开发包。
2.我们通常称awt控件为重量级控件,awt的代码由c/c++以及java构成。
3.也就是说,它所使用的图形组件是基于本地操作系统的图形库,绘制出的图形不具有跨平台性,操作系统不同时,绘制出的图形很有可能不同而引起混乱。
2)swing
1.swing是在awt的基础上构建的一套新的图形界面系统,在JDK1.4版本之后出现。
2.我们通常称swing控件为轻量级控件,swing控件完全是由100%java代码实现的。
3.由swing控件绘制出的图形,真正实现了java跨平台的特性,与本地操作系统的图形库没有任何联系。
3)区别:awt是基于本地方法的c/c++程序,其运行速度较快。
swing是基于awt的java程序,其运行速度比较慢。
ps:以上区别较简略,更详细的讨论请见http://www.douban.com/group/topic/3360549/
二:常用的组件
1)容器组件
1.JFrame (窗体类) 顶级容器
2.Jpanel (面板类) 最灵活的容器
3.JMenuBar (菜单栏)
4.JMenu (菜单项)
2)元素组件
1.JLabel (标签)
2.JComboBox (下拉框)
3.JTextField (输入框)
4.JMenuItem (菜单)
5.JCheckBox (复选框)
6.JButton (按钮)
7.JPasswordField (密码输入框)
ps:以上类名均为"J+名称",表示是属于javax.swing包下的类;若只有"名称",则表示是java.awt包下的类。
三:常用的布局
1)BorderLayout (边框布局)
2)GridLayout (网格布局)
3)FlowLayout (流式布局)
ps:在javax.swing和java.awt包下的所有以Layout结尾的类都是布局类,以上三种只是使用较为频繁。
四:界面实现
1)QQ登陆界面
import java.awt.BorderLayout; import java.awt.Container; import java.awt.Dimension; import java.awt.FlowLayout; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.JPasswordField; public class QQlanding { /** * QQ登陆 * @param args */ public static void main(String[] args) { // TODO Auto-generated method stub QQlanding qq = new QQlanding(); qq.window(); } public void window() { JFrame win = new JFrame("QQ登陆");// 实例化窗口对象并对标题命名 win.setSize(379, 260);// 设置窗口大小 win.setResizable(false);// 不可调节窗口大小 win.setLocationRelativeTo(null);// 窗口出现在屏幕中央 win.setDefaultCloseOperation(3);// 按叉关闭程序 win.setLayout(new BorderLayout()); // 设置北方 JPanel North = new JPanel(); North.setPreferredSize(new Dimension(379, 117)); win.add(North, BorderLayout.NORTH); // 设置西方 JPanel West = new JPanel(new FlowLayout(FlowLayout.RIGHT, 0, 0)); JLabel West1 = new JLabel(new ImageIcon("picture/qqlanding/qie.jpg")); West.setPreferredSize(new Dimension(100, 0)); West.add(West1); win.add(West, BorderLayout.WEST); // 设置中间 JPanel Center = new JPanel(); Center.setLayout(new FlowLayout(FlowLayout.LEFT, 5, 6)); JComboBox Text1 = new JComboBox(); Text1.setPreferredSize(new Dimension(649,25)); Text1.setEditable(true); Text1.addItem("562828767"); JPasswordField Text2 = new JPasswordField(16); JCheckBox Box1 = new JCheckBox("记住密码"); JCheckBox Box2 = new JCheckBox("自动登录"); Box1.setOpaque(false); Box2.setOpaque(false); Center.add(Text1); Center.add(Text2); Center.add(Box1); Center.add(Box2); win.add(Center, BorderLayout.CENTER); // 设置东方 JPanel East = new JPanel(); East.setPreferredSize(new Dimension(105, 0)); East.setLayout(new FlowLayout(FlowLayout.CENTER, 5, 6)); JLabel button1 = new JLabel("注册账号"); JLabel button2 = new JLabel("找回密码"); button1.setOpaque(false); button2.setOpaque(false); button1.setPreferredSize(new Dimension(100, 22)); button2.setPreferredSize(new Dimension(100, 22)); East.add(button1); East.add(button2); win.add(East, BorderLayout.EAST); // 设置南方 JPanel South = new JPanel(); JButton button3 = new JButton("登录"); button3.setPreferredSize(new Dimension(95, 22)); South.add(button3); win.add(South, BorderLayout.SOUTH); // 设置背景 ImageIcon background = new ImageIcon("picture/qqlanding/backgroung.jpg"); JLabel background2 = new JLabel(background); background2.setBounds(0, 0, background.getIconWidth(), background.getIconHeight()); win.getLayeredPane().add(background2, new Integer(Integer.MIN_VALUE)); Container P4 = win.getContentPane(); //JComponent // 顶层设置透明 ((JPanel) P4).setOpaque(false); West.setOpaque(false); Center.setOpaque(false); East.setOpaque(false); South.setOpaque(false); North.setOpaque(false); win.setVisible(true);// 设置窗口为可见 } }
2)计算器界面
import java.awt.BorderLayout; import java.awt.Dimension; import java.awt.Font; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextField; public class Calculator { /**计算器界面 * @param args */ public static void main(String[] args) { //211 283 Calculator Cal = new Calculator(); Cal.window(); } public void window(){ JFrame JF = new JFrame("计算器"); //标题 JF.setSize(208,308); //大小 JF.setResizable(false); //大小不可变 JF.setLocationRelativeTo(null); //出现在中间 JF.setDefaultCloseOperation(3); //按叉 JF.setLayout(new BorderLayout()); JMenuBar JMB = new JMenuBar(); JMenu JM1 = new JMenu("查看(V)"); //加菜单栏 JMenuItem JMI1 = new JMenuItem("科学型"); //加菜单项 JMenuItem JMI2 = new JMenuItem("等等等"); JM1.add(JMI1); JM1.add(JMI2); JMenu JM2 = new JMenu("编辑(E)"); JMenu JM3 = new JMenu("帮助(H)"); JMB.add(JM1); JMB.add(JM2); JMB.add(JM3); JF.setJMenuBar(JMB); //北方 JTextField NJT = new JTextField("0"); NJT.setHorizontalAlignment(JTextField.RIGHT); NJT.setPreferredSize(new Dimension(190,57)); NJT.setFont(new Font("Arial",Font.BOLD,36)); NJT.setEditable(false); JF.add(NJT,BorderLayout.NORTH); //东方 JPanel E_JP = new JPanel(); E_JP.setPreferredSize(new Dimension(44,0)); String[] eimg = {"picture/calculator/m-.jpg","picture/calculator/genhao.jpg", "picture/calculator/%.jpg","picture/calculator/daoshu.jpg", "picture/calculator/=.jpg"}; for(int j=0;j < eimg.length;j++){ ImageIcon Ima = new ImageIcon(eimg[j]); JButton Jbu = new JButton(Ima); Jbu.setPreferredSize(new Dimension(Ima.getIconWidth(),Ima.getIconHeight())); E_JP.add(Jbu); } JF.add(E_JP,BorderLayout.EAST); //中间 JPanel C_JP = new JPanel(); C_JP.setPreferredSize(new Dimension(160,0)); String[] cimg = {"picture/calculator/mc.jpg","picture/calculator/mr.jpg", "picture/calculator/ms.jpg","picture/calculator/m+.jpg", "picture/calculator/jiantou.jpg","picture/calculator/ce.jpg", "picture/calculator/c.jpg","picture/calculator/+-.jpg", "picture/calculator/7.jpg","picture/calculator/8.jpg", "picture/calculator/9.jpg","picture/calculator/chu.jpg", "picture/calculator/4.jpg","picture/calculator/5.jpg", "picture/calculator/6.jpg","picture/calculator/cheng.jpg", "picture/calculator/1.jpg","picture/calculator/2.jpg", "picture/calculator/3.jpg","picture/calculator/-.jpg", "picture/calculator/0.jpg","picture/calculator/+.jpg", "picture/calculator/+.jpg"}; for(int i = 0;i < cimg.length ; i++){ // (1)第一种方法 // JButton Jbu = new JButton(new ImageIcon(cimg[i])); // if(cimg[i] == "picture/calculator/0.jpg"){ // Jbu.setPreferredSize(new Dimension(73,27)); // }else{ // Jbu.setPreferredSize(new Dimension(34,27)); // } // (2)第二种方法 ImageIcon Ima = new ImageIcon(cimg[i]); JButton Jbu = new JButton(Ima); Jbu.setPreferredSize(new Dimension(Ima.getIconWidth(),Ima.getIconHeight())); C_JP.add(Jbu); } JF.add(C_JP,BorderLayout.CENTER); JF.setVisible(true); } }
相关推荐
全套Android开发视频,请去此资源所在专辑,内有全部视频!!!!!
J2ME开发教程,完整的介绍J2ME的开发体系和基本开发
2. 高级界面开发1基本界面和Command 3. 高级界面开发2Command事件和List 4. 高级界面开发3TextBox,Ticker和Alert 5. 高级界面开发4表单元素 6. 高级界面开发5表单元素事件 7. 案例1 8. 异常处理 9. 多线程 10. 数值...
2. 高级界面开发1基本界面和Command 3. 高级界面开发2Command事件和List 4. 高级界面开发3TextBox,Ticker和Alert 5. 高级界面开发4表单元素 6. 高级界面开发5表单元素事件 7. 案例1 8. 异常处理 9. 多线程 10. 数值...
3.高级界面开发2Command事件和List1\03-6.swf
3.高级界面开发2Command事件和List1\03-7.swf
SUIPack是一款为Delphi和C++Builder开发的所见即所得的界面增强VCL组件,它可以帮助您创建具有专业的界面外观设计的应用程序,大大节省您的时间和开发成本。SUIPack 提供超过60个组件。只要将它们放置在一个form上,...
IS03_1_逻辑-图形查找 IS04_1_柱状图-边线 IS05_1_斑点-图象 IS07_1_OCVOCR-CN IS08_1_PatMax-CN IS09_1_应用开发 IS10_1_校准 IS11_1_串行输出 IS12_1_网络 IS13_1_操作员界面 IS14_1_优化部署 IS15_1_...
3.高级界面开发2Command事件和List1\03-5.swf
3.高级界面开发2Command事件和List1\03-4.swf
例如,如何使用通用的可视组件库( V C L)对象,它 可使用户界面的设计更容易,如处理字符串、操作文本、实现Wi n d o w s通用对话框、工具栏、酷栏。 部分还包括使用图形、错误和异常处理,使用D L L,O L E...
模拟实现一个基于文本界面的《开发团队调度软件》 熟悉Java面向对象的高级特性,进一步掌握编程技巧和调试技巧 开发环境:eclipse,jdk 1.8 该软件实现以下功能: 1.软件启动时,根据给定的数据创建公司部分成员列表...
Cognex Designer让您更快地构建完整的视觉应用,并使开发人员能够更方便地利用功能较强的 VisionPro 工具库的全部优势。模块图的图形化编程环境可缩短开发周期,并...将组件拖放到页面上即可以轻松构建功能较强的界面。
EGI是一款开源嵌入式GUI, 简单好玩。用它可以来开发一些简单图形小界面,同时支持加入声效背景,GIF动画等。EGI是在WidoraNEO硬件环境下开发的,也可以在其它Linux系统下运行。
基于Android开发的教程和源代码 对Android开发有一定的帮助
任蝶程序(RenDie)以功能强大、安全健壮、性能卓越、超级易用、模板众多、插件齐全等优势,受到众多企业和站长的喜爱。 任蝶程序研发团队拥有多年的技术积累和产品开发经验,成立了官方技术支持...任蝶系统界面图:
《Delphi6应用开发指南》。目录----------第01章_走进Delphi.pdf第02章_学好面向对象的Pascal.pdf第03章_Delphi 体系结构的关键类.pdf第04章_定义多态和动态过程.pdf第05章_集合、常数与运行时类型信息编程.pdf第06...
09_第9章_Qt图形界面开发 课程全部目录(未全部列出) (1)\源码+笔记+课件 (2)\视频 (3)\源码+笔记+课件 ├─代码.zip ├─教案.zip ├─笔记.zip (4)\视频\01_第1章_c++概述;目录中文件数:3个 ├─1.00 qt...
03高级界面开发2:Command事件和List 04高级界面开发3:TextBox,Ticker和Alert 05高级界面开发4:表单元素 06高级界面开发5:表单元素事件 07案例1 工具API 08异常处理 09多线程 10数值运算,字符串处理,时间管理 11...
03 项目开发事项办理界面规定(模板).xls