窗体界面开发
主要用到的两个类包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); } }
相关推荐
NULL 博文链接:https://hugo-vern.iteye.com/blog/1977064
1.熟悉Java图形用户界面的设计原理和程序结构; 2.能设计符合问题要求的图形用户界面程序; 3.熟悉Java AWT、swing组件的功能; 4.掌握常用组件的事件接口; 5.会应用AWT、swing组件进行应用程序设计。 二、实验内容...
总结: 55 (三) 对JTree从创建到使用详解 56 (四) JTree的使用方法 57 JTreeDemo.java源程序 57 经验汇总 60 1. 初始化 60 2. 三个经常使用的取值函数 60 3. 根据node得到path: 60 4. 根据Path展开到该节点 60 5. ...
java写UI时间很头疼的事儿,这里总结了网上的资料再汇总了一下,用滑动效果,有个登录界面,还有很多不一一列举了,祝好!
Java课本实验报告- Swing图形用户界面,JAVA面向对象程序设计课本实验,里面有完整代码和实验结果,完整的实验报告模板。
的界面的软件和web页面会越来越多,所以研究和设hLjava swing的界面模板有着 非常重要的意义。 本文首先引入和介绍两种设计模式,flpMVC模式和主控模式,并且详细描 述和举例说明]"swing类库与MVC模式之间的关联。...
java课设之征名管理系统,用swing做的全部界面,内含完整程序源码以及详细注释,课程设计要求,软件需求 分析说明书,课程设计总结报告,活动图、软件原型、用例图的全部原图,已生成jar包和javadoc文档,软件需求...
本项目是基于Swing和JDBC开发的图形界面桌面应用,涵盖了J2SE的绝大部分基础知识,通过这个项目能运用和锻炼几乎大部分的J2SE知识和技能。 基础内容: 面向对象 字符串数字 日期 中级内容: 异常 ,集合,JDBC,...
swing 开发 Linux和window系统解决乱码参考文档,个人总结,不喜勿碰
系统基于JAVA的Application模式,使用Swing组件作为系统用户界面和MYSQL小型数据库管理系统实现。主要提供用户查询功能、住宿管理等功能,提供管理员客房、用户、系统信息的管理功能。 该系统遵循软件工程中的开发...
Swing是一个用于开发Java应用程序用户界面的开发工具包。它以抽象窗口工具包(AWT)为基础使跨平台应用程序可以使用任何可插拔的外观风格。Swing开发人员只用很少的代码就可以利用Swing丰富、灵活的功能和模块化组件...
javaswing的总结质料
打包上传,包括源代码实现,需求文档,设计文档,数据库实现,系统总结,基于C/S 架构,.该系统对学生进行管理,包含有学生的基本信息(包括学号、所选专业、入学时间姓名、年龄、性别、籍贯、民族、身份证号、联系...
使用java swing技术开发的简易UI框架,整个框架模仿“酷我音乐盒”的皮肤,可以直接基于此搭建桌面项目,也可以拿源代码研究学习...
java swing 皮肤大全,一次下载,终生使用,内有3个jar 包,每个包都是以单独的皮肤,我已经总结写成了一个类,在写界面是直接调用即可21个静态产量,如代码 { this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE)...
Swing 和 SWT,AWT 技术都是在 Java 图形化界面设计中常用的开发包,在进行 Java GUI 编程时,大家或许经 常徘徊在 SWT,Swing,AWT 之间选择,哪一个更合适自己? 本文简单介绍了三者中各自的功能特点,以及之间的区别...
系统基于JAVA的Application模式,使用Swing组件作为系统用户界面和MYSQL小型数据库管理系统实现。主要提供用户查询功能、住宿管理等功能,提供管理员客房、用户、系统信息的管理功能。 该系统遵循软件工程中的开发...
这是我在学刚刚javaoop过程中全部的笔记总结,现在的我学了一年了,oop和swing大概学了2个月做的全部笔记,主要是针对逻辑代码,和可视化界面【即窗体】的功能,可以用来做图书管理系统,因为我们第一个学期就是做的...
固定资产管理系统实现系统应有的功能,不但功能强大,而且还非常美观,是因为运用了swing的一些美观技术,实现起来也非常容易,还总结了Swing的各种控件的用法,尤其是对表(table)树(tree)的实现更经典,运用了...