`
tianshizhilei
  • 浏览: 79153 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

JAVA编写的文档编辑器源代码

    博客分类:
  • java
阅读更多

//简单的类似记事本的文档编辑器

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import java.io.*;
import java.awt.font.*;
import javax.swing.undo.UndoManager;
public class MyTxt

 public static void main(String[] args)
 { 
 Aframe frame = new Aframe();
  frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  frame.show();
 }
}
class Aframe extends JFrame
{
 public Aframe()
 {
  setTitle("我的记事本");
  setSize(WIDTH, HEIGHT);
        Container contentPane = getContentPane();
        JPanel txtPanel = new JPanel();
        JPanel comboxPanel = new JPanel();
        JPanel textPanel = new JPanel();
        txtArea=new JTextArea("",17,40);
        JScrollPane scrollPane =new JScrollPane(txtArea);
        txtPanel.add(scrollPane);
        contentPane.add(comboxPanel,BorderLayout.NORTH);
        contentPane.add(txtPanel);
  contentPane.add(textPanel,BorderLayout.SOUTH);
  //Caidan lan:添加主菜单并设置快捷键
  JMenuBar menuBar =new JMenuBar();
  setJMenuBar(menuBar);
  fileMenu=new JMenu("文件(F)");
  editMenu=new JMenu("编辑(E)");
  typeMenu=new JMenu("格式(O)");
  viewMenu=new JMenu("查看(V)");
  helpMenu=new JMenu("帮助(H)");
  aboutMenu=new JMenu("关于(A)");
  fileMenu.setMnemonic('F');
  editMenu.setMnemonic('E');
  typeMenu.setMnemonic('O');
  viewMenu.setMnemonic('V');
  helpMenu.setMnemonic('H');
  aboutMenu.setMnemonic('A');
  menuBar.add(fileMenu);
  menuBar.add(editMenu);
  menuBar.add(typeMenu);
  menuBar.add(viewMenu);
     menuBar.add(aboutMenu);
  menuBar.add(helpMenu);
  //wenjian“文件”菜单的子菜单添加以及设置加速器,监听器
  aa=fileMenu.add(new ShowAction("新建"));
  aa.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
  ab=fileMenu.add(new ShowAction("打开"));
  ab.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
  ac=fileMenu.add(new ShowAction("保存"));
  ac.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  ad=fileMenu.add(new ShowAction("另存为"));
  ad.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
  fileMenu.addSeparator();
  ae=fileMenu.add(new ShowAction("页面设置"));
  ae.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_U,InputEvent.CTRL_MASK));
  af=fileMenu.add(new ShowAction("打印"));
  af.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
  fileMenu.addSeparator();//分割线
  ag=fileMenu.add(new ShowAction("退出"));
  ag.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
  //bianji“编辑”菜单的子菜单添加以及设置加速器,监听器
  ah=editMenu.add(new ShowAction("撤消"));
  editMenu.addSeparator();
  ah.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Z,InputEvent.CTRL_MASK));
  ai=editMenu.add(new ShowAction("剪切"));
  ai.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_X,InputEvent.CTRL_MASK));
  aj=editMenu.add(new ShowAction("复制"));
  aj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
  an=editMenu.add(new ShowAction("粘贴"));
  an.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
  ak=editMenu.add(new ShowAction("删除"));
  ak.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_L,InputEvent.CTRL_MASK));
  editMenu.addSeparator();
  al=editMenu.add(new ShowAction("查找"));
  al.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
  am=editMenu.add(new ShowAction("全选"));
  am.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_A,InputEvent.CTRL_MASK));
  //geshi“格式”菜单的子菜单添加以及设置加速器,监听器
  zdhh=new JMenu("自动换行(L)");
  zdhh.setMnemonic('L');
  typeMenu.add(zdhh);
  ButtonGroup group =new ButtonGroup();
  xz=new JRadioButtonMenuItem("选择");
  xz.addActionListener(new ShowAction("选择"));
  xz.setSelected(true);
     qxxz=new JRadioButtonMenuItem("取消");
  qxxz.addActionListener(new ShowAction("取消"));
  qxxz.setSelected(true);
  group.add(xz);group.add(qxxz);
  zdhh.add(xz);zdhh.add(qxxz);
  bj=typeMenu.add(new ShowAction("背景颜色"));
  bj.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
  zt=typeMenu.add(new ShowAction("字体"));
  zt.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_F,InputEvent.CTRL_MASK));
   //字体弹出框中的“确定”按钮
   que=new Button("确定");
         que.addActionListener(new boxlistener());  
  //chakan“查看”菜单的子菜单添加以及设置加速器,监听器
  ztl=viewMenu.add(new ShowAction("状态栏"));
  ztl.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  //guanyu“关于”菜单的子菜单添加以及设置加速器,监听器
  zzxx=aboutMenu.add(new ShowAction("作者信息"));
  zzxx.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
  bq=aboutMenu.add(new ShowAction("版权"));
  bq.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_B,InputEvent.CTRL_MASK));
  sm=aboutMenu.add(new ShowAction("声明"));
  sm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  //bangzhu“帮助”菜单的子菜单添加以及设置加速器,监听器
  shm=helpMenu.add(new ShowAction("说明"));
  shm.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_S,InputEvent.CTRL_MASK));
  //文本框底部工具栏的设置
   toolbar2=new JToolBar();
   textPanel.add(toolbar2);
   text1=new  JTextField("就绪",10);
   text2=new  JTextField("欢迎使用该记事本!",10);
   text3=new  JTextField("",10);
   text4=new  JTextField("",10);
   textPanel.setLayout(new GridLayout(1, 4));
   toolbar2.add(text1);
         toolbar2.add(text2);
         toolbar2.add(text3);
         toolbar2.add(text4);
         text1.setEditable(false);
         text2.setEditable(false);
         text3.setEditable(false);
         text4.setEditable(false);
        //组合框的设置
  //字体
  zitiLabel=new JLabel("字体");comboxPanel.add(zitiLabel);
  String zit[]={"宋体","华文行楷","楷体","黑体","幼圆"};
  zitibox=new JComboBox(zit);
  comboxPanel.add(zitibox);
  //颜色
     yanseLabel=new JLabel("颜色");comboxPanel.add(yanseLabel);
     String yans[]={"黑色","蓝色","绿色","红色","黄色","蓝绿色","浅灰色"};
     yansebox=new JComboBox(yans);
     comboxPanel.add(yansebox);
     //大小
     daxiaoLabel=new JLabel("大小");comboxPanel.add(daxiaoLabel);
     String dax[]={"15","10","5","20","25","30","35","40","..."};
     daxiaobox=new JComboBox(dax);
     comboxPanel.add(daxiaobox);
     zitibox.setEditable(true);
     yansebox.setEditable(true);
     daxiaobox.setEditable(true);
     comboxPanel.setLayout(new FlowLayout(FlowLayout.LEFT));//靠左排列
     //组合框注册监听器
     yansebox.addActionListener(new boxlistener());
     zitibox.addActionListener(new boxlistener());
  daxiaobox.addActionListener(new boxlistener());
  txtPanel.setLayout(new GridLayout(1, 1));
  //实例化“撤销”
  um= new UndoManager ();
  txtArea.getDocument().addUndoableEditListener(um);
 }
 //菜单栏的接口实现
 private class ShowAction extends AbstractAction
 {
  public ShowAction(String name){super(name);}
  public void actionPerformed(ActionEvent e)
  {
   Object s=e.getSource();
   //新建
   if(s==aa)
   {
                if(txtArea.getText().equals(""))
                 {
                            txtArea.setText("");
                    }
               else{
                             int n=JOptionPane.showConfirmDialog(Aframe.this, "无标题记事本已改变。\n想要保存吗?","记事本",JOptionPane.YES_NO_CANCEL_OPTION);
                             if(n==JOptionPane.NO_OPTION){
                                  txtArea.setText("");
                                   setTitle("无标题"+"——"+"记事本");
                                                          }     
                              else if(n==JOptionPane.YES_OPTION)
                               {
                             save.setVisible(true);  
                           String name=save.getDirectory()+save.getFile();
                            try
                           {
                            FileOutputStream out=new FileOutputStream(name);
                            out.write(txtArea.getText().getBytes());
                            out.close();
                            }
                               catch(IOException a)
                                 {
                                 System.err.println("保存失败。。!");
                                 }
                      }     
                   }
          } 

   //打开
   if(s==ab)
   {
    open.setVisible(true);
    String name=open.getDirectory()+open.getFile();
    String name2=open.getFile();
    setTitle(name2);
    try
    {
     FileInputStream in=new FileInputStream(name);
     byte[] ia=new byte[in.available()];
     in.read(ia);
     txtArea.setText(new String(ia));
     in.close();
    }
    catch(IOException a)
    {
     System.err.println("获取文件失败!");
    }
      }
   //另存为
   if(s==ad)
    {
    save.setVisible(true);  
    String name=save.getDirectory()+save.getFile();
    try
    {
     FileOutputStream out=new FileOutputStream(name);
     out.write(txtArea.getText().getBytes());
     out.close();
    }
    catch(IOException a)
    {
     System.err.println("保存失败。。!");
    }
     shifulingcun=1;
    }
    //保存
   if(s==ac)
   {
    if(shifulingcun!=1)
    {save.setVisible(true);}
    String name=save.getDirectory()+save.getFile();
    try
    {
     FileOutputStream out=new FileOutputStream(name);
     out.write(txtArea.getText().getBytes());
     out.close();
    }
    catch(IOException b)
    {
     System.err.println("保存文件失败");
    }
   
      }       
            
    
   //退出
   if(s==ag)
   {
    int selection = JOptionPane.showConfirmDialog(
    Aframe.this,
    "确定退出么?", "退出?",
    JOptionPane.OK_CANCEL_OPTION,
    JOptionPane.WARNING_MESSAGE);
 
       if (selection == JOptionPane.OK_OPTION)
       {
        System.exit(0);
       }
      }
      //选择自动换行
      if(s==xz)
      {
       txtArea.setLineWrap(true);
      }
      //取消自动换行
      if(s==qxxz)
      {
       txtArea.setLineWrap(false);
      }
      //背景颜色
   if(s==bj)
   {
           Color color=JColorChooser.showDialog(Aframe.this, "调色板", txtArea.getBackground());
           if(color!=null)
            txtArea.setBackground(color);
            }
      //作者信息
      if (s==zzxx)
   {int selection = JOptionPane.showConfirmDialog(
    Aframe.this,
    "“我的记事本”编写小组成员:刘悦,王征,沈光辉","作者信息",
    JOptionPane.DEFAULT_OPTION);
   }
   //版权
   if (s==bq)
   {int selection = JOptionPane.showConfirmDialog(
    Aframe.this,
    "版权所有,盗版必究!","版权",
    JOptionPane.DEFAULT_OPTION);
   }
   //声明
   if (s==sm)
   {int selection = JOptionPane.showConfirmDialog(
    Aframe.this,
    "该程序仅用于实践交流","声明",
    JOptionPane.DEFAULT_OPTION);
   }
   //说明
   if (s==shm)
   {int selection = JOptionPane.showConfirmDialog(
    Aframe.this,
    "由于种种原因,该版本记事本还存在很多缺陷,我们将在以后的工作中予以改进","说明",
    JOptionPane.DEFAULT_OPTION);
   }
   //剪切复制粘贴
   if (s==ai|| s==cutTtem)
   {
    txtArea.cut();
   }
   if (s==aj)
   {
    txtArea.copy();
   }
   if (s==an)
   {
    txtArea.paste();
   }
   //删除
   if(s==ak)   
            {   
                txtArea.replaceRange("", txtArea.getSelectionStart(), txtArea.getSelectionEnd());   
            }   
            //全选
   if (s==am)  
   {
    txtArea.selectAll();
   }
   //撤销
   if(s==ah)
      {
          um.undo();
      }
      //字体
          if (s==zt)
            {
               
             tishi.setFont(new Font("华文行楷",1,15));
                tanchu.setLocation(300,250);
               tanchu.setSize(200,150);
             tanchu.setTitle("字体设置"); 
             tanchu.setLayout(new GridLayout(2,2,2,2));
             tanchu.add(tishi);
             tanchu.add(daxiaobox);
             tanchu.add(que);
             tanchu.add(zitibox);
             tanchu.setVisible(true);
              }
              //状态栏
              aaaaa.setText("当前字体是"+ff+"颜色是"+zzz+"大小是"+kk);
              if (s==ztl)
            {
                tanchu.setLocation(300,250);
               tanchu.setSize(300,150);
             tanchu.setTitle("当前状态"); 
             tanchu.setLayout(new GridLayout(2,2,2,2));
             aaaaa.setEditable(false);
             tanchu.add(aaaaa);
             tanchu.add(que);
             tanchu.setVisible(true);
                }
      //查找
      


 

  }
 }
 //组合框的接口实现
 private class boxlistener implements ActionListener
 {
  public void actionPerformed(ActionEvent ee)
  {
   Object ss=yansebox.getSelectedItem();
   Object zz=zitibox.getSelectedItem();
   Object dx=daxiaobox.getSelectedItem();
   String tr=(String)ss;
   String tz=(String)zz;
   String td=(String)dx;
   //字体菜单中弹出菜单“确定”的响应
   if (ee.getSource()==que){
          tanchu.dispose();
         }
   //颜色
   if(tr=="红色"){
    txtArea.setForeground(Color.red);
    zzz="红色";
   }
   if(tr=="黑色"){
    txtArea.setForeground(Color.black);
    zzz="黑色";
   }
   if(tr=="绿色"){
    txtArea.setForeground(Color.green);
    zzz="绿色";
   }
   if(tr=="蓝色"){
    txtArea.setForeground(Color.blue);
    zzz="蓝色";
   }
   if(tr=="黄色"){
    txtArea.setForeground(Color.yellow);
    zzz="黄色";
   }
   if(tr=="蓝绿色"){
    txtArea.setForeground(Color.cyan);
    zzz="蓝绿色";
   }
   if(tr=="浅灰色"){
    txtArea.setForeground(Color.lightGray);
    zzz="浅灰色";
   }
   //字体
   if(tz=="华文行楷"){
   
    Font f=txtArea.getFont();
    txtArea.setFont(new Font("华文行楷",f.getStyle(),f.getSize()));
    ff="华文行楷";
   }
   if(tz=="楷体"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font("楷体",f.getStyle(),f.getSize()));
    ff="楷体";
   }
   if(tz=="宋体"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font("宋体",f.getStyle(),f.getSize()));
    ff="宋体";
   }
   if(tz=="黑体"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font("黑体",f.getStyle(),f.getSize()));
    ff="黑体";
   }
   if(tz=="幼圆"){ 
    Font f=txtArea.getFont();
    txtArea.setFont(new Font("幼圆",f.getStyle(),f.getSize()));
    ff="幼圆";
   }
   //大小
   if(td=="5"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),5));
    kk="5";
   }
   if(td=="10"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),10));
    kk="10";
   }
   if(td=="15"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),15));
    kk="15";
   }
   if(td=="20"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),20));
    kk="20";
   }
   if(td=="25"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),25));
    kk="25";
   }
   if(td=="30"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),30));
    kk="30";
   }
   if(td=="35"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),35));
    kk="35";
   }
   if(td=="40"){
    Font f=txtArea.getFont();
    txtArea.setFont(new Font(f.getName(),f.getStyle(),40));
    kk="40";
   }
           
     
  }
  
 } 
    public static final int WIDTH = 550;
 public static final int HEIGHT = 450;
 JTextArea txtArea;
 JMenu fileMenu,editMenu,typeMenu,viewMenu,helpMenu,aboutMenu;
 JMenuItem aa,ab,ac,ad,ae,af,ag,ah,ai,aj,ak,al,am,an,zdhh,zt,ztl,zzxx,bq,sm,shm,bj,cutTtem;
 JComboBox zitibox,yansebox,daxiaobox;
 JLabel zitiLabel,yanseLabel,daxiaoLabel;
 FileDialog open=new FileDialog(this,"打开..");
 FileDialog save=new FileDialog(this,"另存为..",FileDialog.SAVE);
 JRadioButtonMenuItem xz,qxxz;
 JFileChooser fileChooser;
 int shifulingcun;
 JToolBar toolbar2;
 JTextField text1,text2,text3,text4;
 public JTextField aaaaa=new JTextField ("");
 UndoManager um;
 Dialog tanchu=new Dialog(this);
 public Button que;
 Label tishi=new Label("字体和大小:");
 String ff="",kk="",zzz="";
}
界面:

用JAVA编写的文档编辑器源代码

 

分享到:
评论

相关推荐

    JAVA编写的文本编辑器程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    java版本文本编辑器源代码

    本程序是用java语言编写的一个文本编辑器程序,

    JAVA编写的计算器程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    简单文本编辑器源代码(java)

    用java语言编写的一个简单程序

    JAVA编写的打砖块程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    JAVA编写的俄罗斯方块程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    JAVA编写的螃蟹过街程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    JAVA编写的看图软件程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    JAVA编写的拼图---鼠标操作程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    JAVA编写的拼图---键盘操作程序源代码

    JAVA编写的文本编辑器程序源代码 其余部分搜索、下载方法: 1、点击 “Tag” 后面的关键字。JAVA课程设计 JAVA课程设计源代码 。 2、可在“搜索”按钮前面的文本框内填上本资源的关键字进行搜索。 3、或者点击“高级...

    Java 中的简单文本编辑器源代码

    Java 中的简单文本编辑器是用 Java 编程语言编码的桌面应用程序。该项目使用一个简单的函数来制作文本编辑器应用程序。这个项目可以允许写任何字母,也可以改变文本的字体样式。该应用程序易于使用,您只需打开应用...

    Java编写的仿windows自带计算器程序(源代码)

    用Java编写的仿windows自带计算器程序的源代码,可用任何文本编辑器打开。 从界面到功能80%与windows计算器程序一致,适合GUI编程初学者学习。 技术特点:OOP思想,MVC,内部类。

    Java txt文本阅读编辑器源代码

    一个Java编写的txt文本编辑器,也是一个txt文本阅读器!

    JAVA写文本编辑器源码

    JAVA swing 编写类似windows记事本的文本编辑器软件,能够实现文件打开、保存、多窗口(有bug)、退出、编辑字体功能。供在校学生和初学者学习。

    基于java的文本编辑器系统设计与实现毕业设计(说明报告+源代码)

    本设计所完成的文本编辑器功能是针对学习Java程序语言,因此我们利用Java程序设计虚拟机和软件对用户及使用者的应用过程形成一整套完整的编写代码,编译,运行。 本文本编辑器的开发主要包括界面窗口的菜单栏和工具...

    [计算机毕设]基于java的文本编辑器系统设计与实现(项目报告+源代码).zip

    本设计所完成的文本编辑器功能是针对学习Java程序语言,因此我们利用Java程序设计虚拟机和软件对用户及使用者的应用过程形成一整套完整的编写代码,编译,运行。 本文本编辑器的开发主要包括界面窗口的菜单栏和工具...

    基于java的文本编辑器系统设计与实现毕业设计(项目报告+源代码).zip

    本设计所完成的文本编辑器功能是针对学习Java程序语言,因此我们利用Java程序设计虚拟机和软件对用户及使用者的应用过程形成一整套完整的编写代码,编译,运行。 本文本编辑器的开发主要包括界面窗口的菜单栏和工具...

    JAVA上百实例源码以及开源项目源代码

     Java编写的HTML浏览器源代码,一个很简单甚至不算是浏览器的HTML浏览器,使用方法:  可直接输入文件名或网络地址,但必需事先连入网络。 Java编写的山寨QQ,多人聊天+用户在线 21个目标文件 摘要:JAVA源码,...

    Java开发技术大全(500个源代码).

    代码范例列表 第1章 示例描述:本章演示如何开始使用JDK进行程序的开发。 HelloWorldApp.java 第一个用Java开发的应用程序。 firstApplet.java 第一个用Java开发的Applet小程序。 firstApplet.htm 用来装载...

Global site tag (gtag.js) - Google Analytics