首页 > 代码库 > java基础 swing编程实战

java基础 swing编程实战

1. 实现金山词霸,点击左右收缩

  效果图:

  技术分享

  exmaple code :

  

技术分享
 1 /* 2  * 词霸 3  * */ 4 package demo7; 5 import java.awt.*; 6 import java.awt.image.ImageObserver; 7 import java.awt.image.ImageProducer; 8  9 import javax.swing.*;10 public class example1 extends JFrame{11 12     /**13      * @param args14      */15     16     //定义组件17     JSplitPane jsp;18     JList jlist;19     JLabel jl1;20     public static void main(String[] args) {21         // TODO Auto-generated method stub22         example1 exam = new example1();23     }24     public example1()25     {26         //创建组件27         String []words = {"boy","girl","bird"};28         jlist = new JList(words);29         30         jl1 = new JLabel(new ImageIcon("image/ciba.jpg"));31         //拆分窗格32         jsp =new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jlist,jl1);33         //可以变化34         jsp.setOneTouchExpandable(true);35         //设置布局管理器36         37         //添加组件38         this.add(jsp);39         40         //设置大小41         this.setSize(400, 300);42         this.setLocation(200, 200);43         this.setVisible(true);44         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);45     }46 47 }
View Code

 

2 . QQ聊天界面

  涉及到新的swing组件:

  1. JTextArea 多行文本框组件

  技术分享

  example code:

  

技术分享
 1 /* 2  * QQ聊天 3  * */ 4 package demo7; 5 import java.awt.*; 6 import javax.swing.*; 7 public class example2 extends JFrame{ 8  9     /**10      * @param args11      */12     JTextArea jta = null;13     JScrollPane jsp = null;14     JPanel jp1=null;15     JComboBox jcb = null;16     JTextField jtf = null;17     JButton jb = null;18     public static void main(String[] args) {19         // TODO Auto-generated method stub20         example2 exam = new example2();21     }22     23     //构造函数24     public example2()25     {26         jta = new JTextArea();27         jsp = new JScrollPane(jta);28         jp1 = new JPanel();29         String []chatter = {"布什","拉登"};30         jcb = new JComboBox(chatter);31         jtf = new JTextField(10);32         jb =new JButton("发送");33         34         //设置布局管理器35         36         //添加组件37         jp1.add(jcb);38         jp1.add(jtf);39         jp1.add(jb);40         41         //加入JFrame42         this.add(jsp);43         this.add(jp1,BorderLayout.SOUTH);44         45         //属性46         this.setIconImage(new ImageIcon("image/qq.jpg").getImage());47         this.setTitle("腾讯QQ");48         this.setSize(300,200);49         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);50         this.setVisible(true);51     }52 53 }
View Code

 3 QQ登陆界面

  example code:

  

技术分享
  1 /**  2  * 页签组件(JTabbedPane)选项卡窗格--使用QQ登录界面  3  */  4 import java.awt.*;  5 import javax.swing.*;  6 public class example3 extends JFrame{  7     //设定组件  8     //主页面北部  9     JLabel jl1;//标签  10      11     //主页面南部 12     JButton jb1,jb2,jb3;//按钮 13     JPanel jp1;//面板 14      15     //主页面中部 16     JTabbedPane jtp;//选项卡窗格 17     JPanel jp2,jp3,jp4;//面板 18      19     JLabel jl2,jl3,jl4,jl5;//标签 20     JTextField jtf;//文本框 21     JPasswordField jpf;//密码框 22     JButton jb4;//按钮 23     JCheckBox jcb1,jcb2;//复选框 24      25     //JPanel2组件 26     JLabel jl6,jl7;//标签 27     JTextField jtf1; 28     JPasswordField jpf1; 29      30     //JPanel3组件 31     JLabel jl8,jl9;//标签 32     JTextField jtf2; 33     JPasswordField jpf2; 34      35      36     public static void main(String[] args) { 37         example3 win=new example3(); 38     } 39     //构造函数 40     public example3(){ 41         //创建组件 42         //创建JFrame北部JLabel1组件 43         jl1=new JLabel(new ImageIcon("images/qqdl.jpg")); 44  45         //创建JFrame中部JPanel2组件 46         jl2=new JLabel("QQ号码",JLabel.CENTER); 47         jl3=new JLabel("QQ密码",JLabel.CENTER); 48         jl4=new JLabel("忘记密码",JLabel.CENTER); 49         jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体,字号 50         jl4.setForeground(Color.BLUE);//设置字体颜色 51         jl5=new JLabel("<html><a href=http://www.mamicode.com/‘www.qq.com‘>申请密码保护"); 52         jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标移动到jl5后会变成手指图标 53          54         jtf=new JTextField(); 55         jpf=new JPasswordField(); 56         jb4=new JButton("清除号码");//JButton上可以放图片。new JButton(new ImageIcon("图片路径")); 57          58         jcb1=new JCheckBox("隐身登录"); 59         jcb2=new JCheckBox("记住密码"); 60          61         jtp=new JTabbedPane();//选项卡窗格 62         jp2=new JPanel(); 63         jp3=new JPanel(); 64         //jp3.setBackground(Color.RED);//给面板设置背景色 65         jp4=new JPanel(); 66         //jp4.setBackground(new Color(0,0,255)); 67          68         //创建JFrame中部JTabbedPane选项卡JPanel3组件 69         jl6=new JLabel("手机号码",JLabel.CENTER); 70         jl7=new JLabel("密  码",JLabel.CENTER); 71         jtf1=new JTextField(20); 72         jpf1=new JPasswordField(20); 73          74         //创建JFrame中部JTabbedPane选项卡JPanel4组件 75         jl8=new JLabel("电子邮箱",JLabel.CENTER); 76         jl9=new JLabel("密  码",JLabel.CENTER); 77         jtf2=new JTextField(20); 78         jpf2=new JPasswordField(20); 79          80         //创建JFrame南部JPanel1组件 81         jp1=new JPanel(); 82         jb1=new JButton("登        录"); 83         jb2=new JButton("取        消"); 84         jb3=new JButton("注册向导"); 85          86         //设置布局管理器 87         jp2.setLayout(new GridLayout(3, 3)); 88         //jp3.setLayout(new GridLayout(2, 2)); 89         //jp4.setLayout(new GridLayout(2, 2)); 90          91          92         //加入组件 93         //将组件添加到JPanel2中 94         jp2.add(jl2);//加入QQ号码标签 95         jp2.add(jtf);//加入文本框 96         jp2.add(jb4);//加入清除号码按扭 97          98         jp2.add(jl3);//加入QQ密码标签 99         jp2.add(jpf);//加入密码框100         jp2.add(jl4);//加入忘记密码101         102         jp2.add(jcb1);//加入隐身登陆复选框103         jp2.add(jcb2);//加入记住密码复选框104         jp2.add(jl5);//加入申请密码保护标签105         106         //将组件添加到JPanel3中107         jp3.add(jl6);108         jp3.add(jtf1);109         jp3.add(jl7);110         jp3.add(jpf1);111         112         //将组件添加到JPanel4中113         jp4.add(jl8);114         jp4.add(jtf2);115         jp4.add(jl9);116         jp4.add(jpf2);117         118         //添加到JPanel1中119         jp1.add(jb1);120         jp1.add(jb2);121         jp1.add(jb3);122         123         //将面板添加到选项卡窗格上124         jtp.add("QQ号码",jp2);//第一个参数代表选项卡名称,第二个参数代表对应的面板125         jtp.add("手机号码",jp3);126         jtp.add("电子邮箱",jp4);127         128         //将JLabel1添加到Frame北部129         this.add(jl1,BorderLayout.NORTH);130         131         //将JPanle2添加到Frame中部132         this.add(jtp,BorderLayout.CENTER);133         134         //将JPanel1添加到Frame南部135         this.add(jp1,BorderLayout.SOUTH);136 137         138         //窗体设置139         this.setTitle("QQ登录界面");140         //ImageIcon icon=new ImageIcon("图片路径");141         //this.setIconImage(icon.getImage());142         this.setIconImage((new ImageIcon("image/qqdl.jpg")).getImage());143         this.setSize(350, 300);144         this.setLocationRelativeTo(null);145         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);146         this.setVisible(true);147         this.setResizable(false);148     }149 }
View Code

4. 文本编辑器界面

  效果图:

  技术分享

  

  example code:

  

技术分享
  1 package demo7;  2   3 /**  4  * 1、菜单组件  5         JMenuBar    菜单条组件    树干  6         JMenu        菜单组件    树枝  7         JMenuItem    菜单项组件    树叶  8     2、二级菜单制作  9         JMenu里面可以嵌套JMenu 10     3、工具条组件 11         JToolBar    容器类组件 12  */ 13 import java.awt.*; 14 import java.awt.event.InputEvent; 15 import java.awt.event.InputMethodEvent; 16 import java.awt.event.KeyEvent; 17 import javax.swing.*; 18 public class Window012 extends JFrame{ 19     //文件组定义组件 20     JMenuBar jmb;//菜单条组件 21     JMenu menu1,menu2,menu3,menu4,menu5;//主菜单:文件、编辑、格式、查看、帮助 22     JMenuItem item2,item3,item4,item5,item6,item7;//子菜单:新建、打开、保存、另存为、页面设置、打印、退出 23     JMenu xinjian;//二级菜单 24     JMenuItem file,project; 25      26     //编辑组定义组件 27     //编辑:撤消、剪切、复制、粘贴、删除、查找、查找下一个、替换、转到、全选、时间/日期 28     JMenuItem eitem1,eitem2,eitem3,eitem4,eitem5,eitem6,eitem7,eitem8,eitem9,eitem10,eitem11; 29      30     //格式组定义组件 31     JMenuItem oitem1,oitem2;//格式:自动换行、字体 32      33     //查看组定义组件 34     JMenuItem vitem1;//查看:状态栏 35      36     //帮助组定义组件 37     JMenuItem hitem1,hitem2;//帮助:查看帮助、关于记事本 38      39     JTextArea jta; 40     //工具条 41     JToolBar jtb; 42     JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8; 43      44     public static void main(String[] args) { 45         Window012 win=new Window012(); 46     } 47     //构造函数 48     public Window012(){ 49         //构建组件 50         //工具条 51         jtb=new JToolBar(); 52         jb1=new JButton(new ImageIcon("image/new.jpg")); 53         jb1.setToolTipText("新建");//设置提示信息 54         jb2=new JButton(new ImageIcon("image/open.jpg")); 55         jb2.setToolTipText("打开"); 56         jb3=new JButton(new ImageIcon("image/save.jpg")); 57         jb3.setToolTipText("保存"); 58         jb4=new JButton(new ImageIcon("image/copy.jpg")); 59         jb4.setToolTipText("复制"); 60         jb5=new JButton(new ImageIcon("image/delete.jpg")); 61         jb5.setToolTipText("删除"); 62         jb6=new JButton(new ImageIcon("image/modify.jpg")); 63         jb6.setToolTipText("编辑"); 64         jb7=new JButton(new ImageIcon("image/print.jpg")); 65         jb7.setToolTipText("打印"); 66         jb8=new JButton(new ImageIcon("image/close.jpg")); 67         jb8.setToolTipText("关闭"); 68          69         jmb=new JMenuBar(); 70         //主菜单 71         menu1=new JMenu("文件(F)"); 72         menu1.setMnemonic(‘F‘);//设置助记符 73         menu2=new JMenu("编辑(E)"); 74         menu2.setMnemonic(‘E‘); 75         menu3=new JMenu("格式(O)"); 76         menu3.setMnemonic(‘O‘); 77         menu4=new JMenu("查看(V)"); 78         menu4.setMnemonic(‘V‘); 79         menu5=new JMenu("帮助(H)"); 80         menu5.setMnemonic(‘H‘); 81          82         //文件--新建--子目录 83         xinjian=new JMenu("新建"); 84         file=new JMenuItem("文件"); 85         project=new JMenuItem("工程"); 86          87         item2=new JMenuItem("打开(O)"); 88         item2.setMnemonic(‘O‘); 89         item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//设置ctrl快捷组合键 90         item3=new JMenuItem("保存(S)"); 91         item3.setMnemonic(‘S‘); 92         item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK)); 93         item4=new JMenuItem("另存为(A)"); 94         item4.setMnemonic(‘A‘); 95         item5=new JMenuItem("页面设置(U)"); 96         item5.setMnemonic(‘U‘); 97         item6=new JMenuItem("打印(P)"); 98         item6.setMnemonic(‘P‘); 99         item6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));100         item7=new JMenuItem("退出(X)");101         item7.setMnemonic(‘X‘);102         103         eitem1=new JMenuItem("撤消(U)");104         eitem1.setMnemonic(‘U‘);105         eitem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));106         eitem2=new JMenuItem("剪切(T)");107         eitem2.setMnemonic(‘T‘);108         eitem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));109         eitem3=new JMenuItem("复制(C)");110         eitem3.setMnemonic(‘C‘);111         eitem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));112         eitem4=new JMenuItem("粘贴(P)");113         eitem4.setMnemonic(‘P‘);114         eitem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));115         eitem5=new JMenuItem("删除(L)");116         eitem5.setMnemonic(‘L‘);117         eitem5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));118         eitem6=new JMenuItem("查找(F)");119         eitem6.setMnemonic(‘F‘);120         eitem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));121         eitem7=new JMenuItem("查找下一个(N)");122         eitem7.setMnemonic(‘N‘);123         eitem7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));124         eitem8=new JMenuItem("替换(R)");125         eitem8.setMnemonic(‘R‘);126         eitem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));127         eitem9=new JMenuItem("转到(G)");128         eitem9.setMnemonic(‘G‘);129         eitem9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));130         eitem10=new JMenuItem("全选(A)");131         eitem10.setMnemonic(‘A‘);132         eitem10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));133         eitem11=new JMenuItem("时间/日期(D)");134         eitem11.setMnemonic(‘D‘);135         eitem11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0));136         137         oitem1=new JMenuItem("自动换行(W)");138         oitem1.setMnemonic(‘W‘);139         oitem2=new JMenuItem("字体(F)");140         oitem2.setMnemonic(‘F‘);141         142         vitem1=new JMenuItem("状态栏(S)");143         vitem1.setMnemonic(‘S‘);144         145         hitem1=new JMenuItem("查看帮助(H)");146         hitem1.setMnemonic(‘H‘);147         hitem2=new JMenuItem("关于记事本(A)");148         hitem2.setMnemonic(‘A‘);149         150         jta=new JTextArea();151         152         //设定布局管理器153         154         //加入组件155         //将按钮添加到工具条上156         jtb.add(jb1);157         jtb.add(jb2);158         jtb.add(jb3);159         jtb.add(jb4);160         jtb.add(jb5);161         jtb.add(jb6);162         jtb.add(jb7);163         jtb.add(jb8);164         165         //将菜单项添加到菜单上166         xinjian.add(file);167         xinjian.add(project);168         169         menu1.add(xinjian);170         menu1.add(item2);171         menu1.add(item3);172         menu1.add(item4);173         menu1.addSeparator();//添加分割线174         menu1.add(item5);175         menu1.add(item6);176         menu1.addSeparator();177         menu1.add(item7);178         179         menu2.add(eitem1);180         menu2.addSeparator();181         menu2.add(eitem2);182         menu2.add(eitem3);183         menu2.add(eitem4);184         menu2.add(eitem5);185         menu2.addSeparator();186         menu2.add(eitem6);187         menu2.add(eitem7);188         menu2.add(eitem8);189         menu2.add(eitem9);190         menu2.addSeparator();191         menu2.add(eitem10);192         menu2.add(eitem11);193         194         menu3.add(oitem1);195         menu3.add(oitem2);196         197         menu4.add(vitem1);198         199         menu5.add(hitem1);200         menu5.addSeparator();201         menu5.add(hitem2);202         203         204         //将菜单添加到菜单条上205         jmb.add(menu1);206         jmb.add(menu2);207         jmb.add(menu3);208         jmb.add(menu4);209         jmb.add(menu5);210         211         //将菜单条添加到窗体上212         this.setJMenuBar(jmb);213         214         //将工具条添加到窗体上215         this.add(jtb,BorderLayout.NORTH);216         217         JScrollPane jsp=new JScrollPane(jta);218         jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);219         this.add(jsp);220         221         //窗体设置222         this.setTitle("Java记事本");223         this.setSize(500, 400);224         this.setLocationRelativeTo(null);225         this.setVisible(true);226         this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);        227     }228 }
View Code

 

java基础 swing编程实战