`
ycyxb104
  • 浏览: 26612 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Swing 界面开发

 
阅读更多

 Swing

     Swing属于JFC(Java Foundation Classes)的一部分。JFC包含了AWT,Swing,辅助功能API,Java2D,拖放。Swing的出现是为了解决AWT(Abastract Window Toolkit)的移植性和提供更多的企业级应用程序所需要的功能。Swing建立在核心AWT库上,JDK1.2以及更高的版本已经包含了Swing库。

Swing内部采用了MVC体系结构(modle-view-controller)。modle负责存放Swing组件的状态(数据),controller负责处理事件,view负责绘制图形。Swing使用了简化的MVC变体,controller和view合并称为UI代理。这种设计使得一个modle可以对应多个UI代理,因此非常灵活。

 

      AWT 是Abstract Window ToolKit (抽象窗口工具包)的缩写,这个工具包提供了一套与本地图形界面进行交互的接口。Swing 是在AWT的基础上构建的一套新的图形界面系统,它提供了AWT 所能够提供的所有功能,并且用纯粹的Java代码对AWT 的功能进行了大幅度的扩充。

      AWT 是抽象窗口组件工具包,是 java 最早的用于编写图形节目应用程序的开发包。是jdk1.4之前推出的图形的界面。
      Swing 是为了解决 AWT 存在的问题而新开发的包,它以 AWT 为基础的。jdk1.4的时候推出的图形界面。

 

 

常用的Swing图形界面API类

1.容器组件

JFrame      窗体类     最顶级的容器
JPanel      面板类     最灵活的容器

 

2.元素组件
JLabel      标签类
JTextField  文本输入框类
JPasswordField   密码输入框类
JComboBox    下拉列表框类
JCheckBox    复选框类
JButton     按钮类

3.常用的布局API类
FlowLayout     流式布局类
BorderLayout    边框布局类
GridLayout        网格布局类

 

PS:java.awt包名,在用的使用的要记得在类名前加包名。
 如:java.awt.FlowLayout

 

下面我们来建立一个简单的界面:

import javax.swing.*;
public class fr{
	public static void main(String[] args){
		JFrame jf=new JFrame();//实例化一个窗体
		jf.setSize(400,400);//设置窗体的大小
		jf.setLocation(400,200);//设置窗体显示的位置
		jf.setDefaultCloseOperation(3);//设置窗体关闭的属性
		jf.setVisible(true);//设置窗体是否可见
	}
}

 结果显示:



 

一个好看的、复杂的界面需要各种组件和容器的搭配,可以根据需要选择。

 

下面是一个原创的山寨QQ登录界面的部分代码,添加了部分监听器,去掉了原有窗体的边框,添加了最小化和关闭按钮,可以实现窗体的最小化、关闭和拖拽。主函数:

import java.awt.*;
import javax.swing.*;
public class Frame {
	private static final String TimesRoman = null;
	private static final int LEFT = 0;
	public static void main(String[] args){
		/*
		 * 设置窗体属性
		 */
		JFrame J=new JFrame();
		J.setSize(380, 290);
		J.setLocation(500,300);
		BorderLayout border=new BorderLayout();
		J.setLayout(border);
		J.setTitle("山寨登录QQ界面");
		J.setResizable(false);
		J.setUndecorated(true);
		/*
		 * 定义容器
		 */
		FlowLayout FL1=new FlowLayout();
		FL1.setHgap(14);
		FL1.setAlignment(LEFT);
		JPanel centerpanel=new JPanel();
		JPanel southpanel=new JPanel();
		JPanel northpanel=new JPanel();
		JPanel westpanel=new JPanel();
		centerpanel.setLayout(FL1);
		southpanel.setLayout(new FlowLayout());
		northpanel.setLayout(null);
		westpanel.setLayout(new FlowLayout(FlowLayout.RIGHT));
		/*
		 * 定义组件
		 */
		JComboBox CB1=new JComboBox();
		ImageIcon img=new ImageIcon("1.jpg");
		ImageIcon img1=new ImageIcon("关闭.jpg");
		ImageIcon img2=new ImageIcon("最小化.jpg");
		JPasswordField P1=new JPasswordField();
		JButton JB1=new JButton("注册帐号");
		JButton JB2=new JButton("忘记密码");
		JButton JB3=new JButton("登录");
		JLabel register=new JLabel("注册帐号");
		JLabel forget=new JLabel("找回密码");
		JButton close=new JButton(img1);
		JButton minimize=new JButton(img2);
		JLabel image1=new JLabel(img);
		JLabel image2=new JLabel(new ImageIcon("2.jpg"));
		JCheckBox box1=new JCheckBox("记住密码");
		JCheckBox box2=new JCheckBox("自动登录");
		//设置组件大小
		centerpanel.setPreferredSize(new Dimension(185, 27));
		northpanel.setPreferredSize(new Dimension(380, 140));
		westpanel.setPreferredSize(new Dimension(100, 100));
		CB1.setPreferredSize(new Dimension(185, 27));
		CB1.setEditable(true);
		P1.setPreferredSize(new Dimension(185,27));
		JB1.setPreferredSize(new Dimension(60,27));
		JB3.setPreferredSize(new Dimension(150, 30));
		image2.setPreferredSize(new Dimension(80,80));
		close.setBounds(J.getWidth()-img1.getIconWidth(),0,img1.getIconWidth(),img1.getIconHeight());
		minimize.setBounds(J.getWidth()-img1.getIconWidth()-img2.getIconWidth()+1,0,img2.getIconWidth(),img2.getIconHeight());
		/*
		 * 设置按钮、复选框透明
		 */
		JB1.setFocusPainted(false);//不绘制焦点
		JB1.setBorderPainted(true); //不绘制边界
		JB1.setContentAreaFilled(false); //不填充所占的矩形区域
		JB2.setFocusPainted(false);
		JB2.setBorderPainted(false); 
		JB2.setContentAreaFilled(false); 
		box1.setFocusPainted(false);
		box1.setBorderPainted(false); 
		box1.setContentAreaFilled(false); 
		box2.setFocusPainted(false);
		box2.setBorderPainted(false); 
		box2.setContentAreaFilled(false); 
		/*
		 * 设置透明
		 */
		J.getLayeredPane().add(image1, new Integer(Integer.MIN_VALUE));
		image1.setBounds(0,0,img.getIconWidth(),img.getIconHeight());
		Container P4=J.getContentPane();  
		((JComponent) P4).setOpaque(false);
		centerpanel.setOpaque(false);
		southpanel.setOpaque(true);
		northpanel.setOpaque(false);
		westpanel.setOpaque(false);
		/*
		 * 将组件添加到容器中
		 */
		centerpanel.add(CB1);
		centerpanel.add(register);
		centerpanel.add(P1);
		centerpanel.add(forget);
		centerpanel.add(box1);
		centerpanel.add(box2);
		southpanel.add(JB3);
		westpanel.add(image2);
		northpanel.add(close);
		northpanel.add(minimize);
		/*
		 * 将容器添加进窗体
		 */
		J.add(centerpanel,BorderLayout.CENTER);
		J.add(southpanel,BorderLayout.SOUTH);
		J.add(northpanel,BorderLayout.NORTH);
		J.add(westpanel,BorderLayout.WEST);
		/*
		 * 添加监听器
		 */
		CloseListener c1=new CloseListener();//关闭监听器
		MinimizeListener m1=new MinimizeListener(J);//最小化监听器
		DragListener d1=new DragListener(J);//拖拽监听器
		close.addMouseListener(c1);
		minimize.addMouseListener(m1);
		J.addMouseMotionListener(d1);
		J.setDefaultCloseOperation(3);
		J.setVisible(true);
	}
}

 实现结果:



 

  • 大小: 61 KB
  • 大小: 30.2 KB
分享到:
评论

相关推荐

    swing界面开发

    Swing界面开发是Java编程领域中的一个重要组成部分,主要用于构建桌面应用程序的用户界面。它是由Sun Microsystems(现为Oracle公司)开发的Java Foundation Classes (JFC) 的一部分,提供了丰富的组件库,使得...

    swing界面开发—java 基础/数据结构/网络编程/线程/异常处理/jdbc数据库操作/swing控件开发大全

    Java Swing界面开发是Java GUI(图形用户界面)编程的一个重要组成部分,它提供了丰富的组件库用于构建桌面应用程序。在这个教程中,我们将深入探讨几个关键的知识点,包括Java基础、数据结构、网络编程、线程管理、...

    Swing界面开发工具源代码

    Swing界面开发工具源代码是Java开发者们设计和构建图形用户界面(GUI)的重要资源,尤其对于那些希望在他们的应用程序中创建美观且功能丰富的Swing界面的开发者来说,这是一个宝贵的工具。Swing库是Java标准版(Java...

    swing界面开发rt.jar

    rt.jar swing界面开发rt.jar swing界面开发rt.jar swing界面开发rt.jar swing界面开发rt.jar swing界面开发

    JAVA总结之 简单的SWING界面开发

    这篇“简单的SWING界面开发”总结将帮助我们深入理解如何使用Swing来创建用户友好的桌面应用程序。 首先,Swing是Java Foundation Classes (JFC)的一部分,它是对早期AWT(Abstract Window Toolkit)的增强。Swing...

    java swing界面开发的班级管理系统

    在"java swing界面开发的班级管理系统"项目中,我们可以深入探讨以下几个重要的知识点: 1. **Swing组件**:Swing 提供了多种组件,如 JButton、JLabel、JTextField、JTextArea、JTable等,这些组件可以用于构建...

    Swing界面开发和游戏开发.docx

    ### Swing界面开发与游戏开发详解 #### 一、Swing简介及入门 Swing是Java的一个图形用户界面(GUI)工具包,它提供了丰富的组件来帮助开发者构建桌面应用程序。相比于AWT(Abstract Window Toolkit),Swing提供了更多...

    java swing界面开发的一个抓取快递接口工具

    在本项目中,"java swing界面开发的一个抓取快递接口工具"是一个利用Java Swing来设计图形用户界面(GUI)的应用,其主要功能是与快递100查询接口进行交互,获取物流信息。下面我们将深入探讨Java Swing和快递100...

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

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

    Java 学生信息管理系统Swing界面开发教程

    本文件展示了一个用Java语言开发的小型系统——学生信息管理系统,该系统使用了 Swing 图形用户界面组件库来完成交互界面的设计,包含了学生基本信息(如学号、姓名、年龄和专业)的增加、查询、修改与删除等主要...

    4个swing界面.rar_java swing_swing_swing 界面_个_界面

    在压缩包的文件名列表中,"www.pudn.com.txt"可能是一个链接或资源列表,提供了更多关于Swing界面开发的资料,可能包括额外的教程、示例代码或者其他学习资源。而文件"gift"可能是一个jar文件,包含了这四个Swing...

    Java计算器应用实现-基础数学运算与Swing界面开发

    具体而言,项目分为Calculator类和CalculatorFrame类两个部分,前者负责计算逻辑实现,后者则是利用Swing构建图形用户界面(GUI),并实现了对各个算术操作的响应。 适合人群:初学者或有一定Java基础知识的学生和...

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

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

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

    然而,这同时也意味着Swing界面可能不如一些本地GUI库那样流畅。为了解决这个问题,Java提供了一些优化技术,如double-buffering和及时绘制(Repaint Manager),来改善动画和滚动效果。 在实际项目中,开发者还...

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

    《Java Swing图形界面开发与案例详解》是一本深入讲解Java GUI编程的书籍,源代码提供了丰富的实例,适合Java初学者入门学习。Swing是Java AWT(Abstract Window Toolkit)库的扩展,它提供了更为丰富的组件和更现代...

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

    在"Java+Swing图形界面开发与案例详解"这本书中,作者深入浅出地介绍了如何使用Swing来设计和实现GUI应用。 该书的实例代码包含了从第一讲到第八讲的源码,逐步引导读者从基础到进阶掌握Swing的使用。以下是这些讲...

    swing界面美化包

    总的来说,Swing界面美化是Java GUI开发中的一项重要技能,通过合理利用Look-and-Feel机制和第三方库,开发者可以打造出独特且吸引人的用户界面,提升用户体验。在实际项目中,结合业务需求和个人审美,灵活运用这些...

    Java+Swing图形界面开发与案例详解实例代码

    Java Swing是Java标准库中的一个组件,用于构建桌面应用程序的用户界面。它是Java Foundation Classes (JFC)的一部分,提供了一套丰富的组件库,允许开发者创建功能完备、交互性强的图形用户界面(GUI)。本实例代码...

    Java Swing图形界面开发与案例详解及随书实例代码

    Java Swing是Java编程语言中用于构建桌面应用程序图形用户界面(GUI)的一个库,它是Java Foundation Classes (JFC)的一部分。Swing提供了丰富的组件集,包括按钮、文本框、菜单等,使得开发者能够创建功能强大的、...

    Java Swing 图形界面开发--文章的源码

    在这个“Java Swing 图形界面开发--文章的源码”压缩包中,包含了与CSDN博客文章《xietansheng》相关的所有示例代码,这些代码都是使用Eclipse IDE编写的。 1. **Java Swing组件**: - Swing 提供了多种组件,如 ...

Global site tag (gtag.js) - Google Analytics