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

  效果图:

  

  exmaple code :

  

 /*
* 词霸
* */
package demo7;
import java.awt.*;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer; import javax.swing.*;
public class example1 extends JFrame{ /**
* @param args
*/ //定义组件
JSplitPane jsp;
JList jlist;
JLabel jl1;
public static void main(String[] args) {
// TODO Auto-generated method stub
example1 exam = new example1();
}
public example1()
{
//创建组件
String []words = {"boy","girl","bird"};
jlist = new JList(words); jl1 = new JLabel(new ImageIcon("image/ciba.jpg"));
//拆分窗格
jsp =new JSplitPane(JSplitPane.HORIZONTAL_SPLIT,jlist,jl1);
//可以变化
jsp.setOneTouchExpandable(true);
//设置布局管理器 //添加组件
this.add(jsp); //设置大小
this.setSize(400, 300);
this.setLocation(200, 200);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
} }

2 . QQ聊天界面

  涉及到新的swing组件:

  1. JTextArea 多行文本框组件

  

  example code:

  

 /*
* QQ聊天
* */
package demo7;
import java.awt.*;
import javax.swing.*;
public class example2 extends JFrame{ /**
* @param args
*/
JTextArea jta = null;
JScrollPane jsp = null;
JPanel jp1=null;
JComboBox jcb = null;
JTextField jtf = null;
JButton jb = null;
public static void main(String[] args) {
// TODO Auto-generated method stub
example2 exam = new example2();
} //构造函数
public example2()
{
jta = new JTextArea();
jsp = new JScrollPane(jta);
jp1 = new JPanel();
String []chatter = {"布什","拉登"};
jcb = new JComboBox(chatter);
jtf = new JTextField(10);
jb =new JButton("发送"); //设置布局管理器 //添加组件
jp1.add(jcb);
jp1.add(jtf);
jp1.add(jb); //加入JFrame
this.add(jsp);
this.add(jp1,BorderLayout.SOUTH); //属性
this.setIconImage(new ImageIcon("image/qq.jpg").getImage());
this.setTitle("腾讯QQ");
this.setSize(300,200);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
} }

