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 args
  14. */
  15.  
  16. //定义组件
  17. JSplitPane jsp;
  18. JList jlist;
  19. JLabel jl1;
  20. public static void main(String[] args) {
  21. // TODO Auto-generated method stub
  22. 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. }

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 args
  11. */
  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 stub
  20. 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. //加入JFrame
  42. 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. }

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

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. jmb.add(menu1);
  205. jmb.add(menu2);
  206. jmb.add(menu3);
  207. jmb.add(menu4);
  208. jmb.add(menu5);
  209.  
  210. //将菜单条添加到窗体上
  211. this.setJMenuBar(jmb);
  212.  
  213. //将工具条添加到窗体上
  214. this.add(jtb,BorderLayout.NORTH);
  215.  
  216. JScrollPane jsp=new JScrollPane(jta);
  217. jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
  218. this.add(jsp);
  219.  
  220. //窗体设置
  221. this.setTitle("Java记事本");
  222. this.setSize(500, 400);
  223. this.setLocationRelativeTo(null);
  224. this.setVisible(true);
  225. this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  226. }
  227. }

java基础 swing编程实战的更多相关文章

  1. java基础-网络编程(Socket)技术选型入门之NIO技术

    java基础-网络编程(Socket)技术选型入门之NIO技术 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.传统的网络编程 1>.编写socket通信的MyServer ...

  2. Java基础——GUI编程(四)

    继前面的,这篇主要记录菜单和文件对话框的两个小练习,来熟悉一下方法的应用,一些简单的逻辑和Swing的相关简介,以及关于GUI基础的记录. 一.创建一个菜单 import java.awt.FlowL ...

  3. java中Swing编程再度练习篇

    总结: 注意理解frame的层级关系 package com.da; //添加背景图片 //我只实现了插入图片.但并没有实现是背景图片 import javax.swing.JFrame; impor ...

  4. 二十三、Java基础--------网络编程

    Java中另一个重要技术就是网络编程了,为了更好的学习web方向的知识,有必要对java之网络编程好好学习,本文将围绕网络编程技术进行分析. 常见的网络协议:UDP.TCP UDP 1. 将数据源和目 ...

  5. Java基础——网络编程(二)

    一.套接字 Socket 网络驱动程序提供给应用程序编程的接口和一种机制,可以比喻成一个港口码头 应用程序只要把货放在这,就算完成了货物的运送.它在应用程序中创建,通过一种绑定机制与驱动程序建立关系, ...

  6. java基础—GUI编程(一)

    一.AWT介绍

  7. Java基础——网络编程(一)

    本文主要记录网络编程的一些基础知识,学了前班部分,对专业术语有些蒙,但是,收货也是很多很多的.观察了自己计算机的进程,查找其他网络地址的IP,对互联网的层次关系有了更深一步的了解.下面多是概念的摘录, ...

  8. Java基础——GUI编程(一)

    一.定义 GUI全称是Graphical User Interface,即图形用户界面.JDK中提供了AWT 和 Swing 两个包,用于GUI程序的设计和开发. 1.java .awt  abstr ...

  9. Java基础——网络编程

    一.网络编程概述 概述: Java是 Internet 上的语言,它从语言级上提供了对网络应用程序的支持,程序员能够很容易开发常见的网络应用程序. Java提供的网络类库,可以实现无痛的网络连接,联网 ...

随机推荐

  1. 【repost】document.write的用处

    document.write的用处 document.write是JavaScript中对document.open所开启的文档流(document stream操作的API方法,它能够直接在文档流中 ...

  2. jquery.mobiscroll仿Iphone ActionSheet省市区联动

    1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="u ...

  3. html tab页面切换事件。

    $(document).bind("visibilitychange",function(e){ //只对tab页面切换有效 //document.visibilityState ...

  4. Unity中脚本的执行顺序总结(@WhiteTaken)

    (Editor)以上是Unity官方文档中的截图,脚本在被挂载到物体上,会启用Editor的方法Reset. (Initialization)当执行脚本开始,初始化的过程中,依次执行的是Awake-& ...

  5. 大三那年在某宝8块钱买的.NET视频决定了我的职业生涯

    前言 谨以此文献给那些还在大学中迷茫的莘莘学子们! 韩愈在<师说>中提出了作为师者应该做的三件事:传道.授业.解惑. 1.传道:培养学生的道德观 2.授业:传授学生专业技能 3.解惑:解答 ...

  6. MVC系列——MVC源码学习:打造自己的MVC框架(四:了解神奇的视图引擎)

    前言:通过之前的三篇介绍,我们基本上完成了从请求发出到路由匹配.再到控制器的激活,再到Action的执行这些个过程.今天还是趁热打铁,将我们的View也来完善下,也让整个系列相对完整,博主不希望烂尾. ...

  7. caffe中卷积层和pooling层计算下一层的特征map的大小

    pool层,其中ceil是向上取整函数 卷积层:

  8. 学习ASP.NET 5和MVC6

    今天很荣幸的参加了微软开源跨平台讲座,充分认识了下一个版本的ASP.NET所带来的激动人心的特性.虽然过去已经断断续续的了解了一些ASP.NET5和MVC6与EF7的动态,但是都没有这一次来的系统化( ...

  9. C#定义类型转化 及 格式化字符串

    operator 关键字 operator 关键字用来重载内置运算符,或提供类/结构声明中的用户定义转换.它可以定义不同类型之间采用何种转化方式和转化的结果. operator用于定义类型转化时可采用 ...

  10. 手机GUI自动化测试工具选择

    (Graphical User Interface,简称 GUI,又称图形用户接口) 我们需要针对自身产品的需求,从中选取一款合适的工具来实现自动化.对于移动客户端GUI的自动化而言,需要保证选取的工 ...