📄 groupgui.java
字号:
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 + -