窗体界面开发
主要用到的两个类包awt和swing;
awt是jdk1.4前使用的包,里面语言有C和C++,窗体为Frame,swing是jdk1.4以后版本使用的包,窗体,组建前加J,比如JFrame,具有跨平台性。
常用的组建类(javax.swing)
容器组建
JFrame 最大的显示窗体 不能加在另一个窗体上默认边框布局
JPanel面板容器可以加在面板容器和窗体容器上可设置布局管理器默认流式布局管理器
元素组建
JLabel
JButton
JTextField
JPasswordField密码输入框
JCheckBox复选框
JComboBox下拉菜单setEidtable(boolean true)可设置下拉菜单可编辑状态
常用的布局类(java.awt)
BorderLayout边框布局(默认在center)
GridLayout网格布局,几行几列(组建大小是一样的,不一样不能用组建类)
FlowLayout流式布局管理器
自定义布局 setBounders()方法,较常用
package jisuanqi0628; 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.JLabel; import javax.swing.JMenu; import javax.swing.JMenuBar; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JTextField; //建立Caculator类 public class Caculator { //建立入口函数 public static void main(String [] args){ Caculator ca=new Caculator(); ca.unitGUI(); } //建立方法,初始化界面 public void unitGUI(){ //实例化JFrame类,并设置窗体属性值 JFrame frame=new JFrame(); frame.setTitle("计算器"); frame.setSize(new Dimension(210,328)); //设置窗体的菜单栏属性 //****************背景图片设置******************* ImageIcon con02=new ImageIcon("images/back.jpg");//实例化图片元素组件对象 JLabel lab=new JLabel(con02); lab.setBounds(0,0,con02.getIconWidth(),con02.getIconWidth());//设置标签大小 //将标签添加到LayeredPane最底层 frame.getLayeredPane().add(lab,new Integer(Integer.MIN_VALUE)); //将LayeredPane的上一层设置为透明 JPanel contentPane=(JPanel)frame.getContentPane(); contentPane.setOpaque(false); frame.setJMenuBar(createMenuBar()); JPanel northPanel=createNorth(); JPanel centerPanel=createCenter(); JPanel eastPanel=createEast(); northPanel.setOpaque(false); centerPanel.setOpaque(false); eastPanel.setOpaque(false); frame.add(northPanel,BorderLayout.NORTH); frame.add(centerPanel,BorderLayout.CENTER); frame.add(eastPanel,BorderLayout.EAST); frame.setDefaultCloseOperation(3);//程序退出时,进程关闭 frame.setLocationRelativeTo(null);//页面初始显示在显示器中央 //修改图标标志 frame.setIconImage(new ImageIcon("images/tubiao.jpg").getImage()); frame.setResizable(false);//页面大小不可改变 frame.setVisible(true); //创建JMenuBar方法 } //创建北边面板的方法 private JPanel createNorth(){ JPanel pan01=new JPanel();//实例化面板对象 JTextField jtf=new JTextField();//实例化输入框对象 //设置输入框大小 jtf.setPreferredSize(new Dimension(188,47)); //输入框靠右显示 jtf.setHorizontalAlignment(JTextField.RIGHT); jtf.setEditable(false); jtf.setText("0"); //设置字体 jtf.setFont(new Font("宋体",Font.BOLD,30)); pan01.add(jtf); return pan01; } //创建中间面板的方法 private JPanel createCenter(){ JPanel pan02=new JPanel();//实例化面板对象 String [] arr={"mc","mr","ms","m+","jt","ce","c","+-","7","8","9","ch","6","7","8","xh","1","2","3","jh","0","d","jj"}; for(int i=0;i<arr.length;i++){ if(arr[i].equals("0")){ ImageIcon con=new ImageIcon("images/"+arr[i]+".jpg");//实例化图片对象 JButton but=new JButton(con);//实例化按钮 but.setPreferredSize(new Dimension(73,27)); pan02.add(but); }else{ ImageIcon con=new ImageIcon("images/"+arr[i]+".jpg");//实例化图片对象 JButton but=new JButton(con);//实例化按钮 but.setPreferredSize(new Dimension(34,27));//设置按钮大小 pan02.add(but); } } return pan02; } //创建东面面板的方法 private JPanel createEast(){ JPanel pan03=new JPanel();//实例化面板对象 pan03.setPreferredSize(new Dimension(34,190));//设置面板大小 String [] arr1={"m-","00","bf","1x","dh"}; for(int i=0;i<arr1.length;i++){ if(arr1[i].equals("dh")){ ImageIcon con01=new ImageIcon("images/"+arr1[i]+".jpg"); JButton but01=new JButton(con01); but01.setPreferredSize(new Dimension(34,59)); pan03.add(but01); }else{ ImageIcon con01=new ImageIcon("images/"+arr1[i]+".jpg"); JButton but01=new JButton(con01); but01.setPreferredSize(new Dimension(34,27)); pan03.add(but01); } } return pan03; } private JMenuBar createMenuBar(){ //实例化菜单栏对象 JMenuBar ba=new JMenuBar(); //实例化菜单项对象 JMenu jmV=new JMenu("查看(V)"); //实例化菜单子项 JMenuItem jmeT=new JMenuItem("标准型(T)"); JMenuItem jmeS=new JMenuItem("科学型(S)"); JMenuItem jmeP=new JMenuItem("程序员(P)"); JMenuItem jmeA=new JMenuItem("统计信息(A)"); JMenuItem jmeY=new JMenuItem("历史记录(Y)"); JMenuItem jmeI=new JMenuItem("数学分组(I)"); JMenuItem jmeB=new JMenuItem("基本(B)"); JMenuItem jmeU=new JMenuItem("单位换算(U)"); JMenuItem jmeD=new JMenuItem("日期计算(D)"); JMenuItem jmeW=new JMenuItem("工作表(W)"); jmV.add(jmeT); jmV.add(jmeS); jmV.add(jmeP); jmV.add(jmeA); jmV.add(jmeY); jmV.add(jmeI); jmV.add(jmeB); jmV.add(jmeU); jmV.add(jmeD); jmV.add(jmeW); ba.add(jmV); JMenu jmE=new JMenu("编辑(E)"); JMenuItem jmeC=new JMenuItem("复制(C)"); JMenuItem jme1P=new JMenuItem("粘贴(P)"); JMenuItem jmeH=new JMenuItem("历史记录(H)"); jmE.add(jmeC); jmE.add(jme1P); jmE.add(jmeH); ba.add(jmE); JMenu jmH=new JMenu("帮助(H)"); JMenuItem jmeV=new JMenuItem("查看帮助(V)"); JMenuItem jme1A=new JMenuItem("关于计算器(A)"); jmH.add(jmeV); jmH.add(jme1A); ba.add(jmH); return ba; } } package QQLogin; 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; public class Login { //入口主函数 public static void main(String[] args){ Login lo=new Login(); lo.unitGUI(); } //建立初始化界面方法 public void unitGUI(){ JFrame jf=new JFrame();//实例化窗体对象 jf.setTitle("登陆界面"); jf.setSize(379,293);//设置窗体大小 jf.setIconImage(new ImageIcon("images/qq.jpg").getImage());//修改标志图像 jf.setDefaultCloseOperation(3);//关闭程序时关闭进程 jf.setResizable(false);//设置窗体大小不可改变 /****************************************/ /*******************添加背景图片**************/ ImageIcon mag=new ImageIcon("images/haha.png"); JLabel lab05=new JLabel(mag); lab05.setBounds(0, 0, mag.getIconWidth(), mag.getIconHeight()); //添加到LayeredPanel面板最底层 jf.getLayeredPane().add(lab05,new Integer(Integer.MIN_VALUE)); //获取第一层面板 JPanel content=(JPanel)jf.getContentPane(); //设置第一层面板为透明 content.setOpaque(false); /*****************************/ /***********北面面板***************/ JPanel pan01=new JPanel(); // pan01.setOpaque(false);//设置面板不透明 pan01.setPreferredSize(new Dimension(0,123));//设置面板大小,边框布局,背面长度默认窗体宽度 JLabel lab=new JLabel("QQ2013"); lab.setOpaque(false); lab.setFont(new Font("楷体",Font.BOLD,30)); pan01.add(lab); pan01.setOpaque(false);//设置面板透明 jf.add(pan01,BorderLayout.NORTH); /*************************************/ /***********西面面板************************/ JPanel pan02=new JPanel(); ImageIcon con=new ImageIcon("images/tou.jpg");//实例化图片对象 JLabel lab01=new JLabel(con); pan02.add(lab01); pan02.setOpaque(false);//设置面板透明 jf.add(pan02,BorderLayout.WEST); /*************************************/ /***************中间的面板**********************/ JPanel pan03=new JPanel(); JComboBox jcb=new JComboBox(); jcb.setPreferredSize(new Dimension(185,25)); jcb.setEditable(true);//设置下拉框可编辑 JLabel lab03=new JLabel("注册帐号"); lab03.setPreferredSize(new Dimension(59,25));//设置标签大小 JPasswordField jpf=new JPasswordField(); jpf.setPreferredSize(new Dimension(185,25));//设置密码编辑框大小 JLabel lab04=new JLabel("忘记密码"); lab04.setPreferredSize(new Dimension(59,25));//设置标签大小 JCheckBox jcb01=new JCheckBox("记住密码",true); JCheckBox jcb02=new JCheckBox("自动登录"); // jcb01.setPreferredSize(new Dimension(65,16)); jcb01.setOpaque(false); jcb02.setOpaque(false); // jcb02.setPreferredSize(new Dimension(65,16)); pan03.setLayout(new FlowLayout(FlowLayout.LEFT)); pan03.add(jcb); pan03.add(lab03); pan03.add(jpf); pan03.add(lab04); pan03.add(jcb01); pan03.add(jcb02); pan03.setOpaque(false); jf.add(pan03,BorderLayout.CENTER); /*******************************/ /**********南面面板*************/ JPanel pan04=new JPanel(); JButton but=new JButton("登录"); but.setPreferredSize(new Dimension(157,31)); pan04.add(but); pan04.setOpaque(false); jf.add(pan04,BorderLayout.SOUTH); jf.setLocationRelativeTo(null); jf.setVisible(true);//窗体可现 } } import javax.swing.*; //Swing界面 public class Test02 { //程序入口 public static void main(String[] args){ Test02 tf=new Test02(); tf.showFrame(); } //显示一个窗体界面的方法 public void showFrame(){ //创造一个窗体对象 JFrame frame=new JFrame(); //设置标题 frame.setTitle("QQ2013"); //创建流式布局管理其对象: //java.awt.FlowLayout fl=new java.awt.FlowLayout(); frame.setLayout(null); //头像 JPanel jp=new JPanel(); ImageIcon con=new ImageIcon("C:\\Users\\Administrator\\workspace\\QQ0623\\src\\top.jpg"); JLabel jl=new JLabel(con); jp.add(jl); jp.setBounds(17,120,88,82); frame.add(jp); JTextField ep=new JTextField(); ep.setBounds(110, 127, 162, 25); frame.add(ep);//空白区域 // JComboBox cbox=new JComboBox(); // frame.add(cbox);//增加下拉菜单 // JLabel lable=new JLabel("注册账号"); // lable.setBounds(287, 133, 53, 13); JComboBox box=new JComboBox(); box.setEditable(true); frame.add(box); JPasswordField ep1=new JPasswordField(); ep1.setBounds(110, 157, 162, 25); frame.add(ep1);//空白区域 JLabel lable1=new JLabel("找回密码"); lable1.setBounds(287,160,53,13); frame.add(lable1);//密码 JCheckBox cb=new JCheckBox(); cb.setBounds(111, 190, 15, 12); frame.add(cb);//增加一个复选框 JLabel lable2=new JLabel("记住密码"); lable2.setBounds(127, 190, 53, 13); frame.add(lable2); JCheckBox cb1=new JCheckBox(); cb1.setBounds(192, 190, 15, 12); frame.add(cb1);//增加一个复选框 JLabel lable3=new JLabel("自动登录"); lable3.setBounds(211, 190, 53, 13); frame.add(lable3); JButton bt=new JButton("登陆"); bt.setBounds(115, 220, 158, 29); frame.add(bt);//增加按钮 frame.setSize(400,300);//设置窗体大小 //让窗体显示出来,放在最后 // frame.setDefaultCloseOperation(3); // frame.setResizable(false); frame.setVisible(true); } } import java.awt.BorderLayout; import java.awt.Dimension; import javax.swing.*; //计算器界面 public class Caculator { //入口函数 public static void main(String[] args){ Caculator ca=new Caculator(); ca.showFrame(); //显示窗体界面的方法 } public void showFrame(){ JFrame frame=new JFrame();//实例化 frame.setTitle("计算器"); //// 创建流式布局管理器 // java.awt.FlowLayout fl=new java.awt.FlowLayout(); // frame.setLayout(fl); JPanel pan01=new JPanel(); JTextField field=new JTextField(); Dimension dim=new Dimension(); dim.setSize(189,50); field.setPreferredSize(dim); pan01.add(field); frame.add(pan01); JPanel pan02 = new JPanel(); String [] arr={"mc","mr","ms","m+","jt","ce","c","+-","7","8","9","ch","6","7","8","xh","1","2","3","jh","0","d","jj"}; for(int i=0;i<arr.length ;i++){ if(arr[i].equals("0")){ ImageIcon img = new ImageIcon("images/"+arr[i]+".jpg"); JButton but=new JButton(img); but.setPreferredSize(new Dimension(73,27)); pan02.add(but); }else{ ImageIcon img = new ImageIcon("images/"+arr[i]+".jpg"); JButton but=new JButton(img); but.setPreferredSize(new Dimension(34,27)); pan02.add(but); } } JPanel pan03=new JPanel(); pan03.setPreferredSize(new Dimension(34,190)); String [] arr1={"m-","00","bf","1x","dh"}; for(int i=0;i<arr1.length ;i++){ if(arr1[i].equals("dh")){ ImageIcon img = new ImageIcon("images/"+arr1[i]+".jpg"); JButton but=new JButton(img); but.setPreferredSize(new Dimension(34,59)); pan03.add(but); }else{ ImageIcon img = new ImageIcon("images/"+arr1[i]+".jpg"); JButton but=new JButton(img); but.setPreferredSize(new Dimension(34,27)); pan03.add(but); } } frame.add(pan01,BorderLayout.NORTH); frame.add(pan02,BorderLayout.CENTER); frame.add(pan03,BorderLayout.EAST ); frame.setResizable(false); frame.setSize(205, 322); frame.setVisible(true); } }
相关推荐
这篇“简单的SWING界面开发”总结将帮助我们深入理解如何使用Swing来创建用户友好的桌面应用程序。 首先,Swing是Java Foundation Classes (JFC)的一部分,它是对早期AWT(Abstract Window Toolkit)的增强。Swing...
在本教程中,我们将探讨Swing界面设计的一些基本概念和实践,通过一个简单的小例子来展示如何创建和定制GUI组件。 首先,Swing提供了一系列组件,如按钮(JButton)、文本框(JTextField)、标签(JLabel)等,用于...
总结起来,Java Swing 提供了一整套组件和工具,用于创建丰富的图形用户界面,无论是在桌面应用还是轻量级应用中都有广泛的应用。理解和熟练掌握Swing,能够帮助开发者创建出高效、美观且易于使用的应用程序。
### Java Swing 知识总结学习笔记 #### 一、Swing 概述 Swing 是一个用于构建桌面应用程序的 Java 图形用户界面 (GUI) 工具包,它基于 Java Abstract Window Toolkit (AWT) 构建而成。Swing 提供了更丰富的组件集...
总结起来,"纯JAVA实现修改本地IP(swing界面版)"项目涉及到了Java编程、Swing GUI设计、IP地址处理、文件I/O、事件处理、多线程以及错误处理等多个核心知识点。通过这个项目,开发者不仅可以提升Java编程技能,也能...
### 使用Java Swing界面实现数据库基本操作 #### 一、引言 在软件开发领域,图形用户界面(GUI)是提高用户体验的重要组成部分。Java Swing作为Java平台上的一个强大的GUI工具包,为开发者提供了丰富的组件和功能来...
总结来说,Swing图形界面设计涵盖了从创建窗口、添加组件到布局管理的全过程。通过理解和熟练运用这些基础知识,开发者可以创建出用户友好且功能强大的Java桌面应用。在实际项目中,你可能还需要学习更多高级特性,...
总结起来,"Swing界面Tcp/Udp数据接收小工具"是一个集成了TCP和UDP数据接收功能的Java应用程序,利用Swing库构建用户友好的交互界面,方便用户管理和查看接收到的网络数据。通过这个工具,开发者和网络管理员可以更...
在这个“计算器swing界面练习”中,我们主要关注如何使用Swing构建一个基本的计算器应用,该应用具备加、减、乘、除等基本运算功能,并通过`ActionListener`监听用户操作。 首先,`JFrame`是Swing中的顶级容器,...
总结来说,这个"纯JavaSwing界面,小型人才资源管理系统"项目展示了如何利用JavaSwing构建GUI,结合MySQL数据库和JDBC进行数据管理,以及如何实现多条件搜索和统计图表的展示。这样的系统对于学习Java GUI编程、...
总结起来,这个项目涵盖了Java Swing的GUI设计,JDBC数据库连接,特别是JTable组件的使用及其分页功能。对于初学者来说,这是一个很好的实践项目,能够深入理解Java桌面应用的开发流程和数据库操作。而对于有经验的...
在Java编程领域,Swing是用于构建图形用户界面(GUI)的一个强大库,它提供了丰富的组件和工具,使得开发者能够创建功能丰富的桌面应用程序。本文将深入探讨“Swing项目应用总结”,并结合提供的标签“源码”和...
【基于Swing界面的单机版斗地主】是一款使用Java编程语言开发的桌面应用程序,主要利用了Swing库来构建用户界面。Swing是Java提供的一个轻量级的图形用户界面(GUI)工具包,它允许开发者创建美观且功能丰富的窗口...
### Swing界面设计之JTree知识点总结 #### (一) Spring 开发 Swing GUI 简介——依赖注入和富客户端 **关于本教程** 本节主要介绍如何利用Spring框架结合Swing来开发图形用户界面(GUI),并通过依赖注入来增强...
总结,"用Swing制作的简单图书管理系统"展示了Swing在构建桌面应用程序中的强大能力。从基本组件的使用,到数据库的交互,再到整个系统的架构设计,都充分体现了Java Swing的灵活性和实用性。对于学习Java GUI编程的...
Java Swing 是一个用于构建图形用户界面 (GUI) 的 Java 库,它是 Java Foundation Classes (JFC) 的一部分。Swing 提供了一套丰富的组件,这些组件完全由 Java 语言实现,因此具有跨平台的特性,不受操作系统限制。...
《MyEditor:Swing界面构建的文本编辑器详解》 在计算机编程领域,文本编辑器是一种必不可少的工具,用于创建、查看和修改各种文本文件。本文将深入探讨名为"MyEditor"的文本编辑器,它基于Java Swing库构建,提供...
《中国象棋——Java Swing界面与象棋小巫师AI详解》 中国象棋作为中国传统智慧的结晶,深受广大棋迷喜爱。随着计算机技术的发展,将象棋游戏移植到电脑平台已经成为可能。本文将深入探讨如何利用Java Swing库构建一...