3 QQ登陆界面

  example code:

  

 /**
* 页签组件(JTabbedPane)选项卡窗格--使用QQ登录界面
*/
import java.awt.*;
import javax.swing.*;
public class example3 extends JFrame{
//设定组件
//主页面北部
JLabel jl1;//标签 //主页面南部
JButton jb1,jb2,jb3;//按钮
JPanel jp1;//面板 //主页面中部
JTabbedPane jtp;//选项卡窗格
JPanel jp2,jp3,jp4;//面板 JLabel jl2,jl3,jl4,jl5;//标签
JTextField jtf;//文本框
JPasswordField jpf;//密码框
JButton jb4;//按钮
JCheckBox jcb1,jcb2;//复选框 //JPanel2组件
JLabel jl6,jl7;//标签
JTextField jtf1;
JPasswordField jpf1; //JPanel3组件
JLabel jl8,jl9;//标签
JTextField jtf2;
JPasswordField jpf2; public static void main(String[] args) {
example3 win=new example3();
}
//构造函数
public example3(){
//创建组件
//创建JFrame北部JLabel1组件
jl1=new JLabel(new ImageIcon("images/qqdl.jpg")); //创建JFrame中部JPanel2组件
jl2=new JLabel("QQ号码",JLabel.CENTER);
jl3=new JLabel("QQ密码",JLabel.CENTER);
jl4=new JLabel("忘记密码",JLabel.CENTER);
jl4.setFont(new Font("宋体",Font.PLAIN,16));//设置字体,字号
jl4.setForeground(Color.BLUE);//设置字体颜色
jl5=new JLabel("<html><a href='www.qq.com'>申请密码保护</a></html>");
jl5.setCursor(Cursor.getPredefinedCursor(Cursor.HAND_CURSOR));//鼠标移动到jl5后会变成手指图标 jtf=new JTextField();
jpf=new JPasswordField();
jb4=new JButton("清除号码");//JButton上可以放图片。new JButton(new ImageIcon("图片路径")); jcb1=new JCheckBox("隐身登录");
jcb2=new JCheckBox("记住密码"); jtp=new JTabbedPane();//选项卡窗格
jp2=new JPanel();
jp3=new JPanel();
//jp3.setBackground(Color.RED);//给面板设置背景色
jp4=new JPanel();
//jp4.setBackground(new Color(0,0,255)); //创建JFrame中部JTabbedPane选项卡JPanel3组件
jl6=new JLabel("手机号码",JLabel.CENTER);
jl7=new JLabel("密  码",JLabel.CENTER);
jtf1=new JTextField(20);
jpf1=new JPasswordField(20); //创建JFrame中部JTabbedPane选项卡JPanel4组件
jl8=new JLabel("电子邮箱",JLabel.CENTER);
jl9=new JLabel("密  码",JLabel.CENTER);
jtf2=new JTextField(20);
jpf2=new JPasswordField(20); //创建JFrame南部JPanel1组件
jp1=new JPanel();
jb1=new JButton("登 录");
jb2=new JButton("取 消");
jb3=new JButton("注册向导"); //设置布局管理器
jp2.setLayout(new GridLayout(3, 3));
//jp3.setLayout(new GridLayout(2, 2));
//jp4.setLayout(new GridLayout(2, 2)); //加入组件
//将组件添加到JPanel2中
jp2.add(jl2);//加入QQ号码标签
jp2.add(jtf);//加入文本框
jp2.add(jb4);//加入清除号码按扭 jp2.add(jl3);//加入QQ密码标签
jp2.add(jpf);//加入密码框
jp2.add(jl4);//加入忘记密码 jp2.add(jcb1);//加入隐身登陆复选框
jp2.add(jcb2);//加入记住密码复选框
jp2.add(jl5);//加入申请密码保护标签 //将组件添加到JPanel3中
jp3.add(jl6);
jp3.add(jtf1);
jp3.add(jl7);
jp3.add(jpf1); //将组件添加到JPanel4中
jp4.add(jl8);
jp4.add(jtf2);
jp4.add(jl9);
jp4.add(jpf2); //添加到JPanel1中
jp1.add(jb1);
jp1.add(jb2);
jp1.add(jb3); //将面板添加到选项卡窗格上
jtp.add("QQ号码",jp2);//第一个参数代表选项卡名称,第二个参数代表对应的面板
jtp.add("手机号码",jp3);
jtp.add("电子邮箱",jp4); //将JLabel1添加到Frame北部
this.add(jl1,BorderLayout.NORTH); //将JPanle2添加到Frame中部
this.add(jtp,BorderLayout.CENTER); //将JPanel1添加到Frame南部
this.add(jp1,BorderLayout.SOUTH); //窗体设置
this.setTitle("QQ登录界面");
//ImageIcon icon=new ImageIcon("图片路径");
//this.setIconImage(icon.getImage());
this.setIconImage((new ImageIcon("image/qqdl.jpg")).getImage());
this.setSize(350, 300);
this.setLocationRelativeTo(null);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setVisible(true);
this.setResizable(false);
}
}

