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

📄 groupgui.java

📁 这是一个用DOM实现的XML分析器
💻 JAVA
📖 第 1 页 / 共 2 页
字号:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.tree.*;
import java.io.*;

import org.w3c.dom.Document;

public class groupGUI extends JFrame
{
	GroupDOMParser group = new GroupDOMParser("group.xml");
	Document newdoc=group.document;
	String smember,sid,sname,ssex,filename="group.xml";
	JFrame mainframe=new JFrame("XML分析器");
	JPanel contentPane=(JPanel)this.getContentPane();
	JPanel editpanel=new JPanel();	
	JPanel treepanel=new JPanel();
	JPanel xmlpanel=new JPanel();
	JPanel leftpanel=new JPanel();
	JPanel rightpanel=new JPanel();	
    JScrollPane scrollpane1,scrollpane2;
	JMenu menu1=new JMenu("文件");
	JMenu menu2=new JMenu("编辑");
	JMenu menu3=new JMenu("帮助");
	JMenuItem item1=new JMenuItem("打开xml文件");
	JMenuItem item2=new JMenuItem("退出");	
	JMenuItem item3=new JMenuItem("修改");
	JMenuItem item4=new JMenuItem("添加");
	JMenuItem item5=new JMenuItem("删除");
	JMenuItem item6=new JMenuItem("树型输出");
	JMenuItem item7=new JMenuItem("写回xml");
	JMenuItem item8=new JMenuItem("使用说明");
	JLabel jLabel1=new JLabel(" 显示XML文件:"); //设置两个标签
    JLabel jLabel2=new JLabel(" 树型结构:");
	
	JMenuBar menubar=new JMenuBar();
	 final JButton addnode=new JButton("添加");
	 final JButton delnode=new JButton("删除");
	 final JButton chnode=new JButton("修改");
	 JTextArea xmlArea=new JTextArea(12,23);   //创建文本输入区
	 JTextArea treeArea=new JTextArea(13,20);
	 
	 public groupGUI()
	 {
	 	xmlArea.setEditable(false);
	 	treeArea.setEditable(false);	 
	    menu1.add(item1);
	    menu1.add(item6);
	    menu1.add(item7);
        menu1.add(item2);
        menu2.add(item3);
        menu2.add(item4);
        menu2.add(item5);
        menu3.add(item8);
        menubar.add(menu1);
        menubar.add(menu2);
        menubar.add(menu3);

        mainframe.setJMenuBar(menubar);
        
        xmlpanel.add(xmlArea);
        xmlpanel.add(scrollpane1=new JScrollPane(xmlArea)); 
        
        treepanel.add(treeArea);
        treepanel.add(scrollpane2=new JScrollPane(treeArea));  //把文本输入区添加到可滚动窗格  
            
        editpanel.setLayout(new FlowLayout());  
        editpanel.add(addnode);
        editpanel.add(delnode);
        editpanel.add(chnode);
        
        leftpanel.setLayout( new BorderLayout());
        leftpanel.add(jLabel1,BorderLayout.NORTH);
        leftpanel.add(xmlpanel,BorderLayout.CENTER);
        leftpanel.add(editpanel,BorderLayout.SOUTH);
        
        rightpanel.setLayout(new BorderLayout());
        rightpanel.add(jLabel2,BorderLayout.NORTH);
        rightpanel.add(treepanel,BorderLayout.CENTER);
        
        contentPane.setLayout( new FlowLayout());
        contentPane.add(leftpanel);
        contentPane.add(rightpanel);
        
        mainframe.getContentPane().add(contentPane);
        mainframe.setLocation(200,150);
        mainframe.setSize(new Dimension(530,355));
       // mainframe.setResizable(false);  
	    mainframe.show();               
        mainframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        
        ActionListener action=new ActionListener()   //为按键添加事件监听器
        {  
            public void actionPerformed(ActionEvent e)
            {
            	button_actionPerformed(e);
	        }
	    };
		
		addnode.addActionListener(action);
	    delnode.addActionListener(action);
	    chnode.addActionListener(action);
	    item1.addActionListener(action);
	    item2.addActionListener(action);
	    item3.addActionListener(action);
	    item4.addActionListener(action);
	    item5.addActionListener(action);
	    item6.addActionListener(action);
	    item7.addActionListener(action);
	    item8.addActionListener(action);
	 }
	 
	 public void createaddframe()
	 {
	 	final JFrame addframe=new JFrame("添加组员");
	 	JPanel addpanel=new JPanel();
	 	addpanel.setLayout(new FlowLayout());
	 	
	 	JLabel label=new JLabel("需添加的组员:");
	 	final JTextField text=new JTextField(7);
	 	addpanel.add(label);
	 	addpanel.add(text);
	 	
	 	JLabel jlbl1=new JLabel("  Id      ");
	 	final JTextField jtext1=new JTextField(10);
	 	addpanel.add(jlbl1);
	 	addpanel.add(jtext1);
	 	
	 	JLabel jlbl2=new JLabel("  Name");
	 	final JTextField jtext2=new JTextField(10);
	 	addpanel.add(jlbl2);
	 	addpanel.add(jtext2);
	 	
	 	JLabel jlbl3=new JLabel("  Sex   ");
	 	final JTextField jtext3=new JTextField(10);
	 	addpanel.add(jlbl3);
	 	addpanel.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.addmember(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);
				addframe.dispose();
			}
		});
		
        JButton cancel=new JButton("取消");
        cancel.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{
				addframe.dispose();
			}
		});
        addpanel.add(confirm);
        addpanel.add(cancel);
        
	 	addframe.getContentPane().add(addpanel);	 	
	 	addframe.setSize(new Dimension(210,180));
	 	addframe.setLocation(320,200);
	 	addframe.setVisible(true);
	 	addframe.setResizable(false);
	 }
	 
	 public void createdelframe()
	 {
	 	final JFrame delframe=new JFrame("删除组员");
	 	JPanel delpanel=new JPanel();
	 	delpanel.setLayout(new FlowLayout());
	 	JLabel label=new JLabel("输入需删除的组员:     ");
	 	final JTextField text=new JTextField(12);
	 	delpanel.add(label);
	 	delpanel.add(text);
	 	JButton confirm=new JButton("确定");
        confirm.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{
				group= new GroupDOMParser(filename);
     		    group.delmember(newdoc,text.getText());
     		    group.traverse(group.document);
     		    final DefaultTreeModel treemodel=new DefaultTreeModel(group.rootNode);
      	        final JTree tree=new JTree(treemodel);
      	        scrollpane2.setViewportView(tree);
      	        delframe.dispose();
			}
		});
		
		JButton cancel=new JButton("取消");
        cancel.addActionListener(new ActionListener()
        {
			public void actionPerformed(ActionEvent e)
			{
				delframe.dispose();
			}
		});
        delpanel.add(confirm);
        delpanel.add(cancel);
		delframe.getContentPane().add(delpanel);	 	
	 	delframe.setSize(new Dimension(180,130));
	 	delframe.setLocation(320,200);
	 	delframe.setVisible(true);
	 	delframe.setResizable(false);
	 }

⌨️ 快捷键说明

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