JDOM.java
package Ex_5;
import java.io.FileWriter;
import java.io.IOException;
import java.util.List;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
@SuppressWarnings("unused")
public class JDOM {
private Document docwriter,docreader;
static private Element root = new Element("留言列表");
private Element rootReader;
public Element getRoot(){
return this.rootReader;
}
public Document getDoc(){
return this.docreader;
}
private SAXBuilder builder;
public JDOM() throws Exception{
builder = new SAXBuilder();
docwriter = new Document();
docwriter.setRootElement(root);
}
public void JDOMWriter() throws Exception{
JDOMReader();
List<?> list = rootReader.getChildren();
int size = list.size();
if(size>0)
{
for(int i = 0;i<list.size();i++){
String []data = new String[5];
Element message = (Element)list.get(i);
data[0] = message.getAttributeValue("编号");
data[1] = ((Element)message.getChildren().get(0)).getValue();
data[2] = ((Element)message.getChildren().get(1)).getValue();
data[3] = ((Element)message.getChildren().get(2)).getValue();
data[4] = ((Element)message.getChildren().get(3)).getValue();
addData(data[0],data[1],data[2],data[3],data[4]);
//Form.tableModel.addRow(data);
}
return;
}
// Element stu = new Element("留言");
// stu.setAttribute("编号", "1");
// Element title = new Element("标题");
// title.addContent("今晚有约");
// stu.addContent(title);
// Element date = new Element("日期");
// date.addContent("2009-08-09");
// stu.addContent(date);
// Element name = new Element("留言人");
// name.addContent("张军");
// stu.addContent(name);
// Element content = new Element("内容");
// content.addContent("到电影院看电影");
// stu.addContent(content);
// root.addContent(stu);
// Element stu2 = new Element("留言");
// stu2.setAttribute("编号", "2");
// Element title2 = new Element("标题");
// title2.addContent("家庭作业");
// stu2.addContent(title2);
// Element date2 = new Element("日期");
// date2.addContent("2009-08-10");
// stu2.addContent(date2);
// Element name2 = new Element("留言人");
// name2.addContent("张军");
// stu2.addContent(name2);
// Element content2 = new Element("内容");
// content2.addContent("编程实现一个留言管理系统。增加、修改、删除、查阅留言功能");
// stu2.addContent(content2);
// root.addContent(stu2);
// XMLOutputter outputter = new XMLOutputter();
// Format format = outputter.getFormat();
// format.setEncoding("GB2312");
// format.setIndent(" ");
// outputter.setFormat(format);
// outputter.output(docwriter, new FileWriter(".\\myxml.xml"));
}
public void JDOMReader() throws Exception{
docreader = builder.build(".\\myxml.xml");
rootReader = docreader.getRootElement();
}
public void delData(String id) throws Exception
{
JDOMReader();
List<?> list1 = rootReader.getChildren();
for(int i = 0;i<list1.size();i++)
{
int tmp = Integer.parseInt(id);
System.out.println(tmp);
Element message = (Element)list1.get(i);
if(message.getAttributeValue("编号").equals(id))
{
System.out.println(message.getValue());
rootReader.removeContent(message);
}
}
XMLOutputter outputter = new XMLOutputter();
Format format = outputter.getFormat();
format.setEncoding("GB2312");
format.setIndent(" ");
outputter.setFormat(format);
outputter.output(docreader, new FileWriter(".\\myxml.xml"));
}
public void addData(String id,String title,String date,String name,String content) throws Exception{
Element stu = new Element("留言");
stu.setAttribute("编号", id);
Element title1 = new Element("标题");
title1.addContent(title);
stu.addContent(title1);
Element date1 = new Element("日期");
date1.addContent(date);
stu.addContent(date1);
Element name1 = new Element("留言人");
name1.addContent(name);
stu.addContent(name1);
Element content1 = new Element("内容");
content1.addContent(content);
stu.addContent(content1);
root.addContent(stu);
XMLOutputter outputter = new XMLOutputter();
Format format = outputter.getFormat();
format.setEncoding("GB2312");
format.setIndent(" ");
outputter.setFormat(format);
outputter.output(docwriter, new FileWriter(".\\myxml.xml"));
}
public void selectData(int i){
switch(i)
{
case 1:
break;
case 2:
break;
case 3:
break;
default:
break;
}
}
}
Form.java
package Ex_5;
import java.awt.Color;
import javax.swing.*;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.table.TableColumnModel;
import javax.swing.table.TableModel;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.List;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
import java.awt.event.WindowListener;
import org.jdom.Document;
import org.jdom.Element;
import org.jdom.JDOMException;
import org.jdom.input.SAXBuilder;
import org.jdom.output.Format;
import org.jdom.output.XMLOutputter;
@SuppressWarnings({ "unused", "serial" })
public class Form extends JFrame{
private static final int DISPOSE_ON_CLOSE = 0;
private JFrame f;
private JScrollPane tablePanel;
private JLabel person,title,content,date;
private JTextField perTxt,titleTxt,contentTxt,dateTxt;
private JButton addBtn,delBtn,updBtn,selBtn;
static public JTable table;
static public DefaultTableModel tableModel;
private JDOM jdom;
static public int i = 1;
private List<?> list;
public void addListener() {
// TODO Auto-generated method stub
selBtn.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
try {
select();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}});
addBtn.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
try {
jdom.JDOMReader();
} catch (Exception e3) {
// TODO Auto-generated catch block
e3.printStackTrace();
}
list = jdom.getRoot().getChildren();
int id = list.size()+1;
try {
jdom.addData(String.valueOf(id), titleTxt.getText(), dateTxt.getText(), perTxt.getText(), contentTxt.getText());
} catch (Exception e2) {
// TODO Auto-generated catch block
e2.printStackTrace();
}
try {
update();
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
perTxt.setText("");
titleTxt.setText("");
contentTxt.setText("");
}
@Override
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}});
updBtn.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
tableModel.setRowCount(0);
try {
update();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}});
table.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
int row = table.getSelectedRow();
if(row>=0)
{
String str0 = table.getValueAt(row, 0).toString();
String str1 = table.getValueAt(row, 1).toString();
String str2 = table.getValueAt(row, 2).toString();
String str3 = table.getValueAt(row, 3).toString();
String str4 = table.getValueAt(row, 4).toString();
perTxt.setText(str3);
titleTxt.setText(str1);
contentTxt.setText(str4);
}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}});
delBtn.addMouseListener(new MouseListener(){
@Override
public void mouseClicked(MouseEvent arg0) {
// TODO Auto-generated method stub
int sel = table.getSelectedRow();
//int sel = table.getSelectedColumn();
TableColumnModel tcm = table.getColumnModel();
try {
jdom.JDOMReader();
list = jdom.getRoot().getChildren();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
if(list.size()>0 && sel>=0)
{
String first = (String) tableModel.getValueAt(sel, 0);
try {
jdom.delData(first);
//update();
tableModel.removeRow(sel);
//jdom.JDOMWriter();
update();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
//((JTable) tcm).sizeColumnsToFit(-1);
perTxt.setText("");
//dateTxt.setText("");
titleTxt.setText("");
contentTxt.setText("");
}
else
{return;}
}
@Override
public void mouseEntered(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseExited(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mousePressed(MouseEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void mouseReleased(MouseEvent arg0) {
// TODO Auto-generated method stub
}});
}
public void update() throws Exception{
tableModel.setRowCount(0);// 清除原有行
//jdom.JDOMWriter();
jdom.JDOMReader();
list = jdom.getRoot().getChildren();
for(int i = 0;i<list.size();i++){
String []data = new String[5];
Element message = (Element)list.get(i);
data[0] = message.getAttributeValue("编号");
data[1] = ((Element)message.getChildren().get(0)).getValue();
data[2] = ((Element)message.getChildren().get(1)).getValue();
data[3] = ((Element)message.getChildren().get(2)).getValue();
data[4] = ((Element)message.getChildren().get(3)).getValue();
tableModel.addRow(data);
}
}
public void select() throws Exception{
//tableModel.setRowCount(0);// 清除原有行
//jdom.JDOMWriter();
jdom.JDOMReader();
list = jdom.getRoot().getChildren();
tableModel.setRowCount(0);
for(int i = 0;i<list.size();i++){
String []data = new String[5];
Element message = (Element)list.get(i);
data[0] = message.getAttributeValue("编号");
data[1] = ((Element)message.getChildren().get(0)).getValue();
data[2] = ((Element)message.getChildren().get(1)).getValue();
data[3] = ((Element)message.getChildren().get(2)).getValue();
data[4] = ((Element)message.getChildren().get(3)).getValue();
String _title = titleTxt.getText();
String _name = perTxt.getText();
String _content = contentTxt.getText();
if((_title.equals(data[1]))||(_name.equals(data[3]))||(_content.equals(data[4])))
{
tableModel.addRow(data);
perTxt.setText(data[3]);
titleTxt.setText(data[1]);
contentTxt.setText(data[4]);
}
}
}
//@SuppressWarnings("static-access")
public void init() throws Exception {
// TODO Auto-generated method stub
f = new JFrame("留言信息综合查询系统");
f.setLayout(null);
f.setBackground(Color.BLUE);
//f.setLocationRelativeTo(null);
person = new JLabel("留言人");
person.setBounds(64,14,52,14);
perTxt = new JTextField();
perTxt.setBounds(120, 13, 140, 20);
title = new JLabel("标题");
title.setBounds(270, 14, 40, 14);
titleTxt = new JTextField();
titleTxt.setBounds(315, 13, 210, 20);
content = new JLabel("内容");
content.setBounds(64, 50, 162, 14);
contentTxt = new JTextField();
contentTxt.setBounds(120, 48, 340, 20);
addBtn = new JButton("增加");
addBtn.setBounds(470, 46, 70, 25);
delBtn = new JButton("删除");
delBtn.setBounds(150, 320, 70, 25);
updBtn = new JButton("更新");
updBtn.setBounds(230, 320, 70, 25);
date = new JLabel("日期");
date.setBounds(310, 325, 50, 14);
dateTxt = new JTextField();
dateTxt.setBounds(340, 323, 140, 20);
Calendar cal = Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yy-MM-dd");
System.out.println(sdf.format(cal.getTime()));
dateTxt.setText(sdf.format(cal.getTime()));
dateTxt.setEditable(false);
selBtn = new JButton("查询");
selBtn.setBounds(490, 320, 70, 25);
table = new JTable(new DefaultTableModel(new Object[][] { {
"编号","标题","日期","留言人","内容"} },new String[]{"编号","标题","日期","留言人","内容"}));
//table.addColumn(aColumn);
//table.setBounds(20, 80, 555, 200);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION); //单选
table.setSelectionBackground(Color.YELLOW);
table.setSelectionForeground(Color.RED);
tableModel = (DefaultTableModel) table.getModel();
tablePanel = new JScrollPane(table);
tablePanel.setBounds(20, 80, 555, 200);
table.setFillsViewportHeight(true);
tablePanel.setViewportView(table); //支持滚动
update();
f.add(person);
f.add(perTxt);
f.add(title);
f.add(titleTxt);
f.add(content);
f.add(contentTxt);
f.add(addBtn);
f.add(delBtn);
f.add(updBtn);
f.add(date);
f.add(dateTxt);
f.add(selBtn);
f.add(tablePanel);
f.addWindowListener(new WindowListener(){
@Override
public void windowActivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowClosed(WindowEvent arg0) {
// TODO Auto-generated method stub
System.exit(0);
}
@Override
public void windowClosing(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeactivated(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowDeiconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowIconified(WindowEvent arg0) {
// TODO Auto-generated method stub
}
@Override
public void windowOpened(WindowEvent arg0) {
// TODO Auto-generated method stub
}});
//this.setLocationRelativeTo(f); ///简单的居中
f.setResizable(false);
f.setSize(600, 400);
f.setVisible(true);
}
public Form() throws Exception{
jdom = new JDOM();
this.setLocationRelativeTo(null);
this.init();
this.addListener();
jdom.JDOMWriter();
}
}
Test.java
package Ex_5;
public class Test {
/**
* @param args
* @throws Exception
*/
@SuppressWarnings("unused")
public static void main(String[] args) throws Exception {
// TODO Auto-generated method stub
Form form = new Form();
}
}