4. 文本编辑器界面

  效果图:

  

  

  example code:

  

 package demo7;

 /**
* 1、菜单组件
JMenuBar 菜单条组件 树干
JMenu 菜单组件 树枝
JMenuItem 菜单项组件 树叶
2、二级菜单制作
JMenu里面可以嵌套JMenu
3、工具条组件
JToolBar 容器类组件
*/
import java.awt.*;
import java.awt.event.InputEvent;
import java.awt.event.InputMethodEvent;
import java.awt.event.KeyEvent;
import javax.swing.*;
public class Window012 extends JFrame{
//文件组定义组件
JMenuBar jmb;//菜单条组件
JMenu menu1,menu2,menu3,menu4,menu5;//主菜单:文件、编辑、格式、查看、帮助
JMenuItem item2,item3,item4,item5,item6,item7;//子菜单:新建、打开、保存、另存为、页面设置、打印、退出
JMenu xinjian;//二级菜单
JMenuItem file,project; //编辑组定义组件
//编辑:撤消、剪切、复制、粘贴、删除、查找、查找下一个、替换、转到、全选、时间/日期
JMenuItem eitem1,eitem2,eitem3,eitem4,eitem5,eitem6,eitem7,eitem8,eitem9,eitem10,eitem11; //格式组定义组件
JMenuItem oitem1,oitem2;//格式:自动换行、字体 //查看组定义组件
JMenuItem vitem1;//查看:状态栏 //帮助组定义组件
JMenuItem hitem1,hitem2;//帮助:查看帮助、关于记事本 JTextArea jta;
//工具条
JToolBar jtb;
JButton jb1,jb2,jb3,jb4,jb5,jb6,jb7,jb8; public static void main(String[] args) {
Window012 win=new Window012();
}
//构造函数
public Window012(){
//构建组件
//工具条
jtb=new JToolBar();
jb1=new JButton(new ImageIcon("image/new.jpg"));
jb1.setToolTipText("新建");//设置提示信息
jb2=new JButton(new ImageIcon("image/open.jpg"));
jb2.setToolTipText("打开");
jb3=new JButton(new ImageIcon("image/save.jpg"));
jb3.setToolTipText("保存");
jb4=new JButton(new ImageIcon("image/copy.jpg"));
jb4.setToolTipText("复制");
jb5=new JButton(new ImageIcon("image/delete.jpg"));
jb5.setToolTipText("删除");
jb6=new JButton(new ImageIcon("image/modify.jpg"));
jb6.setToolTipText("编辑");
jb7=new JButton(new ImageIcon("image/print.jpg"));
jb7.setToolTipText("打印");
jb8=new JButton(new ImageIcon("image/close.jpg"));
jb8.setToolTipText("关闭"); jmb=new JMenuBar();
//主菜单
menu1=new JMenu("文件(F)");
menu1.setMnemonic('F');//设置助记符
menu2=new JMenu("编辑(E)");
menu2.setMnemonic('E');
menu3=new JMenu("格式(O)");
menu3.setMnemonic('O');
menu4=new JMenu("查看(V)");
menu4.setMnemonic('V');
menu5=new JMenu("帮助(H)");
menu5.setMnemonic('H'); //文件--新建--子目录
xinjian=new JMenu("新建");
file=new JMenuItem("文件");
project=new JMenuItem("工程"); item2=new JMenuItem("打开(O)");
item2.setMnemonic('O');
item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));//设置ctrl快捷组合键
item3=new JMenuItem("保存(S)");
item3.setMnemonic('S');
item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
item4=new JMenuItem("另存为(A)");
item4.setMnemonic('A');
item5=new JMenuItem("页面设置(U)");
item5.setMnemonic('U');
item6=new JMenuItem("打印(P)");
item6.setMnemonic('P');
item6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
item7=new JMenuItem("退出(X)");
item7.setMnemonic('X'); eitem1=new JMenuItem("撤消(U)");
eitem1.setMnemonic('U');
eitem1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
eitem2=new JMenuItem("剪切(T)");
eitem2.setMnemonic('T');
eitem2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
eitem3=new JMenuItem("复制(C)");
eitem3.setMnemonic('C');
eitem3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
eitem4=new JMenuItem("粘贴(P)");
eitem4.setMnemonic('P');
eitem4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
eitem5=new JMenuItem("删除(L)");
eitem5.setMnemonic('L');
eitem5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_DELETE,0));
eitem6=new JMenuItem("查找(F)");
eitem6.setMnemonic('F');
eitem6.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
eitem7=new JMenuItem("查找下一个(N)");
eitem7.setMnemonic('N');
eitem7.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F3,0));
eitem8=new JMenuItem("替换(R)");
eitem8.setMnemonic('R');
eitem8.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_R,InputEvent.CTRL_MASK));
eitem9=new JMenuItem("转到(G)");
eitem9.setMnemonic('G');
eitem9.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_G,InputEvent.CTRL_MASK));
eitem10=new JMenuItem("全选(A)");
eitem10.setMnemonic('A');
eitem10.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
eitem11=new JMenuItem("时间/日期(D)");
eitem11.setMnemonic('D');
eitem11.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F5,0)); oitem1=new JMenuItem("自动换行(W)");
oitem1.setMnemonic('W');
oitem2=new JMenuItem("字体(F)");
oitem2.setMnemonic('F'); vitem1=new JMenuItem("状态栏(S)");
vitem1.setMnemonic('S'); hitem1=new JMenuItem("查看帮助(H)");
hitem1.setMnemonic('H');
hitem2=new JMenuItem("关于记事本(A)");
hitem2.setMnemonic('A'); jta=new JTextArea(); //设定布局管理器 //加入组件
//将按钮添加到工具条上
jtb.add(jb1);
jtb.add(jb2);
jtb.add(jb3);
jtb.add(jb4);
jtb.add(jb5);
jtb.add(jb6);
jtb.add(jb7);
jtb.add(jb8); //将菜单项添加到菜单上
xinjian.add(file);
xinjian.add(project); menu1.add(xinjian);
menu1.add(item2);
menu1.add(item3);
menu1.add(item4);
menu1.addSeparator();//添加分割线
menu1.add(item5);
menu1.add(item6);
menu1.addSeparator();
menu1.add(item7); menu2.add(eitem1);
menu2.addSeparator();
menu2.add(eitem2);
menu2.add(eitem3);
menu2.add(eitem4);
menu2.add(eitem5);
menu2.addSeparator();
menu2.add(eitem6);
menu2.add(eitem7);
menu2.add(eitem8);
menu2.add(eitem9);
menu2.addSeparator();
menu2.add(eitem10);
menu2.add(eitem11); menu3.add(oitem1);
menu3.add(oitem2); menu4.add(vitem1); menu5.add(hitem1);
menu5.addSeparator();
menu5.add(hitem2); //将菜单添加到菜单条上
jmb.add(menu1);
jmb.add(menu2);
jmb.add(menu3);
jmb.add(menu4);
jmb.add(menu5); //将菜单条添加到窗体上
this.setJMenuBar(jmb); //将工具条添加到窗体上
this.add(jtb,BorderLayout.NORTH); JScrollPane jsp=new JScrollPane(jta);
jsp.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
this.add(jsp); //窗体设置
this.setTitle("Java记事本");
this.setSize(500, 400);
this.setLocationRelativeTo(null);
this.setVisible(true);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

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】JavaScript Scoping and Hoisting

    JavaScript Scoping and Hoisting Do you know what value will be alerted if the following is executed ...

  2. 解决IE浏览器文字上面放无内容的元素选不中的方法

    <div class="md1"> <p><i>sdgsgereryeryery</i></p> <label c ...

  3. BZOJ4300绝世好(傻)题

    Description 给定一个长度为n的数列ai,求ai的子序列bi的最长长度,满足bi&bi-1!=0(2<=i<=len). Input 输入文件共2行. 第一行包括一个整数 ...

  4. UploadHandleServlet

    public class UploadHandleServlet extends HttpServlet { public void doGet(HttpServletRequest request, ...

  5. 《----css样式---------浮动带来的影响与解决方法---------------》

    浮动就是让我们的元素脱离标准文档流,目的是为了布局好看! 浮动的现象: 脱离标准文档流被叫做脱流,同时会出现字围现象. 浮动的元素会相互贴靠,而且如果父容器空间足够大,则浮动的元素会正常紧靠也就是后一 ...

  6. U3D 打包时找不到tag的问题

    在公司改完一个功能,把工程拷回家打开后,编辑器模式下运行正常,打包PC平台和安卓平台时都报错,找不到chatContent这个tag,察看了下下拉列表中明明有这个tag,并且勾选上了,但是点击add ...

  7. JS组件系列——又一款MVVM组件:Vue(一:30分钟搞定前端增删改查)

    前言:关于Vue框架,好几个月之前就听说过,了解一项新技术之后,总是处于观望状态,一直在犹豫要不要系统学习下.正好最近有点空,就去官网了解了下,看上去还不错的一个组件,就抽空研究了下.最近园子里vue ...

  8. 百度广告 高亮 Chrome插件(附源码)

    一前言 百度最近是上了舆论头条了,相信中过百度毒的人对百度都反感.百度自己挖了这么多坑,终究还是要自己来填.国内网民使且最频繁的搜过 还是以百度为主,而百度依靠这种市场占有率靠他的广告竞价排名大发横财 ...

  9. mac mysql5.7重置root密码

    先停止mysql服务 //停止表权限 cd /usr/local/mysql/bin/ ./mysqld_safe --skip-grant-tables & 直接mysql 进入数据库 up ...

  10. Win7 on VirtualBox 看不到 usb device

    sudo usermod -G vboxusers -a your_user_name 我的用上面指令不能建立, 需先使用 sudo su 切到root 再執行 usermod -G vboxuser ...