`
枫子2011
  • 浏览: 3530 次
文章分类
社区版块
存档分类
最新评论

图形界面开发

    博客分类:
  • JAVA
 
阅读更多

目标:
 1.掌握Java提供的组件和布局API类。
 2.掌握API文档的查询
 
1.介绍Java的图形界面类
 1.awt(包名:java.awt)   jdk1.4之前推出的图形界面类
  Frame
  
 2.swing(包名:javax.swing)[轻量级组件]
  jdk1.4的时候推出的图形界面类
  所有的图形界面类的第一个字母是大写J开头的。
  JFrmae
  
 跨平台

2.常用的组件类(javax.swing)
 容器组件
  JFrmae   窗体容器(边框)
  JPanel   面板容器(流式)
 
 元素组件
  JLabel    标签
  JTextField   文本输入框
  JPasswordField   密码输入框
  JComboBox   下拉框
  JCheckBox   复选框
  JButton    按钮
  
 javax.swing.JFrame

3.常用的布局类(java.awt)
 BorderLayout    边框布局
 FlowLayout    流式布局
 GridLayout    网格布局

4.实现一个登录界面
 1.定义一个类,在类中定义定义主函数和初始化界面的initGUI()方法。
 2.在主函数中实例化类的对象,然后调用initGUI方法。
 3.在initGUI方法中实例化JFrame类的对象,同时设置JFrame类对象的属性值。
 4.给你的容器设置布局方法
 5.实例化容器和元素组件,将其添加到窗体上。
 6.在initGUI方法的最后一行添加窗体可见的方法。

5.练习
 1.QQ登录界面

package lxf0630;

import java.awt.BorderLayout;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;

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;


//定义一个QQLogin类
public class QQLogin {
	
	// 定义程序的入口主函数
	
	public static void main(String[] args) {
		QQLogin qq = new QQLogin();
		qq.initGUI();
	}

	
	// 定义一个初始化界面的方法
	 
	public void initGUI(){
		//1.实例化一个JFrame类的对象
		JFrame jf = new JFrame();
		//2.设置jf对象的属性值
		jf.setTitle("QQ登录界面");
		jf.setSize(new Dimension(380,295));
		jf.setDefaultCloseOperation(3);
		jf.setLocationRelativeTo(null);//设置窗体显示在屏幕的中央
		jf.setResizable(false);//设置禁止调整窗体的大小
		
		//设置窗体的布局方式为边框布局,窗体默认的布局方式就是边框布局
		//jf.setLayout(new BorderLayout());
		
		/******************窗体背景*********************/
		//实例化一个图标对象
		ImageIcon backgroundImage = new ImageIcon("Images/dxy.jpg");
		//实例化一个标签对象,让标签显示图标对象
		JLabel backgroundJla = new JLabel(backgroundImage);
		//设置标签的起始位置和标签的大小
		backgroundJla.setBounds(0, 0, backgroundImage.getIconWidth(), backgroundImage.getIconHeight());
		
		//添加到窗体的LayeredPanel面板的最底层(第二层面板)
		jf.getLayeredPane().add(backgroundJla,new Integer(Integer.MIN_VALUE));
		
		//获取窗体的第一层面板
		JPanel contentPanel = (JPanel)jf.getContentPane();
		//设置第一层面板为透明
		contentPanel.setOpaque(false);
		
		/************************************************/
		
		
		/****************北边的面板*********************/
		JPanel northPanel = new JPanel();
		northPanel.setOpaque(false);//设置面板为透明
		northPanel.setPreferredSize(new Dimension(0,120));
		//设置面板的布局方式为边框布局,JPanel默认的布局方式是流式布局
		northPanel.setLayout(new BorderLayout());
		
		//实例化一个JLabel的对象,并且让标签上显示图标
		JLabel jla = new JLabel("");
		//jla.setFont(new Font("楷体",Font.BOLD,36));
		
		//将jla对象添加到northPanel对象上
		northPanel.add(jla,BorderLayout.WEST);
		//将northPanel添加到jf窗体的北边
		jf.add(northPanel,BorderLayout.NORTH);
		
		/**********************************************/
		
		/****************西边的面板*********************/
		JPanel westPanel = new JPanel();
		westPanel.setOpaque(false);//设置面板为透明
		//设置面板的布局方式为流式布局,JPanel默认的布局方式是流式布局
		westPanel.setLayout(new FlowLayout());
		
		//实例化一个图标(ImageIcon)对象
		ImageIcon image = new ImageIcon("Images/QQ图片.jpg");
		//实例化一个JLabel的对象,并且让标签上显示图标
		JLabel jlaImage = new JLabel(image);
		
		//将jlaImage对象添加到westPanel对象上
		westPanel.add(jlaImage);
		//将westPanel添加到jf窗体的西边
		jf.add(westPanel,BorderLayout.WEST);
		
		/**********************************************/
		

		/****************中间的面板*********************/
		JPanel centerPanel = new JPanel();
		centerPanel.setOpaque(false);//设置面板为透明
		//设置面板的布局方式为流式布局,靠左侧显示组件,JPanel默认的布局方式是流式布局
		centerPanel.setLayout(new FlowLayout(FlowLayout.LEFT,8,5));
		
		//实例化组件类的对象
		JComboBox jco = new JComboBox();
		//设置组件的大小
		jco.setPreferredSize(new Dimension(190,25));
		//设置jco对象可以编辑
	    jco.setEditable(true);
		jco.addItem("185002513");
		jco.addItem("24589663");
		jco.addItem("921546465");
		jco.setEditable(true);
		//将jco对象添加到centerPanel对象上
		centerPanel.add(jco);
		//String st2=jco.getToolTipText();
		JLabel jbuReg = new JLabel("注册账号");
		centerPanel.add(jbuReg);
		//JTextField jt=new JTextField(st2);
		 String s=(String)jco.getSelectedItem();
		 System.out.println(s);
		JPasswordField jpa = new JPasswordField();		
		//设置组件的大小
		jpa.setPreferredSize(new Dimension(190,25));		
		//将jpa对象添加到centerPanel对象上
		centerPanel.add(jpa);
	
		
		JLabel jbuPwd = new JLabel("找回密码");
		centerPanel.add(jbuPwd);
		
		JCheckBox jch1 = new JCheckBox("记住密码");
		jch1.setOpaque(false);
		JCheckBox jch2 = new JCheckBox("自动登录");
		jch2.setOpaque(false);
		centerPanel.add(jch1);
		centerPanel.add(jch2);
		
		//将centerPanel添加到jf窗体的中间
		jf.add(centerPanel,BorderLayout.CENTER);
		
		/**********************************************/
		

		/****************南边的面板*********************/
		JPanel southPanel = new JPanel();
		southPanel.setOpaque(false);//设置面板为透明
		//设置面板的布局方式为流式布局,JPanel默认的布局方式是流式布局
		southPanel.setLayout(new FlowLayout());
		
	
		//实例化一个LoginLestener类的对象
		LoginListener l=new LoginListener(jpa,jco);
		JButton jbuLogin = new JButton("登          录");
		jbuLogin.setPreferredSize(new Dimension(155,30));
		//jbuLogin.setFont(new Font("楷体",Font.BOLD,36));
	
		//给事件源对象添加动作监听器方法,绑定事件处理类的对象
		jbuLogin.addActionListener(l);
		
	
		//将jbuLogin对象添加到southPanel对象上
		southPanel.add(jbuLogin);
		//将southPanel添加到jf窗体的南边
		jf.add(southPanel,BorderLayout.SOUTH);
		
		
		/**********************************************/
		
		//设置窗体为可见的代码一定要放置在最后一行
		jf.setVisible(true);
	}	
	
}

 
 2.计算器界面

package lxf0627;



import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Font;


import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;
import javax.swing.JTextField;


public class Calculator {

	
	public static void main(String[] args) {
		Calculator cal = new Calculator();
		cal.initUI();
	}

	
	public void initUI() {
		// 实例化一个JFrame类的对象
		JFrame jf = new JFrame();
		// 设置窗体对象的属性值
		jf.setSize(228, 323);
		jf.setTitle("计算器");
		jf.setLocationRelativeTo(null);
		jf.setResizable(false);
		jf.setDefaultCloseOperation(3);
		// JFrame默认的布局方式就是边框布局。
		
		
		
		/**************** 窗体的北边 *********************/
		// 实例化一个JPanel的对象
		JPanel panelNorth = new JPanel();
		// JPanel默认的布局是流式布局
		JTextField jte = new JTextField();
		jte.setText("0");
		jte.setHorizontalAlignment(JTextField.RIGHT);
		//jte.setEditable(false);
		jte.setFont(new Font("Arial",Font.BOLD,33));
		jte.setPreferredSize(new Dimension(190, 50));
		panelNorth.add(jte);
		jf.add(panelNorth, BorderLayout.NORTH);
		
		
		

		/**************** 窗体的中间 *********************/
		// 实例化一个JPanel的对象
		JPanel panelCenter = new JPanel();
		
		//设置布局方式
		//panelCenter.setLayout(new FlowLayout(FlowLayout.RIGHT,6,6));
		
		// JPanel默认的布局是流式布局

		String[] array = { "images/mc.jpg", "images/mr.jpg", "images/ms.jpg",
				"images/m+.jpg", "images/_.jpg", "images/ce.jpg",
				"images/c.jpg", "images/+-.jpg", "images/7.jpg",
				"images/8.jpg", "images/9.jpg", "images/a.jpg",
				"images/4.jpg", "images/5.jpg", "images/6.jpg",
				"images/星号.jpg", "images/01.jpg", "images/22.jpg",
				"images/3.jpg", "images/-.jpg", "images/0.jpg",
				"images/小数点.jpg", "images/+.jpg" };
		for (int i = 0; i < array.length; i++) {
			JButton btn = new JButton(new ImageIcon(array[i]));
			if (array[i].equals("images/0.jpg")) {
				btn.setPreferredSize(new Dimension(73, 27));
			} else {
				btn.setPreferredSize(new Dimension(34, 27));
			}
			// 将按钮添加到panelCenter上
			panelCenter.add(btn);
		}
		// 将panelCenter添加到jf上
		jf.add(panelCenter, BorderLayout.CENTER);
		
		
		

		
		// 实例化一个JPanel的对象
		JPanel panelEast = new JPanel();
		
		//设置布局方式
		panelEast.setLayout(new FlowLayout(FlowLayout.LEFT,0,5));
		
		//设置面板的大小
		panelEast.setPreferredSize(new Dimension(48,0));
		

		/**************** 窗体的东边 *********************/
		// JPanel默认的布局是流式布局

		String[] array2 = { "images/m-.jpg", "images/g.jpg", "images/%1.jpg",
				"images/xs.jpg", "images/=.jpg" };
		for (int i = 0; i < array2.length; i++) {
			JButton btn = new JButton(new ImageIcon(array2[i]));
			if (array2[i].equals("images/=.jpg")) {
				btn.setPreferredSize(new Dimension(34, 59));
			} else {
				btn.setPreferredSize(new Dimension(34, 27));
			}
			// 将按钮添加到panelEast上
			panelEast.add(btn);
		}
		// 将panelEast添加到jf上
		jf.add(panelEast, BorderLayout.EAST);
		
		//**************************设置透明*******************************
		//实例化标签图片
	
		ImageIcon img = new ImageIcon("images/d.jpg");//加载背景图片
		JLabel image1 = new JLabel(img);
		//添加图片至Frame的第二层
		jf.getLayeredPane().add(image1, new Integer(Integer.MIN_VALUE));
		//把标签的大小位置设置为图片刚好填充整个面
		image1.setBounds(0,0,img.getIconWidth(), img.getIconHeight());
		//获取frame的最上层面板为了设置其背景颜色
		Container P4=jf.getContentPane();  
		//设置透明
		((JComponent) P4).setOpaque(false);
		panelNorth.setOpaque(false);
		panelCenter.setOpaque(false);
		panelEast.setOpaque(false);


		/**************** 窗体的菜单栏 *********************/
		jf.setJMenuBar(createJMenuBar());// 设置窗体的菜单栏对象

		jf.setVisible(true);
		}

	    /**
		* 创建菜单栏的方法
		* 
		* @return 返回菜单栏对象
		*/

		
		public JMenuBar createJMenuBar() {

			// 实例化一个JMenuBar的对象
			JMenuBar jmb = new JMenuBar();

			// 实例化JMenu的对象
			JMenu menu1 = new JMenu("查看(V)");

			// 实例化JMenuItem的对象
			JMenuItem jmi1 = new JMenuItem("标准型(T)");
			JMenuItem jmi2 = new JMenuItem("科学型(S)");
			JMenuItem jmi3 = new JMenuItem("程序员(P)");
			JMenuItem jmi4 = new JMenuItem("工作表(W)");
			menu1.add(jmi1);
			menu1.add(jmi2);
			menu1.add(jmi3);
			menu1.add(jmi4);

			JMenu menu2 = new JMenu("编辑(E)");
			JMenuItem jmi5 = new JMenuItem("复制(C)");
			JMenuItem jmi6 = new JMenuItem("粘贴(P)");
			JMenuItem jmi7 = new JMenuItem("历史记录(H)");
			menu2.add(jmi5);
			menu2.add(jmi6);
			menu2.add(jmi7);
		
			JMenu menu3 = new JMenu("帮助(H)");
			JMenuItem jmi8 = new JMenuItem("查看帮助(V)");
			JMenuItem jmi9 = new JMenuItem("关于计算器(A)");
			menu3.add(jmi8);
			menu3.add(jmi9);
			
			
			jmb.add(menu1);
			jmb.add(menu2);
			jmb.add(menu3);
	
			return jmb;

			}

}


  

分享到:
评论

相关推荐

    JavaSwing图形界面开发与案例详解源代码

    Java Swing是目前图形界面设计的主流开发工具,《Java Swing图形界面开发与案例详解[1]》从实用的角度出发,通过大量实例全面介绍Java Swing中各种组件的应用及图形界面的开发技术。《Java Swing图形界面开发与案例...

    wxPythonpython图形界面开发包3.0.2.0-py2732位官方安装版

    wxPython是一个优秀且免费开源的Python图形界面开发包,wxPython提供了多种不同的窗口部件,包括了静态文本、可编辑的文本、按钮、微调、滑块、复选框、单选按钮、选择器、列表框、组合框和标尺等等,借助wxPython将...

    《java+swing图形界面开发与案例详解》源代码

    本资源"《java+swing图形界面开发与案例详解》源代码"提供了丰富的学习材料,帮助开发者深入理解如何利用Java Swing构建功能丰富的图形用户界面。 在Java Swing中,组件是构成GUI的基本元素,例如按钮、文本框、...

    Java Swing图形界面开发与案例详解 .王鹏等.扫描版.pdf

    Java Swing图形界面开发与案例详解 .王鹏等.扫描版.pdf

    JAVA图形界面开发

    介绍了通过JAVA进行图形界面开发的相关知识和代码介绍。

    嵌入式linux图形界面开发介绍.doc

    "嵌入式 Linux 图形界面开发介绍" 嵌入式 Linux 图形界面开发是指在嵌入式系统中实现图形用户界面的开发。该领域的基础设施主要包括 SVGALib、X Window、Frame Buffer 等,它们一般是作为其他高级图形或者图形应用...

    Java.Swing图形界面开发与案例详解

    [Java Swing图形界面开发与案例详解].王鹏等.扫描版.pdf 是学习Java Swing的好帮手

    《Java Swing图形界面开发与案例详解》源代码

    本资源——"《Java Swing图形界面开发与案例详解》源代码",显然是一个详细教程的配套源码,旨在帮助学习者深入理解和实践Swing的相关知识。 Swing组件库包含了窗口、按钮、文本框、滚动面板、菜单、表格、树形视图...

    TX2440 QT图形界面开发

    《TX2440 QT图形界面开发》是针对基于TX2440开发板的QT图形界面编程技术的深入探讨。QT是一个强大的跨平台应用程序开发框架,尤其在嵌入式领域有着广泛的应用,如TX2440这样的硬件平台上。QT提供了一套完整的工具和...

    Java Swing图形界面开发与案例详解_带书签_高清完整版

    《Java Swing图形界面开发与案例详解》是由王鹏和何昀峰共同编著的一本专业书籍,ISBN号为978-7-302-18904-6。这本书深入浅出地介绍了使用Java Swing进行图形用户界面(GUI)开发的相关知识和技术。在Java编程领域,...

    JavaSwing图形界面开发与案例详解和实例代码

    本资料包"JavaSwing图形界面开发与案例详解"包含了对Swing的深入讲解以及相关的实例代码,旨在帮助开发者掌握Swing的基本用法和高级特性。 Swing的核心组件包括JFrame(窗口)、JPanel(面板)、JButton(按钮)、...

    Java Swing图形界面开发与案例详解全书代码.rar

    Java Swing图形界面开发与案例详解全书的随书光盘源代码,是相当不错的Swing图形设计学习资料,一共包括了19章的代码,配合《Java Swing图形界面开发与案例详解》一书学习,效果更好。实例中的大部分代码都有详细...

    C语言图形界面开发源程序

    虽然C语言本身不支持直接创建图形用户界面(GUI),但通过一些第三方库,我们可以实现C语言的图形界面开发。本资源“C语言图形界面开发源程序”显然提供了这样的示例代码,可以帮助开发者了解如何在C语言中构建GUI。...

    Linux下QT 图形界面开发

    Linux 下 QT 图形界面开发概述 Linux 下 QT 图形界面开发是指使用 QT 框架在 Linux 平台上开发图形用户界面的技术。QT 是一个跨平台的 C++ 图形用户界面库,由挪威 TrollTech 公司出品,目前包括 Qt/X11,基于 ...

    java.swing图形界面开发与案例详解源程序

    《Java Swing图形界面开发与案例详解》几乎涵盖了目前Java Swing图形开发必备的所有常用知识,拥有丰富的实例,且这些实例均来自于工程实践,《Java Swing图形界面开发与案例详解》适合Java程序语言的初学者阅读,也...

    JAVA+图形界面开发

    ### JAVA+图形界面开发知识点详解 #### 一、引言 1995年,Sun Microsystems推出了Java语言,因其具备跨平台、面向对象等特点而迅速成为软件开发领域的重要工具之一。Java最初的目标是为了统一消费电子产品的开发...

    Java图形界面开发:SWT全接触教程

    ### Java图形界面开发:SWT全接触教程 #### 引言 从Java语言诞生之初,其在图形用户界面(GUI)开发领域的表现一直备受争议。尽管Java在诸多领域展现出非凡的实力,但在桌面应用程序方面,其默认的图形界面开发包...

    Java Swing图形界面开发与案例详解.王鹏等.扫描版.part1

    Java Swing图形界面开发与案例详解.王鹏等.扫描版

Global site tag (gtag.js) - Google Analytics