窗体界面开发
主要用到的两个类包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); } }