⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 groupgui.java

📁 这是一个用DOM实现的XML分析器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
	 
	 public void createmodifyframe()
	 {
	 	
	 	final JFrame modifyframe=new JFrame("修改组员信息");
	 	JPanel modifypanel=new JPanel();
	 	modifypanel.setLayout(new FlowLayout());
	 	
	 	JLabel label=new JLabel("需修改的组员:");
	 	final JTextField text=new JTextField(7);
	 	modifypanel.add(label);
	 	modifypanel.add(text);
	 	
	 	JLabel jlbl1=new JLabel("  Id      ");
	 	final JTextField jtext1=new JTextField(10);
	 	modifypanel.add(jlbl1);
	 	modifypanel.add(jtext1);
	 	
	 	JLabel jlbl2=new JLabel("  Name");
	 	final JTextField jtext2=new JTextField(10);
	 	modifypanel.add(jlbl2);
	 	modifypanel.add(jtext2);
	 	
	 	JLabel jlbl3=new JLabel("  Sex   ");
	 	final JTextField jtext3=new JTextField(10);
	 	modifypanel.add(jlbl3);
	 	modifypanel.add(jtext3);

        JButton confirm=new JButton("确定");
        confirm.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{
				group = new GroupDOMParser(filename);
				smember=text.getText();
				sid=jtext1.getText();
				sname=jtext2.getText();
				ssex=jtext3.getText();
				group.modifymember(newdoc,smember,sid,sname,ssex);
				newdoc=group.document;
				group.traverse(group.document);  
      	        final DefaultTreeModel treemodel=new DefaultTreeModel(group.rootNode);
      	        final JTree tree=new JTree(treemodel);
      	        scrollpane2.setViewportView(tree);
				modifyframe.dispose();
			}
		});
		
        JButton cancel=new JButton("取消");
        cancel.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{
				modifyframe.dispose();
			}
		});
        modifypanel.add(confirm);
        modifypanel.add(cancel);
        
	 	modifyframe.getContentPane().add(modifypanel);	 	
	 	modifyframe.setSize(new Dimension(210,180));
	 	modifyframe.setLocation(320,200);
	 	modifyframe.setVisible(true);
	 	modifyframe.setResizable(false);
	 }
	 
	 public void button_actionPerformed(ActionEvent e) 
     {
     	try{
        
     	String s=e.getActionCommand(); //取当前按键值
     	if(s.equals("退出"))
     		System.exit(0);        	
     	if(s.equals("打开xml文件"))
     	{
     		xmlArea.setText("");
     		FileDialog dialog1=new FileDialog(this);
     		dialog1.setLocation(320,200);
    		dialog1.setVisible(true);    		
    		jLabel1.setText(dialog1.getFile());
    		String input=dialog1.getDirectory()+dialog1.getFile();
    		filename=input;
    		File str=new File(input);
    		FileInputStream bf=new FileInputStream(str);  //创建文件输入流
            BufferedReader br=new BufferedReader(new InputStreamReader(bf));//以文件输入流建立缓冲区
            String line="";//初始字符串line为空串
            while((line=br.readLine())!=null)   //若串不为空则输出
                  xmlArea.append(line+"\n\r");
    		
     	}
     	
     	if(s.equals("树型输出"))
     	{
     		if(jLabel1.getText().equals(" 显示XML文件:")!=true)
     	    {
     	    	treeArea.setText("");	
     	       group = new GroupDOMParser(filename);
     	       newdoc=group.document;
     	       group.traverse(group.document);  
      	       final DefaultTreeModel treemodel=new DefaultTreeModel(group.rootNode);
      	        final JTree tree=new JTree(treemodel);
      	       scrollpane2.setViewportView(tree);
      	    }
      	    else
      	       treeArea.setText("请先打开一个xml文件");	
     	}
     	
     	if(s.equals("添加"))
     	{
     		if(jLabel1.getText().equals(" 显示XML文件:")!=true)
     	    {     		     	        	   
                createaddframe();
            }
            else
      	       treeArea.setText("请先打开一个xml文件");            
     	}
     	
     	if(s.equals("写回xml"))
     	{
     		int i,len;
     		char[] WordList=new char[1000]; //定义字符串数组
     		if(jLabel1.getText().equals(" 显示XML文件:")!=true)
     	    {
     		group = new GroupDOMParser(filename);
     		FileDialog dialog1=new FileDialog(this);
     		dialog1.setMode(dialog1.SAVE);
     		dialog1.setLocation(320,200);
    		dialog1.setVisible(true);     		
     		group.WriteToXml(newdoc,dialog1.getFile());
     		
        	String input=dialog1.getDirectory()+dialog1.getFile();
     		File str=new File(input);         
            FileReader br=new FileReader(str);
            br.read(WordList);  
            i=WordList.length-1; 
            while(WordList[i]!='p')
            {
            	i--;
            } 
            len=i+3;                
    
            String sa=new String(WordList);
            String sb=sa.replaceFirst("UTF-8","GB2312");
            String sc=sb.substring(0,39);
            sc=sc+"\n"+"<!DOCTYPE JavaGroup SYSTEM \"group.dtd\">"+sb.substring(40,len);
           // String sub=sb.substring(0,len);

             
            FileWriter to=new FileWriter(str); //以文件创建字符流对象
            to.write(sc);//字符串写入流
            to.close();  //关闭流 
     		}
     		else
      	       treeArea.setText("请先打开一个xml文件"); 
     	}
     	
     	if(s.equals("删除"))
     	{
     		if(jLabel1.getText().equals(" 显示XML文件:")!=true)
     	    {
     		    createdelframe();
     		}
     		else
      	       treeArea.setText("请先打开一个xml文件");      		
     		
     	}
     	
     	if(s.equals("修改"))
     	{
     		if(jLabel1.getText().equals(" 显示XML文件:")!=true)
     	    {
     		    createmodifyframe();
     		}
     		else
      	       treeArea.setText("请先打开一个xml文件");      
     	} 
        	
        if(s.equals("使用说明"))
        {
        	final JFrame helpframe=new JFrame("使用说明");
        	JScrollPane scrollpane;
        	JTextArea helpArea=new JTextArea(12,26);   //创建文本输入区
        	helpArea.setText("  1.首先,在菜单中点击 ' 打开 ' ,打开一个xml文件,"+"\n"+"     ' 树型输出 ' 可以在右边的面板中输出树型结构。"+"\n\n"+"  2、左边面板下方和菜单中有三个按钮:添加,删除"+"\n"+"      与修改。"+"\n\n");
        	helpArea.setText(helpArea.getText()+"  3、单击 ' 添加 ' ,在弹出的窗体中写入新添加的组"+"\n"+"     员名及新的学号,姓名,性别信息,组员名不能"+"\n"+"     为数字,单击确定,则组员信息被修改,Dom和"+"\n"+"     主面板右边的树型结构相应更新。"+"\n\n");
        	helpArea.setText(helpArea.getText()+"  4、单击 ' 删除 ' ,在弹出的窗体中输入需删除的组"+"\n"+"     员名,组员名不能为数字,如"+"\n"+"      ' member1 ' ,单击确定,则组员被删除,Dom和"+"\n"+"     主面板右边的树型结构相应更新。"+"\n\n");
        	helpArea.setText(helpArea.getText()+"  5、单击 ' 修改 ' ,在弹出的窗体中输入需修改的组"+"\n"+"     员名及新的学号,姓名,性别信息,组员名不能"+"\n"+"     为数字,单击确定,则组员信息被修改,Dom和"+"\n"+"     主面板右边的树型结构相应更新。"+"\n\n");
        	helpArea.setText(helpArea.getText()+"  6、修改完成后,若想储存修改结果,则单击菜单中"+"\n"+"     的 ' 写回xml ',选择一个文件名或输入新的文件"+"\n"+"     名,则可以把修改后的信息写入新的xml。"+"\n");
        	helpArea.setEditable(false);
        	JButton return1=new JButton("退出");
        	return1.addActionListener(new ActionListener()
            {
			     public void actionPerformed(ActionEvent e)
			     {
			     	helpframe.dispose();
			     }
			});
        	JPanel helppanel=new JPanel();
        	helppanel.add(scrollpane=new JScrollPane(helpArea));  //把文本输入区添加到可滚动窗格
        	helppanel.add(return1);
            helpframe.getContentPane().add(helppanel);	 	
	 	    helpframe.setSize(new Dimension(310,300));
	 	    helpframe.setLocation(320,200);
	 	    helpframe.setVisible(true);
            helpframe.setResizable(false);
        }
        }catch(IOException str){;}
     }
}

class test
{
  public static void main(String[] args)
  {      
     groupGUI gui=new groupGUI();   
	
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -