读书人

swing界面小结

发布时间: 2013-07-04 11:45:32 作者: rapoo

swing界面总结

窗体界面开发

主要用到的两个类包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);}}

?

读书人网 >编程

热点推荐