一:绘制图形界面的两套工具包
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); } }
相关推荐
- **开发工具**:例如图形用户界面(GUI)工具,用于配置雷达参数、显示数据和调试系统。 2. **应用示例**: - SDK中通常会附带多个演示示例,帮助开发者了解如何使用API和库进行基本操作,如雷达初始化、数据采集...
通过这个安装包,用户可以获取到最新的技术支持,帮助他们更有效地进行项目开发和故障排查。 在安装Simatic EKB 2012_03_08时,用户需要注意以下几点: 1. **系统要求**:确保你的计算机操作系统符合Step 7 5.5的...
在Android开发领域,Android Studio是主流的集成开发环境(IDE),它为开发者提供了丰富的功能来构建高质量的应用程序。本章节将深入探讨如何在Android Studio中使用Button和文字框(EditText和TextView)进行交互式...
TIA Portal V14是该平台的一个重要版本,它提供了统一的用户界面,涵盖了PLC编程(如S7-1200/1500系列)、HMI(人机界面)、运动控制、工业网络配置等多个方面,极大地提高了工程效率。 2. **STEP 7**: STEP 7是...
- **图形界面**:AWT和Swing库的部分功能依赖于Windows Native代码,如窗口管理、事件处理等。 6. **调试和优化** 开发和调试Windows Native代码通常需要配合Visual Studio或其他C/C++编译器,使用Windbg或JDB等...
在很多情况下,软件会包含训练或教程部分,帮助用户熟悉界面、功能和操作流程。Sinutrain可能就是这样一种工具,专为Sim_EKB用户提供操作指导和实战练习。 总的来说,这个压缩包可能包含了Sim_EKB软件的安装文件...
VRay是由Chaos Group开发的一款强大的渲染引擎,它是一款广泛应用于建筑可视化、产品设计、电影电视制作等领域的专业渲染插件。在3ds Max这款三维建模软件中,VRay以其出色的光线追踪、全局光照、材质系统和高效的...
【VRay for 3ds Max 2.40.03 简介】 VRay是由 Chaos Group 开发的一款强大的渲染引擎,专为3D建模软件3ds Max设计。这款插件以其卓越的光线追踪技术和全局光照算法,为设计师和艺术家提供了高质量的图像渲染解决...
全套Android开发视频,请去此资源所在专辑,内有全部视频!!!!!
VRay是由Chaos Group开发的一款基于物理计算的渲染引擎,其特点是真实感渲染,能够模拟光线的物理行为,从而产生逼真的图像效果。它不仅支持3ds Max,还与其他多个3D软件平台兼容,如Maya、SketchUp等。 二、VRay ...
WinCE是一个实时操作系统,提供了丰富的API接口和开发工具,使得开发者可以定制各种功能和界面,以满足不同设备的需求。 BFC03_93.ZM可能是该固件版本的内部代号,代表了特定的硬件配置或软件特性。OS51可能指的是...
总的来说,西门子Simatic EKB Install 2012_03_08是西门子PLC用户的重要工具,它提供了一个完整的开发、调试和维护环境,使用户能够高效地进行自动化项目工作。通过这个安装包,用户可以充分利用西门子的先进技术和...
在J2ME(Java 2 Micro Edition)平台上进行高级界面开发时,Command事件和List组件是构建用户交互界面的关键元素。本教程旨在深入探讨这两个核心概念,帮助开发者掌握如何有效地利用它们来创建功能丰富的移动应用。 ...
《JAVAWEB项目开发:网上订餐系统详解》 在信息技术日新月异的今天,JAVAWEB技术在企业级应用开发中扮演着重要角色。本项目以"网上订餐系统"为例,深入剖析JAVAWEB的开发过程,帮助开发者了解如何构建一个实用的、...
《JAVAWEB项目开发:网上订餐系统详解》 在信息技术日新月异的今天,JAVAWEB技术在企业级应用开发中扮演着重要角色。本项目——"网上订餐系统",就是利用JAVAWEB技术构建的一个实用案例,旨在帮助开发者理解和掌握...
这个档案包含了一系列的文件,它们构成了OpenQVis的核心功能和开发资源。 在量子计算领域,可视化是理解和学习的重要工具。OpenQVis通过图形化界面展示量子比特的态演化、量子门操作以及量子电路的结构,使非专业...
1. 微控制器固件:实现了电压采集、处理和显示的算法,可能使用了STM32CubeMX或HAL库进行开发。 2. 驱动程序:针对LMH7324的初始化和控制代码。 3. 用户界面:如果有的话,可能是一个简单的命令行界面或通过USB连接...
例如,2.40.03可能包含对渲染速度的提升,对某些特定材质的增强,或者对用户界面的改进,以提高工作效率。 在提供的压缩文件中,我们可以看到三个部分组成的安装程序: 1. CH_VRay_Adv_2.40.03_for_3dsMax2014(64...
在这个压缩包中,"client.exe.2020_03_"很可能是该框架的客户端应用程序,它使用了DXWinForm控件来构建用户界面,并通过WCF服务与服务器进行交互。开发者可以通过这个客户端来了解如何集成DX控件并利用WCF服务实现...
不过,根据常见的游戏评论系统,我们可以推测可能涉及到的标签有:游戏分析、用户接口设计、数据库管理、后端开发(如Java, Python, C#)、前端开发(HTML, CSS, JavaScript, React, Angular)、API接口、数据分析、...