• Java课程设计,包括文件压缩,聊天软件,下载二进制文件三个课程设计。包含其源码和相应的课程设计文档
  • 主要是用HTML文档来体现试卷的样式。并且把生成的试卷保存到指定的位置,利于查找试卷 为了更好的利用计算机管理系统,制作一套试卷自动生成系统,是试题由教师或学生直接输入到数据库,这样就使试卷和试题方便管理...
  • javaweb课程设计文档

    2019-06-18 22:07:37
    转发文档(https://www.cnblogs.com/cd123/p/11042898.html)
    展开全文
  • JAVA课程设计-画图板(含文档、源码)源码整理
  • java课程设计大作业 推箱子游戏的制作说明文档(含素材)
  • 大小用灵活的能够跟着屏幕大小变动的设计,用Dimension dim=getToolkit().getscreenseize来获取屏幕大小然后设置文本编辑器的时候就用这个dim去设。布局的话采用BorderLayout布局管理,将textArea文本框放在中心以...

    做这个文本编辑器的时候,分为几步来做;

    第一步,先为文本编辑器搭好框架也就是布局。大小用灵活的能够跟着屏幕大小变动的设计,用Dimension dim=getToolkit().getscreenseize来获取屏幕大小然后设置文本编辑器的时候就用这个dim去设。布局的话采用BorderLayout布局管理,将textArea文本框放在中心以便于能随着文本编辑器的拉大缩小而跟着变动,将工具条toolbar放在了north,然后将工具条中的组件一一加上。为了使正题代码更加简洁,我最后用一个函数addmenu()来加菜单。

    第二步组件添加的步骤:注意事项 1、之后要用到的组件要在构造函数前面声明,不然后面调不到这个变量。 2、添加textarea的时候最好用this.getcontentpane去加,因为我们用到的JFrame本身就是类似于一个pane。3、个人习惯要实现AcitonLiseter的时候用的是e.getactioncommand所以最好在每一步都设置好命令这样是有好处的,之后你会发现在做颜色和字体的同步时候你会发现这样是挺好用的,之前我就是因为有的想偷懒没设,后面怎么都不能同步弄了好久。大哭哭所以这里特别提醒。4.以为颜色这个东西是互斥的对吧,所以就要做一个buttongroup来使他们互斥。

    第三步,实现AcitonListener的分流:因为实现的监听实在是太多了,如果一个个去找的话是非常耗时的,这里采用分流的方式,可以大大减少寻找所需时间。

    第四步:实现按钮功能:  注意事项:1、在获取comboxname时要注意设置这个是可以编辑的,也就是说有可能用户会乱输导致程序出错,所以我们这里要捕捉异常用到try-catch语句。在设置字体的时候我用到了一个抽取代码。为什么呢?因为我后面要是菜单中的字体与工具条中的字体样式进行同步这样我就用到了相同的代码,所以就将相同的代码提取出来。同理在颜色按钮哪里也是如此。

    第五步:设置快捷菜单就是右键点击弹出快捷菜单及快捷键的添加 如ctrl+c这种类型,我这里做的是ctrl+i 剪切,ctrl+j复制,ctrl+k 粘贴 快捷菜单的步骤是:1声明 2new对象 3挂到容器中去4在容器中监听鼠标动作 5监听鼠标右键被点击时,把快捷菜单show出来,6菜单项的响应动作 7为菜单项设置快捷键


    特别说明一下我这里大部分用的的是数组添加组件。这种方法比较灵活。也可以一定程度上减少代码量

    到这里基本上就可以完成了。具体的代码bug调试我在后面说明



    下面是我已经可以实现的代码 具体的我会在后面用//备注。

    界面如下:




    代码bug:1 在向comboxSize中输入错误信息或者其他值按回车的时候会出现两次错误提示或者加入两个数,我们用来解决这个bug,这个bug的原理是jcombox组件事件响应的时候会在内容更新之后自动再调用一次即使是在编辑框中输入后回车并没有执行insertitem也会调用,因此我们通过卫条件过滤掉自动调用的那一次事件响应。


    bug2:一开始我们点击运行程序颜色并没有直接是红色 要点击一次之后才能变,所以我们在menu()里面将红色的radiobutton设为默认的,这样就成功解决了。


    package cn.hncu.gui5;



    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Dimension;
    import java.awt.Font;
    import java.awt.GraphicsEnvironment;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.awt.event.MouseEvent;
    import java.awt.event.MouseListener;


    import javax.swing.ButtonGroup;
    import javax.swing.JCheckBox;
    import javax.swing.JCheckBoxMenuItem;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JMenu;
    import javax.swing.JMenuBar;
    import javax.swing.JMenuItem;
    import javax.swing.JOptionPane;
    import javax.swing.JPopupMenu;
    import javax.swing.JRadioButton;
    import javax.swing.JRadioButtonMenuItem;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JToolBar;
    import javax.swing.KeyStroke;


    public class EditorJFrame extends JFrame implements ActionListener, MouseListener {
    private JTextArea text;
    private JComboBox comboxName, comboxSize;
    private JCheckBox chkBold, chkItalic;
    private JRadioButton radioColor[];
    private Font font=null;
    private JCheckBoxMenuItem chkMenuItems[];
    private JRadioButtonMenuItem[] radioMenuItem;
    private JPopupMenu popMenu;


    public EditorJFrame() {
    super("文本编辑器");
    Dimension dim = getToolkit().getScreenSize();
    this.setBounds(dim.width / 4, dim.height / 4, dim.width / 2,
    dim.height / 2);
    this.setDefaultCloseOperation(EXIT_ON_CLOSE);//实现窗口关闭按钮


    JToolBar toolbar = new JToolBar();
    this.getContentPane().add(toolbar, BorderLayout.NORTH);//加工具条


    GraphicsEnvironment ge = GraphicsEnvironment
    .getLocalGraphicsEnvironment();//获取本地字体并添加ActiomListener
    String fontsName[] = ge.getAvailableFontFamilyNames();
    comboxName = new JComboBox(fontsName);
    toolbar.add(comboxName);
    comboxName.addActionListener(this);


    String[] sizeStr = { "20", "30", "40", "50", "60", "70" };//做字体大小的combox组件并添加ActiomListener
    comboxSize = new JComboBox(sizeStr);
    toolbar.add(comboxSize);
    comboxSize.setEditable(true);
    comboxSize.addActionListener(this);


    chkBold = new JCheckBox("粗体");//做两个字体样式的组件并添加ActiomListener
    chkItalic = new JCheckBox("斜体");
    toolbar.add(chkBold);
    chkBold.setActionCommand("bold");
    chkBold.addActionListener(this);
    toolbar.add(chkItalic);
    chkItalic.setActionCommand("italic");
    chkItalic.addActionListener(this);





    text = new JTextArea("welcome 欢迎");//把文本框放进去初始为 welcome 欢迎
    this.getContentPane().add(new JScrollPane(text));

    String[] strColor = { "红", "绿", "蓝" };
    radioColor = new JRadioButton[strColor.length];
    ButtonGroup group = new ButtonGroup();
    for (int i = 0; i < radioColor.length; i++) {
    radioColor[i] = new JRadioButton(strColor[i]);
    toolbar.add(radioColor[i]);
    group.add(radioColor[i]);
    radioColor[i].addActionListener(this);
    }
    radioColor[0].setActionCommand("red");
    radioColor[1].setActionCommand("green");
    radioColor[2].setActionCommand("blue");
    radioColor[0].setSelected(true);
    text.setForeground(Color.red);


    addMyMenu();



    this.setVisible(true);
    }


    private void addMyMenu() {
    JMenuBar menubar=new JMenuBar();
    setJMenuBar(menubar);
    String[] menuStr={"文件","编辑","帮助"};
    JMenu menu[]=new JMenu[menuStr.length];
    for(int i=0;i<menu.length;i++){
    menu[i]=new JMenu(menuStr[i]);
    menubar.add(menu[i]);
    }

    //文件菜单
    String[] menu0Str={"打开","保存","退出"};
    JMenuItem[] menuText=new JMenuItem[menu0Str.length];
    for(int i=0;i<menuText.length;i++){
    menuText[i]=new JMenuItem(menu0Str[i]);
    menu[0].add(menuText[i]);
    if(i==1){
    menu[0].addSeparator();
    }
    }
    menuText[2].setActionCommand("exit");
    menuText[2].addActionListener(this);

    JMenu menuStyle = new JMenu("字形");
    menu[1].add(menuStyle);//菜单添加菜单,被添加的即是二级菜单



    String[] menuFont={"粗体","斜体"};
    chkMenuItems=new JCheckBoxMenuItem[menuFont.length];
    for(int i=0;i<chkMenuItems.length;i++){
    chkMenuItems[i]=new JCheckBoxMenuItem(menuFont[i]);
    menuStyle.add(chkMenuItems[i]);
    chkMenuItems[i].addActionListener(this);
    }
    //设置命令
    chkMenuItems[0].setActionCommand("bold");
    chkMenuItems[1].setActionCommand("italic");



    //编辑-颜色菜单
    JMenu menuColor= new JMenu("颜色");
    menu[1].add(menuColor);
    String[] colorStr={"红","绿","蓝"};
    radioMenuItem=new JRadioButtonMenuItem[colorStr.length];
    ButtonGroup group=new ButtonGroup();
    for(int i=0;i<radioMenuItem.length;i++){
    radioMenuItem[i]=new JRadioButtonMenuItem(colorStr[i]);
    menuColor.add(radioMenuItem[i]);
    group.add(radioMenuItem[i]);
    radioMenuItem[i].addActionListener(this);
    }
    radioMenuItem[0].setActionCommand("red");
    radioMenuItem[1].setActionCommand("green");
    radioMenuItem[2].setActionCommand("blue");



    popMenu =new JPopupMenu();
    String[] strPopMenu={"剪切","复制","粘贴"};
    JMenuItem[] popMenuItems=new JMenuItem[strPopMenu.length];
    for(int i=0;i<popMenuItems.length;i++){
    popMenuItems[i]=new JMenuItem(strPopMenu[i]);
    popMenu.add(popMenuItems[i]);
    popMenuItems[i].addActionListener(this);
    }
    popMenuItems[0].setActionCommand("cut");
    popMenuItems[1].setActionCommand("copy");
    popMenuItems[2].setActionCommand("paste");


    text.add(popMenu);
    text.addMouseListener(this);


    //设置快捷键
    popMenuItems[0].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_I, InputEvent.CTRL_MASK));
    popMenuItems[1].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_J, InputEvent.CTRL_MASK));
    popMenuItems[2].setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_K, InputEvent.CTRL_MASK));

    }
    boolean isFilte=false;
    String str="";
    @Override
    public void actionPerformed(ActionEvent e) {
    if(isFilte&&e.getSource()==comboxSize){
    isFilte=false;
    return;
    }

    if (e.getSource() instanceof JComboBox
    || e.getSource() instanceof JCheckBox) {
    // 提取字体
    String fontName = (String) comboxName.getSelectedItem();
    //字体大小
    int foneSize = 0;
    String strSize = (String) comboxSize.getSelectedItem();
    try {
    foneSize = Integer.parseInt(strSize);
    } catch (NumberFormatException e1) {


    String msg = "\"" + strSize + "\"不能转换为整数,请重新输入";
    JOptionPane.showMessageDialog(this, msg);
    if(!strSize.equals(str)){
    str=strSize;
    isFilte=true;
    }
    return;
    }

    //字体样式

    int style = changleStyle(e);
       font = new Font(fontName, style, foneSize);
       text.setFont(font);
    }
    if(e.getSource()==comboxSize){
    String strSize=(String) comboxSize.getSelectedItem();
    int size=Integer.parseInt(strSize);
    int i=0,n=comboxSize.getItemCount();
    while(i<n){
    int isSize=Integer.parseInt((String) comboxSize.getItemAt(i));
    if(size>isSize){
    i++;
    }else if(size==isSize){
    return;
    }else{
    break;
    }

    }
    comboxSize.insertItemAt(strSize, i);
    }
    if(e.getSource() instanceof JMenuItem|| e.getSource() instanceof JRadioButton){

    if(e.getActionCommand().equalsIgnoreCase("red")||e.getActionCommand().equalsIgnoreCase("green")||e.getActionCommand().equalsIgnoreCase("blue")){
    changeColor(e);
    }

    if(e.getActionCommand().equals("exit")){
    System.exit(0);
    }
    if(e.getActionCommand().equalsIgnoreCase("bold")||e.getActionCommand().equalsIgnoreCase("italic")){

    int style = changleStyle(e);
       font = new Font(text.getFont().getName(), style, text.getFont().getSize());
       text.setFont(font);
    }

    if(e.getActionCommand().equalsIgnoreCase("cut")){
    text.cut();
    }
    if(e.getActionCommand().equalsIgnoreCase("copy")){
    text.copy();
    }
    if(e.getActionCommand().equalsIgnoreCase("paste")){
    text.paste();
    }

    }




    //做菜单字体与工具条中字体形式的同步






    }


    private void changeColor(ActionEvent e) {
    Color color=null;
    if(e.getActionCommand().equalsIgnoreCase("red")){
    color=new Color(255,0,0);
    radioColor[0].setSelected(radioMenuItem[0].isSelected());
    radioMenuItem[0].setSelected(radioColor[0].isSelected());
    }
    if(e.getActionCommand().equalsIgnoreCase("green")){
    color=new Color(0,255,0);
    radioColor[1].setSelected(radioMenuItem[1].isSelected());
    radioMenuItem[1].setSelected(radioColor[1].isSelected());
    }
    if(e.getActionCommand().equalsIgnoreCase("blue")){
    color=new Color(0,0,255);
    radioColor[2].setSelected(radioMenuItem[2].isSelected());
    radioMenuItem[2].setSelected(radioColor[2].isSelected());


    }





    text.setForeground(color);
    }






    private int changleStyle(ActionEvent e) {

    int style = text.getFont().getStyle();


    if (e.getActionCommand().equalsIgnoreCase("bold") ) {
    style = style ^ 1;
    }


    if (e.getActionCommand().equalsIgnoreCase("italic") ) {
    style = style ^ 2;


    }
    common(style);
    return style;
    }


    private void common(int style) {
    boolean sta1,sta2;
    sta1=((style & 1)==1);
    sta2=((style & 2)==2);
    chkMenuItems[0].setSelected(sta1);
    chkBold.setSelected(sta1);
    chkMenuItems[1].setSelected(sta2);
    chkItalic.setSelected(sta2);

    }




    @Override
    public void mouseClicked(MouseEvent e) {
    if(e.getModifiers()==MouseEvent.BUTTON3_MASK){
    popMenu.show(text, e.getX(), e.getY());
    }
    }


    @Override
    public void mousePressed(MouseEvent e) {

    }


    @Override
    public void mouseReleased(MouseEvent e) {

    }


    @Override
    public void mouseEntered(MouseEvent e) {

    }


    @Override
    public void mouseExited(MouseEvent e) {

    }
    public static void main(String[] args) {
    new EditorJFrame();
    }

    }


    展开全文
  • 这是我在大二上学期的java课程设计,我的课程设计是做一个简易记事本。其中有这些要求:1. 摸拟windows操作系统中的记事本软件,开发一款简易记事本2. 具有新建文件、保存文件、复制和粘贴功能3. 可以根据自身能力...

    **

    java课程设计《简易记事本》

    **
    第一次在博客上发布文章。这是我在大二上学期的java课程设计,我的课程设计是做一个简易记事本。其中有这些要求:1. 摸拟windows操作系统中的记事本软件,开发一款简易记事本2. 具有新建文件、保存文件、复制和粘贴功能3. 可以根据自身能力添加其它功能。
    一、设计概述
    该程序为简易记事本,目的是摸拟windows操作系统中的记事本软件,开发一款简易记事本,是开发的记事本具有新建文件、保存文件、打开文件、复制、剪切、粘贴、设置背景颜色和字体等功能。
    本程序使用了窗口交互界面,主要运用了Java swing组件和动作事件监听器,还用到了文件的输入输出流。记事本的界面参考了Window中记事本界面,并且根据课程设计要求做了适当的调整,相应地添加了其他功能。

    二、总体设计
    2.1程序设计思路
    在本程序中,设计了一个菜单栏和文本区。设计过程中用了JMenuBar,JFileChooser,JScrollPane,JMenu等。JMenuBar包括用来制作”文件”,“工具”,“背景”,“字体”,“关于”。JTextArea主要用来输入文本。
    2.2总体设计
    这次编写的简易记事本一共有4个源文件。类之间的主要关系如图所示。主类是NoteBook;子类有Mytext,BackgroundClorListener,HandkeListener。
    NoteBook.java文件生成的类负责创建简易记事本的“窗口”和设置窗口的相关信息。该类含有main方法,整个程序从该类开始执行。
    Mytext.java文件生成的类Mytext继承JFrame类作为底层容器,负责添加窗口的组件和为组件添加监视器。整个记事本分为两块菜单栏和内容输入区;为了实现相关功能,添加监听事件。本程序为了实现ActionListener接口,用来监听并处理部分菜单项和内容输入区为事件源的事件。
    BackgroundColorListener.java文件生成的类BackgroundColorLisener负责重写监视器方法,实现设置文本区背景颜色的功能。
    HandleListener.javajava文件生成的类HandleListener负责重写监视器的方法,负责实现复制、剪切、粘贴的功能。
    2.3详细设计代码

    //主函数
    Jishiben.java
    public class Jishiben{
    	public static  void main(String args[]){
    		Mytext text=new Mytext(“&随手一记”,100,90,600,600”);
    //创建窗口、设置窗口名称和大小
    	}
    }
    Mytext.java
    //Mytext类
    import javax.swing.*;
    import java.awt.*;
    import javax.swing.event.*;
    import java.awt.event.InputEvent;
    import java.awt.event.KeyEvent;
    import java.awt.event.*;
    import  javax.swing.JFrame.*;
    import java.io.*;
    import javax.swing.filechooser.*;
    public class Mytext extends JFrame implements ActionListener{
    JTextArea area;//创建文本区
    JMenuBar menubar;//创建菜单条
    JButton button;//创建按钮
    JFileChooser fileDialog;//创建对话框
    BufferedReader in;//创建缓冲输入流
    FileReader fileReader;//创建文件字符输入流
    BufferedWriter out;//缓冲输出流
    FileWriter fileWriter;//创建文件字符输出流
    JMenu menu1,menu2,menu3,menu4,menu5,menu6,menu7,menu8,menu9;//创建菜单、子菜单
    JmenuItem item1,item2,item3,item4,item5,item6,item7,item8,item9,item10,item11,item12,item13,
    item14,item15,item16,item17,item18,item19,item20,item21,item22,item23,item24,
    item25,item26,item27,item28,item29;//创建菜单项
    //添加组件方法
    public  Mytext(String s,int x,int y,int h,int w){
    	init(s);
    	setLocation(x,y);
    	setSize(h,w);
    	setVisible(true);
    	setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//使用结束后释放该窗口,退出程序
    	}
    	void init(String s){
    	setTitle(s);
    	menubar=new JMenuBar();
    button=new JButton();
    	area=new JTextArea();
    	menu1=new JMenu("文件(File)");
    	menu2=new JMenu("工具(Tool)");
    	menu3=new JMenu("颜色(Color)");
    	menu4=new JMenu("背景(Background)");
    	menu5=new JMenu("字体(Font)");
    	menu6=new JMenu("字号");
    	menu7=new JMenu("字形");
    	menu8=new JMenu("恢复原字体");
    	menu9=new JMenu("关于");
    	item1=new JMenuItem("复制(Copy)");
    item2=new JMenuItem("剪切(Cut)");
    	item3=new JMenuItem("粘贴(Paste)");
    	item4=new JMenuItem("新建(Newset)");
    	item5=new JMenuItem("保存(Paste)");
    	item6=new JMenuItem("灰色(Gray)");
    	item7=new JMenuItem("粉色(Pink)");
    	item8=new JMenuItem("白色(White)");
    	item9=new JMenuItem("红色(Red)");
    	item10=new JMenuItem("黑色(Black)");
    	item11=new JMenuItem("绿色(Green)");
    	item12=new JMenuItem("黄色(Yellow)");
    	item13=new JMenuItem("粉色(Pink)");
    	item14=new JMenuItem("白色(White)");
    	item15=new JMenuItem("红色(Red)");
    	item16=new JMenuItem("黑色(Black)");
    	item17=new JMenuItem("绿色(Green)");
    	item18=new JMenuItem("黄色(Yellow)");
    	item19=new JMenuItem("30");
    	item20=new JMenuItem("40");
    	item21=new JMenuItem("50");
    	item22=new JMenuItem("加粗");
    	item23=new JMenuItem("楷体");
    	item24=new JMenuItem("华文新魏");
    	item25=new JMenuItem("行书");
    	item26=new JMenuItem("格式化");
    	item27=new JMenuItem("相关提示");
    	item28=new JMenuItem("退出(格式化)");
    	item29=new JMenuItem("打开(Open)");
    	area.setLineWrap(true);//自动换行
    	button.add(item28);
    	add(button,BorderLayout.SOUTH);//添加按钮,在南面
    add(new JScrollPane(area),BorderLayout.CENTER);
    //创建滚动条,将文本区在中间位置,BordedLayout布局
    	area.setFont(new Font("宋体",0,20));
    	//默认字体为宋体,0是不加粗字体,1是加粗的,字号为20
    	fileDialog=new JFileChooser();
    	FileNameExtensionFilter filter=new FileNameExtensionFilter("文本文件","html","java");
    	//文件对话框可见的类型
    	fileDialog.setFileFilter(filter);
    	//设置对话框默认打开或显示的文件类型
    	item1.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_C,InputEvent.CTRL_MASK));
    	//设置复制的功能的快捷键为Ctrl+C
    item2.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_Q,InputEvent.CTRL_MASK));
    //设置剪切的功能的快捷键为Ctrl+Q
    item3.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_V,InputEvent.CTRL_MASK));
    //设置粘贴的功能的快捷键为Ctrl+V
    item4.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_N,InputEvent.CTRL_MASK));
    //设置新建的功能的快捷键为Ctrl+N
    item5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_P,InputEvent.CTRL_MASK));
    //设置保存的功能的快捷键为Ctrl+P
    item5.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_O,InputEvent.CTRL_MASK));
    //设置打开的功能的快捷键为Ctrl+O
    item28.setAccelerator(KeyStroke.getKeyStroke(KeyEvent.VK_T,InputEvent.CTRL_MASK));
    //设置的功能的快捷键为Ctrl+T
    item1.setActionCommand("copy");
    //设置出发item1事件后封装到事件中的一个为"copy"字符串
    item2.setActionCommand("cut");
    //设置出发item2事件后封装到事件中的一个为"cut"字符串
    item3.setActionCommand("paste");
    //设置出发item3事件后封装到事件中的一个为"paste"字符串
    item6.setActionCommand("gray");
    //设置出发item6事件后封装到事件中的一个为"gray"字符串
    item7.setActionCommand("pink");
    //设置出发item7事件后封装到事件中的一个为"pink"字符串
    item8.setActionCommand("white");
    //设置出发item8事件后封装到事件中的一个为"white"字符串
    item9.setActionCommand("red");
    //设置出发item9事件后封装到事件中的一个为"red"字符串
    item10.setActionCommand("black");
    //设置出发item10事件后封装到事件中的一个为"black"字符串
    item11.setActionCommand("green");
    //设置出发item11事件后封装到事件中的一个为"green"字符串
    item12.setActionCommand("yellow");
    //设置出发item12事件后封装到事件中的一个为"yellow"字符串
    			menu2.add(item1);//添加菜单项
    			menu2.addSeparator();//设置分格条,下面的都一样
    			menu2.add(item2);
    			menu2.addSeparator();
    			menu2.add(item3);
    			menu1.add(item4);
    			menu1.addSeparator();
    			menu1.add(item5);
    			menu1.addSeparator();
    			menu1.add(item29);
    			menu3.add(item13);
    			menu3.addSeparator();
    			menu3.add(item14);
    			menu3.addSeparator();
    			menu3.add(item15);
    			menu3.addSeparator();
    			menu3.add(item16);
    			menu3.addSeparator();
    			menu3.add(item17);
    		    menu3.addSeparator();
    			menu3.add(item18);
    			menu4.add(item6);
    			menu4.addSeparator();
    			menu4.add(item7);
    			menu4.addSeparator();
    			menu4.add(item8);
    			menu4.addSeparator();
    			menu4.add(item9);
    			menu4.addSeparator();
    			menu4.add(item10);
    			menu4.addSeparator();
    			menu4.add(item11);
    			menu4.addSeparator();
    			menu4.add(item12);
    			menu6.add(item19);
    			menu6.addSeparator();
    			menu6.add(item20);
    			menu6.addSeparator();
    			menu6.add(item21);
    			menu7.add(item22);
    			menu7.addSeparator();
    			menu7.add(item23);
    			menu7.addSeparator();
    			menu7.add(item24);
    			menu7.addSeparator();
    			menu7.add(item25);
    			menu8.add(item26);
    			menu9.add(item27);
    			menu5.add(menu3);
    			menu5.add(menu6);
    			menu5.add(menu7);
    		    menu5.add(menu8);
    		    menubar.add(menu1);
    			menubar.add(menu2);
    			menubar.add(menu4);
    			menubar.add(menu5);
    			menubar.add(menu9);
    			setJMenuBar(menubar);//设置菜单条
    HandleListener handleListener=new  HandleListener();//创建复制、剪切、粘贴监视器对象
    colorListener=new BackgroundColorListener();//创建灰、粉、白、红、黑、绿、黄监视器对象
    handleListener.setInputText(area);
    colorListener.setInputText(area);
    item1.addActionListener(handleListener);//item1将handleListener注册为监视器
    item2.addActionListener(handleListener);//item2将handleListener注册为监视器
    item3.addActionListener(handleListener);//item3将handleListener注册为监视器
    item4.addActionListener(this);//动作监视器this是指当前对象,不能被子类继承
    item5.addActionListener(this);
    item29.addActionListener(this);
    item6.addActionListener(colorListener);//item6将colorListener注册为监视器
    item7.addActionListener(colorListener);//item7将colorListener注册为监视器
    item8.addActionListener(colorListener);//item8将colorListener注册为监视器
    item9.addActionListener(colorListener);//item9将colorListener注册为监视器
    item10.addActionListener(colorListener);//item10将colorListener注册为监视器
    item11.addActionListener(colorListener);//item11将colorListener注册为监视器
    item12.addActionListener(colorListener);//item12将colorListener注册为监视器
    item13.addActionListener(this);//动作监视器this是指当前对象
    item14.addActionListener(this);
    item15.addActionListener(this);
    item16.addActionListener(this);
    item17.addActionListener(this);
    item18.addActionListener(this);
    item19.addActionListener(this);
    item20.addActionListener(this);
    item21.addActionListener(this);
    item22.addActionListener(this);
    item23.addActionListener(this);
    item24.addActionListener(this);
    item25.addActionListener(this);
    item26.addActionListener(this);
    item27.addActionListener(this);
    item28.addActionListener(this);
    }
    //下面是实现菜单里菜单项新建和保存的功能的方法
    public void actionPerformed(ActionEvent e){
    if(e.getSource()==item4){//监听"新建”事件
    int state=fileDialog.showOpenDialog(this);// 显示文件选取的对话框
    if(state==JFileChooser.APPROVE_OPTION){// 如果使用者按下确认键
    {area.setText(null);//将文本清空
    	area.setBackground(Color.white);
    area.setForeground(Color.black);}
    try{ 
    File dir=fileDialog.getCurrentDirectory();//获取当前对话框
    String name=fileDialog.getSelectedFile().getName();
    File file=new File(dir,name);//获取目录和文件名
    fileReader=new FileReader(file);
    in=new BufferedReader(fileReader);//创建文件的输出流
    String s=null;
    while((s=in.readLine())!=null){//从文件中读取一行文本
    area.append(s+"\n");}
    in.close();
    fileReader.close();//关闭输入流
     }
    catch(IOException exp){}//捕获文件读写发生的异常
    }
    else if(e.getSource()==item5){//监听保存事件
        int state=fileDialog.showSaveDialog(this);
    if(state==JFileChooser.APPROVE_OPTION){
             try{
               File dir=fileDialog.getCurrentDirectory();//获取当前对话框
                String name=fileDialog.getSelectedFile().getName();
                File file=new File(dir,name);
                fileWriter=new FileWriter(file);//写入字符文件
                out=new BufferedWriter(fileWriter);//将文本写入字符输出流
                out.write(area.getText());//获取文本区文字写入目的地
    out.flush();//强制把缓冲区里的内容写到目的地
                out.close();
                fileWriter.close();//关闭
                }
               catch(IOException exp){}//捕获文件读写发生的异常
    	   }
    }
    else if(e.getSource()==item29){//监听"打开"事件
            int state=fileDialog.showOpenDialog(this);
            if(state==JFileChooser.APPROVE_OPTION){
                 area.setText(null);
            try{
                File dir=fileDialog.getCurrentDirectory();
                String name=fileDialog.getSelectedFile().getName();
                File file=new File(dir,name);
                fileReader=new FileReader(file);
                in=new BufferedReader(fileReader);
       String s=null;
    		    while((s=in.readLine())!=null){
    				area.append(s+"\n");}
                    in.close();
                    fileReader.close();//关闭流
                }
             catch(IOException exp){}//捕获文件读写发生的异常}	
    else if(e.getSource()==item13){//监听"文字粉色"事件
    	area.setForeground(Color.pink);
    }
    else if(e.getSource()==item14){//监听"文字白色"事件
    	area.setForeground(Color.white);
    }
    else if(e.getSource()==item15){//监听"文字红色"事件
    	area.setForeground(Color.red);
    }
    else if(e.getSource()==item16){//监听"文字黑色"事件
    	area.setForeground(Color.black);
    }
    else if(e.getSource()==item17){//监听"文字绿色"事件
    	area.setForeground(Color.green);
    }
    else if(e.getSource()==item18){//监听"文字黄色"事件
    	area.setForeground(Color.yellow);
    }
    else if(e.getSource()==item19){//监听"Size30"事件
        area.setFont(new Font("宋体",0,30));
    }
    else if(e.getSource()==item20){//监听"Size40"事件
    	area.setFont(new Font("宋体",0,40));
    }
    else if(e.getSource()==item21){//监听"Size50"事件
    	area.setFont(new Font("宋体",0,50));
    }
    else if(e.getSource()==item22){//监听"文字加粗"事件
    	area.setFont(new Font("宋体",1,20));
    }
    else if(e.getSource()==item23){//监听"楷体"事件
    	area.setFont(new Font("楷体",0,20));
    }
    else if(e.getSource()==item24){//监听"华文新魏"事件
    	area.setFont(new Font("华文新魏",0,20));
    }
    else if(e.getSource()==item24){//监听"行书"事件
    	area.setFont(new Font("行书",0,20));
    }
    else if(e.getSource()==item26){//监听"恢复原设置"事件
    {
    	area.setFont(new Font("宋体",0,20));
    	area.setBackground(Color.white);
    	area.setForeground(Color.black);
    			}
    		}
    else if(e.getSource()==item28){监听"退出"事件
    	area.setText(null);
    }
    else if(e.getSource()==item27){监听"相关提示"事件
    { 
    	area.setBackground(Color.pink);//默认背景颜色为白色
    	area.setForeground(Color.black);//默认字体颜色为黑色
    area.setFont(new Font("新文华谓",1,20));
    area.append("该程序存在很多不足之处,建议使用前建议查询该网站了解相关信息\n");
    area.append("该网址是:https://...\n");
    int n=JOptionPane.showConfirmDialog(this,"您是否要复制该网址","温馨提示",JOptionPane.YES_NO_OPTION);//显示确认对话框
    if(n==JOptionPane.YES_OPTION){//用户单击对话框上的按钮“是”
    area.append("【注意】1、复制网址后,使用快捷键Ctrl+T,也可以继续编写文件。\n");
    area.append("谢谢您的使用!");
    }
    if(n==JOptionPane.NO_OPTION)//用户单击对话框上的按钮“是”
    	area.setText(null);
    		}
    	}
      }
    }
    BackgroundColorListener.java
    //BackgroundListener
    import javax.swing.*;
    import java.awt.event.*;
    import java.awt.*;
    //下面是实现背景颜色设置功能的方法
    public class BackgroundColorListener  implements ActionListener{
    JTextArea area;
    public void setInputText(JTextArea text){
    area=text;
    }
    public void actionPerformed(ActionEvent e){
    String str=e.getActionCommand();
    if(str.equals("gray"))
    area.setBackground(Color.gray);
    else if(str.equals("pink"))
    area.setBackground(Color.pink);
    else if(str.equals("white"))
    area.setBackground(Color.white);
    else if(str.equals("black"))
    area.setBackground(Color.black);
    else if(str.equals("green"))
       area.setBackground(Color.green);
    else if(str.equals("yellow"))
     area.setBackground(Color.yellow);
    else if(str.equals("red"))
    area.setBackground(Color.red);}
    }
    HandleListener.java
    //HandleListener类
    import java.awt.event.*;
    import javax.swing.*;
    //下面是实现工具里菜单项”复制”、剪切和粘贴的功能的方法
    public class HandleListener  implements ActionListener{
    JTextArea area;
    public void setInputText(JTextArea text){
    area=text;
    }
    public void actionPerformed(ActionEvent e){
    String str=e.getActionCommand();
    if(str.equals("copy"))
    	area.copy();
    else if(str.equals("cut"))
    	area.cut();
    else if(str.equals("paste"))
    	area.paste();
    }
    }
    

    4.1问题及解决办法
    (1)在文本区加入滚动条,该语句是:JScrollPane p=new JscrollPane();area.add§;运行后发现并没有滚动条;在看书查询后知道了不能直接添加,需要将窗格添加到面板,再将面板添加到文本区,这样才能成功的加入滚动条;后来被语句改为最简短的语add(new JScrollPane(area),BorderLayout.CENTER);
    滚动条已加入文本区。
    (2)为了是该记事本增加背景颜色和字体颜色的功能,一开始想一种颜色用一个菜单项就可以加入到菜单“背景”和“字体”中的,经过好多次运行发现这种办法是不可行的。后来只能多创建几个菜单项来分别引用。
    (3)在实现新建、保存和打开的功能的方法时,原打算和实现复制剪切粘贴功能一样新建一个java文件来实现这些功能的;运行后发现不可行,getActionCommand()对于文本框,当发生ActionEvent事件时,默认的字符串是文本框中的文本,并不是事件源对象的引用;因此就用关键字this作为新建、保存和打开的监视器,this指的是当前对象,可以调用getSource()方法可以获取发生ActionListener事件的事件源对象的引用,这样才能调用getCurrentDirectory()、showOpenDialog()等方法,这样才能实现新建、保存和粘贴功能。
    4.2存在不足
    (1)功能不全面,背景颜色不能保存到文件中
    (2)在增加字体这一功能设计还不够好
    (3)代码太长,不够精简
    五 心得体会
    经过努力,基本上完成我的Java课程设计一简单的记事本程序。也基本上实现了老师需求分析时所预期的功能。在这次课程设计中,我遇到了很多问题,也学会了解决这些问题的方法。通过这次的课程设计,使将我从技本上学习到的理论知识用到了实践上.从而进一步巩固和丰富了我所学过的知识,让我更深层次地认识到Java及其强大的功能。虽然过程有点难,但做这Java课程设计也进-步加强了我的动手能力和提高了我的兴趣。为了完成好这次课程设计,我一边上网查找相关资料,另一方面查阅相关书籍。在这过程中也无形中锻炼了我的思维分析、遇到问题及想方设法通过各种途径解决问题的能力。

    第一次写博客文章,有很多不足,希望大家多多指教

    展开全文
  • 简单Java计算器附设计文档 一个课程设计作品,用JAVA实现简单的加减乘除运算器,附有详细的设计文档和说明。
  • 本版本文档相似性系统存在

    本版本文档相似性系统存在不足:比较相似率比较高,比较效果不太明显。有些doc文档读取出现报错 问题!!

    算法还有待完善。。。会加强探究,解决问题。

    请耐心等候

    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.GridLayout;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import java.io.File;
    import java.text.DecimalFormat;
    import javax.swing.JButton;
    import javax.swing.JFileChooser;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JScrollPane;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    
    @SuppressWarnings("serial")
    public class Jframe extends JFrame implements ActionListener {
    	/***********
    	 * 定义按钮、文本框、文本域、滚动条、
    	 * 文件选择对话框、 
    	 *     *************/
    	static JButton jb1;
    	static JTextField jtf1;
    	static JButton jb2;
    	static JTextField jtf2;
    	static JButton jb3;
    	static JTextField jtf3;
    	static JTextArea jta;
    	JScrollPane jsp;
    	JFrame jf;
    	static JFileChooser filechoose;
    	static File file;
    	public static String path1;
    	public static String path2;
    	static String text2;
    	static String text3;
    	//定义一个数字格式化对象,格式化模板为".00",即保留2位小数.
    	static DecimalFormat df = new DecimalFormat( "0.00 ");
    
    	public Jframe() {
    
    		init();
    
    	}
    
    	public void init() {
    		/**********
    		 * 实例化JFrame框架、按钮、文本框
    		 * 文本域、滚动条     **********/
    		jf = new JFrame("文件相似度比较");
    		JPanel jpanel = new JPanel();
    		jpanel.setLayout(new GridLayout(3, 3, 5, 5));
    		jb1 = new JButton("选择文件1");
    		jtf1 = new JTextField(10);
    		jb2 = new JButton("选择文件2");
    		jtf2 = new JTextField(10);
    		jb3 = new JButton("比较文件夹所有文件");
    		jtf3 = new JTextField(10);
    		jta = new JTextArea(100, 35);
    		jta.setLineWrap(true);
    		jsp = new JScrollPane(jta, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS,
    				JScrollPane.HORIZONTAL_SCROLLBAR_ALWAYS);
    
    		jpanel.add(jb1);           //把按钮与文本框添加到jpanel
    		jpanel.add(jtf1);
    		jpanel.add(jb2);
    		jpanel.add(jtf2);
    		jpanel.add(jb3);
    		jpanel.add(jtf3);
    		JPanel jparea = new JPanel();
    		jparea.add(jsp);                 //把滚动条添加到面板jparea
    
    		jb1.addActionListener(this);   //为按钮增添监听器
    		jb2.addActionListener(this);
    		jb3.addActionListener(this);
    
    		jf.setLayout(new BorderLayout());
    		jf.add(jpanel, "North");   //把面板jpanel与面板jparea添加到JFrame框架
    		jf.add(jparea, "Center");//
    		jf.add(jsp);            //把滚动条加到JFrame框架
    		jf.setBackground(Color.white);
    		jf.setSize(350, 400);
    		jf.setVisible(true);
    		jf.setLocation(650, 350);
    		jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    
    	}
    
    	@Override
    	public void actionPerformed(ActionEvent e) {
    		// TODO Auto-generated method stub
    		filechoose = new JFileChooser();           //实例化文件选择对话框
    		@SuppressWarnings("unused")
    		wordortxt world = new wordortxt();       //实例化类wordtxt
    		@SuppressWarnings("unused")
    		CosineSimilarAlgorithm jisuan = new CosineSimilarAlgorithm();//实例化类CosineSimilarAlgorithm
    
    		if (e.getActionCommand().equals("选择文件1")) {     //实现按钮监听事件
    			//文件选择方式为文件和文件夹
    			filechoose.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    			filechoose.showOpenDialog(null);           //弹出文件选择对话框
    			file = filechoose.getSelectedFile();
    
    			if (file != null) {                         //判断选择是否为空
    				if (file.isFile()) {                   //判断选择是否为文件
    					path1 = file.getAbsolutePath();   //获得选择文件路径
    					jtf1.setText(path1);
    					text2 = judge(path1);            //调用judge()方法
    
    				}
    			}
    		}
    
    		if (e.getActionCommand().equals("选择文件2")) {         //实现按钮监听事件
    
    			filechoose.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    			filechoose.showOpenDialog(null);
    			file = filechoose.getSelectedFile();
    
    			if (file != null) {
    				if (file.isFile()) {
    
    					path2 = file.getAbsolutePath();
    					jtf2.setText(path2);
    					text3 = judge(path2);
    					double value = CosineSimilarAlgorithm.getSimilarity(text2, text3);
    					jta.append("相似度:" + df.format(value*100) + "%" + "\n");
    
    				}
    			}
    
    		}
    
    		if (e.getActionCommand().equals("比较文件夹所有文件")) {        //实现按钮监听事件
    			filechoose.setFileSelectionMode(JFileChooser.FILES_AND_DIRECTORIES);
    			filechoose.showOpenDialog(null);
    			file = filechoose.getSelectedFile();
    			if (file != null) {
    				if (file.isDirectory()) {    //判断选择是否为文件夹
    
    					getFile1();
    
    				}
    			}
    		}
    
    	}
    
    	public static void getFile1() {
    		int j, i;
    		String path = file.getAbsolutePath();
    		File[] f = file.listFiles();    //获得文件夹下的所有文件
    		jtf3.setText(path);
    		String[] temp = new String[f.length]; 
    		System.out.println("文件个数" + f.length);
    
    		for (i = 0; i < temp.length; i++) {
    			temp[i] = String.valueOf(f[i].getAbsolutePath());  //循环把文件路径保存到数组temp[]
    			text2 = judge(temp[i]);           //调用judge()方法返回字符串text2
    			String nafile1 = f[i].getName();  //获得文件名
    			//System.out.println(temp[i]);
    
    			for (j = i + 1; j < temp.length; j++) {    //循环获得下一个文件与temp[i]比较
    				temp[j] = String.valueOf(f[j].getAbsolutePath());
    				String nafile2 = f[j].getName();
    				text3 = judge(temp[j]);
    				double value = CosineSimilarAlgorithm.getSimilarity(text2, text3);
    				if(value > 0.7){    //把相似度大于0.7的文件输出到文本域
    					jta.append("相似度:" + " " + nafile1 + " 与 " + " " +nafile2 + "  "
    							+df.format(value*100)+ "%"+"\n");
    				}
    
    
    			}
    		}
    
    	}
    
    
    	public static String judge(String str) {     //判断文件是否为doc、txt文本、或者PDF并返回一个字符串
    		String text = null;
    		if (str.endsWith("doc")) {
    			try {
    				text = wordortxt.readDoc(str);
    			} catch (Exception e1) {
    				// TODO Auto-generated catch block
    				e1.printStackTrace();
    			}
    
    		} 
    		if (str.endsWith("txt")) {
    			try {
    				text = wordortxt.readtxt(str);
    			} catch (Exception e1) {
    				// TODO Auto-generated catch block
    				e1.printStackTrace();
    			}
    
    		}
    		else if (str.endsWith("pdf")) {
    			try {
    				text = wordortxt.readPDF(str);
    			} catch (Exception e1) {
    				// TODO Auto-generated catch block
    				e1.printStackTrace();
    			}
    		}
    
    
    		return text;
    
    	}
    
    }
    


    展开全文
  • JAVA课程设计报告:记事本的设计与实现 首先声明:  由于正在学习Java,正好找到了关于记事本的许多资料,所以就参考网上的课程设计和源代码,自己翻版一个记事本小程序,目的只在于熟悉应用Java中所学知识点.总结一下...

                                           JAVA课程设计报告:记事本的设计与实现

    首先声明:
         由于正在学习Java,正好找到了关于记事本的许多资料,所以就参考网上的课程设计和源代码,自己翻版一个记事本小程序,目的只在于熟悉应用Java中所学知识点.总结一下所有相关的知识点,方便自己和他人查看和学习.

    一:课程设计:

    1.总体框架:
           包括概要,前言,需求分析,概要设计,详细设计,系统测试和小结.

    2.目录:

    摘要1

    第1章  前言

        1.1 研究背景

        1.2 开发意义

        1.3 本文的组织结构

    第2章 需求分析

            2.1系统功能分析

            2.2 设计目标

    第3章 概要设计

    第4章 详细设计

           4.1文件模块的详细设计

           4.2编辑模块的详细设计

           4.3格式模块的详细设计

    第5章  系统测试

           5.1 程序主界面

           5.2文件界面

           5.3编辑菜单

    第6章 小 结

    参考文献


    3.主要部分的内容展示:

     

    (1).第2章 需求分析

             系统的需求分析根据记事本建立的一般流程,分析了系统的具体功能,对系统做了总体的规划,提出了系统的设计目标,介绍了系统的开发及运行环境。


    (2).第3章 概要设计

                                

             

                                      图3.1主模块

       

                         图3.2 实现文件功能的模块

                 

                         图3.3 文档编辑模块

                   

     

                         图3.4  格式设置模块


    (3).第4章 详细设计

     

    4.1文件模块的详细设计

            4.1.1新建模块的详细设计:

           用户选择新建后,先检测当前的文本内容是否修改过。如果未修改过,则新建一个空文本文档。如果修改过,先弹出提示保存对话框,提示用户是否保存,如果选择“是”,先保存当前文本内容,再新建一个空文本文档。如果选择“否”,则直接新建一个空文本文档。

             4.1.2打开模块的详细设计

        用户选择打开后,先检测当前的文本内容是否修改过。如果未修改过,则打开选择的文本文件。如果修改过,先弹出提示保存对话框,提示用户是否保存,如果选择“是”,先保存当前文本内容,再打开文本文件。如果选择“否”,则直接打开文件。

                

                     图4.2  打开模块流程图

             4.1.3保存、另存模块的详细设计

             当用户选择保存或另存时,先检测文件内容是否修改过。如果修改过,保存对文档的修改。如图4.3所示

                              

    图4.3 保存、另存模块流程图

         4.1.4退出模块的详细设计

        当用户选择退出时,弹出提示保存对话框,询问用户是否保持。如果选择“是”,先保存文档,再退出程序。如果选择“否”,直接退出程序。如图4.4所示:

                                     

                      图4.4  退出模块流程图


    4.2编辑模块的详细设计

            4.2.1撤销模块的详细设计

            打开一个文本文档,当用户选择编辑或右键弹出菜单中的撤消操作后,判断一个文本是否已被修改,若已修改,撤消上一步的操作,否则不进行任何操作。如图4.5所示:

           4.2.2剪切模块的详细设计

            打开一个文本文档,当用户选择编辑菜单或右键弹出菜单中的剪切操作后,判断一个文本是否被选中,若已选中,删除选中的文字,并将选中的文字传输到系统剪切板中,否则不进行任何操作。如图4.6所示:

     4.2.3复制模块的详细设计

         打开一个文本文档,当用户选择编辑菜单或右键弹出菜单中的复制操作后,判断一个文本是否被选中,若已选中,将选中的文字传输到系统剪切板中,否则不进行任何操作。如图4.7所示:

                                                          

                                                       图4.6剪切模块流程图                                                                         

    图4.7复制模块流程图

     

          4.2.4粘贴模块的详细设计

             运行程序,打开一个文本文档,在菜单栏上选中编辑菜单或者在文档中右键鼠标菜单,选中“粘贴”,判断文本文档是否进行了复制和剪切操作(即判断系统剪切板是否有内容),如果有就将剪切板的内容粘贴到光标处,没有就继续执行其他操作步骤。如图4.8所示:

         4.2.5删除模块的详细设计

             运行程序,打开一个文本文档,在菜单栏上选中编辑菜单或者在文档中右键鼠标菜单选中“删除”,程序判断文本文档是否有已选中的内容,如果有就将选中的内容删除掉,没有就执行其他操作。如图4.9所示:


                                     




    展开全文
  • import java.awt.*; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; import java.awt.event.MouseEvent; public class ChessBoard extends JPanel imple...
  • 刚做好的期末课程设计,上传与之分享诸位,课程设计代码+文档+设计书+调试好的系统。
  • 具体到我的下载页下载(开源)
  • Java课程设计 【题目】:使用已经学习的java知识编写一个简单的记事本 【实现功能】: 【1】文件: 新建 打开 保存 另存为 退出 【2】编辑: 剪切 复制 粘贴 删除 撤销 【3】格式: 自动换行 字体格式 字体颜色...
  • 一、需求 编程实现一个文本编辑器,使其具有新建、打开、...要求:基于JFrame窗体设计、使用菜单进行功能选择。 二、工程目录 三、项目代码 TestGui类 package T_1029; import java.awt.*; import java.awt.event...
  • Java Web课程设计报告

    2020-07-02 10:40:39
    本系统是一个简易的通讯簿管理系统,系统的主要功能包括:新用户注册功能,用户登录功能,能根据用户登录的身份(分为管理员和普通用户)不同显示不同的功能页面。当用户作为普通用户登录时,可以进行通讯簿查询和...
  • sqlsever数据库课程设计,内含java(swing)工程+sqlsever数据库+开发文档,可直接食用
  • 采用java技术和SQL Server 2017数据库开发出一个简单的基于Java技术的停车场管理系统,该系统有登录模块、车场管理模块、信息查询模块、信息维护模块、系统管理模块五大功能模块,每个模块实现不同功能。 SQL Server...
  • Java课程设计题目

    2008-11-17 20:48:00
    Java课程设计题目1、编写一个记事本程序要求:用图形用户界面实现。能实现编辑、保存、另存为、查找替换等功能。提示:使用文件输入输出流。2、模拟龟兔赛跑要求:用图形用户界面实现。能设置比赛时间,马匹的数量...
  • 源码实现了如下功能: 1.2 系统功能分析 1.2.1 基本功能 支持以下信息的录入: (1)基本信息:姓名、手机号码、...【系统设计文档】、【系统需求分析文档】、【系统实验报告】、【答辩展示PPT】另见我的资源……
1 2 3 4 5 ... 20
收藏数 25,971
精华内容 10,388