`
陌陌天使
  • 浏览: 22582 次
  • 性别: Icon_minigender_2
  • 来自: 长沙
社区版块
存档分类
最新评论

简单swing界面开发

阅读更多

界面的容器包括窗体(JFrame)和面板(JPanel),一个界面有且只有一个窗体,面板是仅小于窗体的容器。

容器上面可以加各种组件,包括标签(JLabel),文本输入框(JTextField),复选框(JCheckBox),密码框(JPasswordField),按钮(JButton),下拉框(JComboBox)

 

菜单栏的添加 对象.setJMenuBar();实例化一个菜单栏,然后向上面添加菜单项以及在菜单项上添加菜单子项

 

容器上的组件必然是按照一定顺序排列起来的,不可能杂乱无章,所以就有了布局类,常用的有边框布局(BorderLayout),流式布局(FlowLayout),网格布局(GridLayout)

主要的方法举例:A a = new B();//实例化一个对象
  a.set*****(***);//设置对象的属性
  a.add(********);//向对象上加组件 
所有的操作都可以概括为这几点,具体方法不必死记,需灵活应用。

 

下面是QQ登陆界面和计算器界面:



 

 下面是源代码:

package cn.kml.login;
import java.awt.BorderLayout;

import java.awt.Dimension;
import java.awt.FlowLayout;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JCheckBox;
import javax.swing.JLabel;
import javax.swing.JPanel;
/**
 * 用于实现QQ登陆界面
 * @author 陌陌
 */
public class QQLogin {
	public static void main(String[] args) {
		//实例化一个Login类对象
		QQLogin log=new QQLogin();
		//调用初始化界面的方法
		log.initUI();
		}
	
	//定义一个初始化界面的方法
	public void initUI(){
		
		//实例化一个JFrame对象
		javax.swing.JFrame jf = new javax.swing.JFrame();
		//设置对象的属性
		jf.setSize(381,290);
		jf.setUndecorated(true);
		jf.setLocationRelativeTo(null);
		jf.setTitle("QQ登录界面");
//		jf.setDefaultCloseOperation(3);
		jf.setResizable(false);//设置窗体不可最大化
		
		/*****************************设置窗体的背景*****************************************/
		//实例化一个图标对象
		ImageIcon background = new ImageIcon("images/background.png");
		//实例化一个标签对象
		JLabel jlb = new JLabel(background);
		//设置标签的大小
		jlb.setBounds(0,0, background.getIconWidth(), background.getIconHeight());
		//将标签添加到LayeredPane的最底层
		jf.getLayeredPane().add(jlb, new Integer(Integer.MIN_VALUE));
		//将LayeredPane上一层的面板设置为透明
		JPanel contentPanel = (JPanel)jf.getContentPane();
		//设置面板为透明
		contentPanel.setOpaque(false);
		
		/******************************窗体的北边**********************************************/
		//实例化一个面板对象
		JPanel jpn=new JPanel();
		jpn.setOpaque(false);//设置为透明
		jpn.setPreferredSize(new Dimension(379,142));
		//设置面的布局为流式布局,靠右显示
		jpn.setLayout(new FlowLayout(FlowLayout.RIGHT,0,0));
		//在面板上加上三个按钮
		//添加三个图标对象
		String[] button ={"images/set.png","images/min.png","images/close.png"}; 
		String[] command = {"a","b","c"};
		CloseListener clis = new CloseListener(jf,jpn);
		for(int i=0;i<3;i++){
		ImageIcon close = new ImageIcon(button[i]); 
		JButton buset = new JButton(close);
		buset.setActionCommand(command[i]);
		buset.setPreferredSize(new Dimension(27,17));
		jpn.add(buset);
		buset.addActionListener(clis);
		}
		jf.add(jpn,BorderLayout.NORTH);
		
		/*****************************窗体的西边**********************************************/
		//实例化一个面板对象
		JPanel jpw=new JPanel();
		jpw.setOpaque(false);
		//设置版面的布局
		jpw.setLayout(new FlowLayout(FlowLayout.RIGHT,15,3));
		//实例化一个ImageIcon对象
		ImageIcon im2=new ImageIcon("images/head.png");
		//实例化一个便签对象,显示图标对象
		JLabel jlw=new JLabel(im2);
		jpw.add(jlw);
		//把面板对象加到窗体的西边
		jf.add(jpw,BorderLayout.WEST);
		
		/******************************窗体的中间**********************************************/
		//实例化一个面板对象
		JPanel jpc=new JPanel();
		jpc.setOpaque(false);
		//设置面板的布局类型为流式布局类型,左边对齐
		jpc.setLayout(new FlowLayout(FlowLayout.LEFT,20,5));
		//实例化一个下拉框类的对象,显示已登录
		javax.swing.JComboBox jc = new javax.swing.JComboBox();
		jc.addItem("请输入QQ");
		jc.addItem("758768990");
		jc.addItem("655467677");
		jc.addItem("65454343");
		jc.setPreferredSize(new Dimension(164,24));
		jc.setEditable(true);
		jpc.add(jc);
		//实例化一个标签对象,显示注册账号。
		javax.swing.JLabel jl1 = new javax.swing.JLabel("注册账号");
		jl1.setOpaque(false);
		jpc.add(jl1);
		//实例化一个下拉框类的对象,显示”请输入密码“
		javax.swing.JPasswordField jc1 = new javax.swing.JPasswordField();
		jc1.setPreferredSize(new Dimension(164,24));
		jc1.setEditable(true);
		jpc.add(jc1);
		//实例化一个标签对象,显示找回密码
		javax.swing.JLabel jl2 = new javax.swing.JLabel("找回密码");
		jl2.setOpaque(false);
		jpc.add(jl2);
		
		//实例化两个复选框
		JCheckBox jch1=new JCheckBox("记住密码");
		JCheckBox jch2=new JCheckBox("自动登录");
		jch1.setOpaque(false);
		jch2.setOpaque(false);
		jpc.add(jch1);
		jpc.add(jch2);
		jf.add(jpc,BorderLayout.CENTER);
		
		/*********************窗体的南边********************************************/
		//实例化一个面板对象
		JPanel jpno=new JPanel();
		jpno.setOpaque(false);
		
		
		//实例化一个图标对象
		ImageIcon login = new ImageIcon("images/login.png");
		
		//实例化一个按钮类的对象,显示登陆。
		JButton jb = new JButton(login);
		jb.setPreferredSize(new Dimension(156,31));
		jpno.add(jb);
		
		jf.add(jpno,BorderLayout.SOUTH);
		
		jf.setVisible(true);
		//窗体可见之后,给关闭按钮添加一个监听器
	}
}

 

package cn.kml.login;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JPanel;

public class CloseListener implements ActionListener{
	private JFrame jf;
	private JPanel jpn;
	
	public CloseListener(JFrame jf,JPanel jpn){
		this.jf=jf;
		this.jpn=jpn;
	}
	//重写
	public void actionPerformed(ActionEvent e) {
		
		if(e.getActionCommand().equals("c")){
			jf.setVisible(false);
		}
	}

}

 

package cn.kml.counter;

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

import javax.swing.ImageIcon;
import javax.swing.JButton;
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 Counter {

	
	public static void main(String[] args) {
		//实例化一个Counter对象
		Counter co=new Counter();
		co.COUNT();
		}
	private Component jbu;
	//初始化一个计算器界面
	private int j;
	private JButton jbut;
	public void COUNT(){
		//实例化一个JFrame对象
		JFrame jf=new JFrame();
		
		//设置对象的属性
		jf.setSize(250,353);
		jf.setTitle("        计算器");
		jf.setLocationRelativeTo(null);
		//jf.setUndecorated(true);
		jf.setDefaultCloseOperation(3);
		jf.setResizable(false);
		
		/*********************设置窗体的菜单栏**********************/
		//实例化一个菜单栏对象
		JMenuBar jm = new JMenuBar();
		
		//实例化一个菜单项对象
		JMenu jm1 = new JMenu("查看(V)");
		//在菜单项中添加菜
		JMenuItem jit = new JMenuItem("标准型(T)");
		JMenuItem jis = new JMenuItem("科学型(S)");
		jm1.add(jit);
		jm1.add(jis);
		jm.add(jm1);//添加到菜单栏中
		
		JMenu jm2 = new JMenu("编辑(E)");
		//在菜单项中添加菜单子项
		JMenuItem jic = new JMenuItem("复制(C) Ctrl+C");
		JMenuItem jiv = new JMenuItem("粘贴(V) Ctrl+V");
		jm2.add(jic);
		jm2.add(jiv);
		jm.add(jm2);
		
		JMenu jm3 = new JMenu("帮助(H)");
		//在菜单栏中设置菜单子项
		JMenuItem ji = new JMenuItem("查看帮助(V)");
		jm3.add(ji);
		jm.add(jm3);
		jf.setJMenuBar(jm);
		
		/********************设置计算器的背景**********************/
		//实例化一个图标对象
		ImageIcon bg = new ImageIcon("image/bg1.png");
		//实例化一个标签对象
		JLabel jlb = new JLabel(bg);
		//设置标签的大小
		jlb.setBounds(0, 0, bg.getIconWidth(),bg.getIconHeight());
		//把标签添加到LayeredPane的最底层
		jf.getLayeredPane().add(jlb,new Integer(Integer.MIN_VALUE));
		//把LayeredPane的上一层设置为透明
		JPanel contentPanel = (JPanel)jf.getContentPane();
		//设置面板为透明
		contentPanel.setOpaque(false);
		/*********************窗体的北边*************************/
		JPanel jp1=new JPanel();
		jp1.setOpaque(false);
		//实例化一个文本输入框
		JTextField jt=new JTextField();
		jt.setText("0");
		jt.setHorizontalAlignment(JTextField.RIGHT);
		jt.setFont(new Font("楷体",Font.BOLD,35));
		jt.setEditable(false);
		jt.setPreferredSize(new Dimension(208,54));
		jp1.add(jt);
		jf.add(jp1,BorderLayout.NORTH);
		/*******************************窗体的西边*******************************************/
		//实例化一个版面对象
		JPanel jpw = new JPanel();
		jpw.setOpaque(false);
		jpw.setPreferredSize(new Dimension(192,250));
		
		//设置面板为流式布局
		jpw.setLayout(new FlowLayout(FlowLayout.RIGHT,6,6));
		String[] array={"image/MC.png","image/MR.png","image/MS.png",
				"image/M+.png","image/ZUOJIAN.png",
				"image/CE.png","image/C.png","image/+-.png",
				"image/7.png","image/8.png","image/9.png",
				"image/XIE.png","image/4.png","image/5.png",
				"image/6.png","image/XINHAO.png",
				"image/1.png","image/2.png","image/3.png","image/-.png",
				"image/0.png","image/DIAN.png","image/+.png"};
		for(int i=0;i<array.length;i++){
			JButton jbu= new JButton(new ImageIcon(array[i]));
			if(array[i].equals("image/0.png")){
				jbu.setPreferredSize(new Dimension(80,28));
				jpw.add(jbu);
			}else{
				jbu.setPreferredSize(new Dimension(38,28));
				jpw.add(jbu);
			}
			}
		jf.add(jpw,BorderLayout.WEST);
		
		/******************窗体的东边**********************/
		//实例化一个面板对象
		JPanel jpe = new JPanel();
		jpe.setOpaque(false);
		//设置面板的布局为流式布局
		jpe.setLayout(new FlowLayout(FlowLayout.LEFT,0,6));
		jpe.setPreferredSize(new Dimension(75,260));

		String[] array1={"image/M-.png","image/GENHAO.png",
				"image/%.png","image/1X.png","image/=.png"};
		//实例化按钮对象
		for(int j=0;j<array1.length;j++){
			JButton jbut= new JButton(new ImageIcon(array1[j]));
			if(array1[j].equals("image/=.png")){
				jbut.setPreferredSize(new Dimension(38,65));
				jpe.add(jbut);
			}else{
				jbut.setPreferredSize(new Dimension(38,28));
				jpe.add(jbut);
			}
		}
		jf.add(jpe);
		
		jf.setVisible(true);
		}
}

 
    

  • 大小: 138 KB
  • 大小: 86.3 KB
分享到:
评论

相关推荐

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

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

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

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

    swing界面美化包

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

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

    总的来说,Java Swing提供了全面的GUI开发工具,涵盖了从简单窗口到复杂应用的各种需求。通过学习和实践这些实例代码,开发者可以熟练掌握Swing的使用技巧,提高开发桌面应用的能力。无论你是初学者还是经验丰富的...

    Java Swing 界面美化包-含源码

    然而,Swing 的默认界面风格(LookAndFeel)在视觉上可能相对简单,不够吸引人。为了解决这个问题,开发人员通常会寻找第三方库来美化 Swing 应用程序的界面,让它们看起来更加现代和专业。 "Java Swing 界面美化包...

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

    在《Java Swing图形界面开发与案例详解》源代码这个压缩包中,你可以找到一系列的Java源文件,每个文件对应一个Swing应用的实现。通过解压并导入到开发环境中,你可以运行这些示例,观察它们的运行效果,然后逐步...

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

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

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

    本实例代码集是基于《Java+Swing图形界面开发与案例详解》这本书的实践教学内容,旨在帮助读者深入理解和掌握Swing在实际项目中的应用。 1. **Swing组件基础** Swing提供了一系列组件,如按钮(JButton)、文本框...

    Java Swing图形界面开发与案例详解 .王鹏等.扫描版(前5章代码)

    在"Java Swing图形界面开发与案例详解 .王鹏等.扫描版(前5章代码)"中,读者可以学习到以下关键知识点: 1. **基础组件**:包括JButton、JLabel、JTextField、JTextArea、JComboBox、JCheckBox、JRadioButton等基本...

    Swing 界面设计小例子

    在本教程中,我们将探讨Swing界面设计的一些基本概念和实践,通过一个简单的小例子来展示如何创建和定制GUI组件。 首先,Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)等,用于...

    Java Swing界面编写的简单的记事本

    用java写的一个 Swing 界面的 记事本,拥有文件打开 保存等基本功能,还有查找替换 以及 更换字体等功能。

    Java Swing图形界面

    在《Java Swing图形界面开发与案例详解》源代码中,可能包含了许多实用的示例,如计算器、文件浏览器、简单的数据库应用等,这些案例可以帮助读者更好地理解Swing在实际开发中的应用。通过阅读和实践这些代码,你...

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

    4. **第十三章代码**:这部分可能涉及Swing的对话框,例如JOptionPane,用于显示警告、确认、输入等简单对话,以及自定义JDialog的使用。 5. **第四章代码**:可能会讲解Swing的菜单和菜单条(JMenuBar和JMenu),...

    java课程设计界面美化包,swing也可以这么漂亮

    本demo正是一个很好的教学示例,展示了如何集成和使用Substance库来美化Swing界面。 在"main"函数中的注释,作者提供了一个简单的教程,指导如何更换皮肤。通常,这涉及到加载Substance库,创建一个自定义的LookAnd...

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

    适合人群:初学者或有一定Java基础知识的学生和开发者,特别是想要深入了解Swing库进行简单图形界面编程的个人。 使用场景及目标:适用于Java学习过程中实战练习、理解Swing组件布局和动作事件的绑定,以及掌握基本...

    java Swing 图形界面开发原理详解 源代码

    本资源由王鹏和何昀峰编著,专注于Java Swing的图形界面开发与案例详解,包含全书的所有源代码,对于学习和实践Swing编程具有很高的价值。 Swing的核心概念包括组件(JComponents)、布局管理器(Layout Managers)...

    java swing界面教程

    Swing界面教程主要涵盖以下几个核心知识点: 1. **Swing组件**:Swing提供了一系列组件,如JButton、JLabel、JTextField、JTextArea、JComboBox、JTable等,这些组件使得开发者能够创建各种类型的用户界面。每个...

    使用Java Swing界面实现数据库基本操作

    ### 使用Java Swing界面实现数据库基本操作 #### 一、引言 在软件开发领域,图形用户界面(GUI)是提高用户体验的重要组成部分。Java Swing作为Java平台上的一个强大的GUI工具包,为开发者提供了丰富的组件和功能来...

    Java.Swing图形界面开发与案例详解.王鹏等——第8章

    在第8章“Java Swing图形界面开发与案例详解”中,作者王鹏等深入探讨了Swing在GUI设计中的应用,包括各种组件、布局管理器、事件处理以及高级功能。 一、Swing组件 Swing提供了一系列预定义的组件,如按钮...

    Swing版简单计算器

    Swing版的简单计算器,实现加减乘除,第一次写,希望大家给点建议。

Global site tag (gtag.js) - Google Analytics