📄 www_jieesoft_com 主题回顾 - jtree和数据库的一点小bug,请指教,谢谢.htm
字号:
TEXT-DECORATION: underline
}
.topictitle {
FONT-WEIGHT: bold; FONT-SIZE: 11px
}
A.topictitle:link {
TEXT-DECORATION: none
}
A.topictitle:visited {
TEXT-DECORATION: none
}
A.topictitle:hover {
TEXT-DECORATION: underline
}
.name {
FONT-SIZE: 11px
}
.postdetails {
FONT-SIZE: 10px
}
.postbody {
FONT-SIZE: 12px; LINE-HEIGHT: 18px
}
A.postlink:link {
TEXT-DECORATION: none
}
A.postlink:visited {
TEXT-DECORATION: none
}
A.postlink:hover {
TEXT-DECORATION: underline
}
.code {
BORDER-RIGHT: #d1d7dc 1px solid; BORDER-TOP: #d1d7dc 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #d1d7dc 1px solid; COLOR: #006600; BORDER-BOTTOM: #d1d7dc 1px solid; FONT-FAMILY: Courier, 'Courier New', sans-serif; BACKGROUND-COLOR: #fafafa
}
.quote {
BORDER-RIGHT: #d1d7dc 1px solid; BORDER-TOP: #d1d7dc 1px solid; FONT-SIZE: 11px; BORDER-LEFT: #d1d7dc 1px solid; COLOR: #444444; LINE-HEIGHT: 125%; BORDER-BOTTOM: #d1d7dc 1px solid; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #fafafa
}
.copyright {
FONT-SIZE: 10px; COLOR: #444444; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; LETTER-SPACING: -1px
}
A.copyright {
COLOR: #444444; TEXT-DECORATION: none
}
A.copyright:hover {
TEXT-DECORATION: underline
}
INPUT {
FONT: 11px Verdana, Arial, Helvetica, sans-serif
}
TEXTAREA {
FONT: 11px Verdana, Arial, Helvetica, sans-serif
}
SELECT {
FONT: 11px Verdana, Arial, Helvetica, sans-serif
}
INPUT.post {
BACKGROUND-COLOR: #ffffff
}
TEXTAREA.post {
BACKGROUND-COLOR: #ffffff
}
SELECT {
BACKGROUND-COLOR: #ffffff
}
INPUT {
TEXT-INDENT: 2px
}
INPUT.button {
FONT-SIZE: 11px; FONT-FAMILY: Verdana, Arial, Helvetica, sans-serif; BACKGROUND-COLOR: #efefef
}
INPUT.mainoption {
FONT-WEIGHT: bold; BACKGROUND-COLOR: #fafafa
}
INPUT.liteoption {
FONT-WEIGHT: normal; BACKGROUND-COLOR: #fafafa
}
.helpline {
BORDER-TOP-STYLE: none; BORDER-RIGHT-STYLE: none; BORDER-LEFT-STYLE: none; BACKGROUND-COLOR: #dee3e7; BORDER-BOTTOM-STYLE: none
}
</STYLE>
<META content="MSHTML 6.00.2800.1106" name=GENERATOR></HEAD>
<BODY><SPAN class=gen><A name=top></A></SPAN>
<TABLE class=forumline cellSpacing=1 cellPadding=3 width="100%" border=0>
<TBODY>
<TR>
<TH class=thCornerL width="22%" height=26>作者</TH>
<TH class=thCornerR>正文</TH></TR>
<TR>
<TD class=row1 vAlign=top align=left width="22%"><SPAN class=name><A
name=""></A><B>一等奖</B></SPAN></TD>
<TD class=row1 vAlign=top height=28>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%"><IMG title=文章 height=9 alt=文章
src="www_jieesoft_com 主题回顾 - JTree和数据库的一点小bug,请指教,谢谢.files/icon_minipost.gif"
width=12 border=0><SPAN class=postdetails>时间: 周二 5 04, 2004 10:18
上午<SPAN class=gen> </SPAN> 标题: </SPAN></TD></TR>
<TR>
<TD colSpan=2>
<HR>
</TD></TR>
<TR>
<TD colSpan=2><SPAN class=postbody>谢谢老大
<BR>我将继续努力!</SPAN></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=spaceRow colSpan=2 height=1><IMG height=1 alt=""
src="www_jieesoft_com 主题回顾 - JTree和数据库的一点小bug,请指教,谢谢.files/spacer.gif"
width=1></TD></TR>
<TR>
<TD class=row2 vAlign=top align=left width="22%"><SPAN class=name><A
name=""></A><B>alex</B></SPAN></TD>
<TD class=row2 vAlign=top height=28>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%"><IMG title=文章 height=9 alt=文章
src="www_jieesoft_com 主题回顾 - JTree和数据库的一点小bug,请指教,谢谢.files/icon_minipost.gif"
width=12 border=0><SPAN class=postdetails>时间: 周一 5 03, 2004 10:19
上午<SPAN class=gen> </SPAN> 标题: </SPAN></TD></TR>
<TR>
<TD colSpan=2>
<HR>
</TD></TR>
<TR>
<TD colSpan=2><SPAN class=postbody>最简单的是修改数据库之后,画面刷新一次。
<BR>考虑到效率问题,当数据库更改“湖南”为“香港”的时候,写一条语句把画面上的相应值也改掉。
<BR>NullPointException是你程序里有问题,单步调试就会知道。这样的问题不是逻辑上的错误,完全是你程序写的不对。你应该试着自己调试解决,才能提高比较快。</SPAN></TD></TR></TBODY></TABLE></TD></TR>
<TR>
<TD class=spaceRow colSpan=2 height=1><IMG height=1 alt=""
src="www_jieesoft_com 主题回顾 - JTree和数据库的一点小bug,请指教,谢谢.files/spacer.gif"
width=1></TD></TR>
<TR>
<TD class=row1 vAlign=top align=left width="22%"><SPAN class=name><A
name=""></A><B>一等奖</B></SPAN></TD>
<TD class=row1 vAlign=top height=28>
<TABLE cellSpacing=0 cellPadding=0 width="100%" border=0>
<TBODY>
<TR>
<TD width="100%"><IMG title=文章 height=9 alt=文章
src="www_jieesoft_com 主题回顾 - JTree和数据库的一点小bug,请指教,谢谢.files/icon_minipost.gif"
width=12 border=0><SPAN class=postdetails>时间: 周日 5 02, 2004 5:44
下午<SPAN class=gen> </SPAN> 标题: </SPAN></TD></TR>
<TR>
<TD colSpan=2>
<HR>
</TD></TR>
<TR>
<TD colSpan=2><SPAN class=postbody>问题解决了 <BR>还是谢谢大家 <BR>为了实现资源共享
<BR>我把修改的代码贴出来 <BR><BR>import java.awt.*; <BR>import javax.swing.*;
<BR>import java.sql.*; <BR>import java.awt.event.*; <BR>import
javax.swing.event.*; <BR>import javax.swing.text.*; <BR>import
javax.swing.tree.*; <BR><BR>public class addNativeplace extends
JFrame implements ActionListener,
<BR>TreeModelListener,TreeSelectionListener <BR>{ <BR>public static
void main(String args[]) <BR>{ <BR>new addNativeplace(); <BR>}
<BR><BR><BR>private JButton
addButton,updateButton,deleteButton,exitButton; <BR>private
Connection con1; <BR>private Statement state1,state2; <BR>private
ResultSet rst1,rst2; <BR>private JTree tree; <BR>private
DefaultTreeModel treeModel=null; <BR>private DefaultMutableTreeNode
root; <BR>private JScrollPane scroller1; <BR><BR>public
addNativeplace() <BR>{ <BR>super("添加籍贯"); <BR>Container
c=getContentPane(); <BR>c.setLayout(null); <BR>connect_db();
<BR><BR>addButton=new JButton("添加籍贯");
<BR>addButton.addActionListener(this);
<BR><BR>addButton.setBounds(220,20,100,30); <BR>c.add(addButton);
<BR><BR>updateButton=new JButton("修改籍贯");
<BR>updateButton.addActionListener(this);
<BR>updateButton.setEnabled(false);
<BR>updateButton.setBounds(220,70,100,30); <BR>c.add(updateButton);
<BR><BR>deleteButton=new JButton("删除籍贯");
<BR>deleteButton.setEnabled(false);
<BR>deleteButton.addActionListener(this);
<BR>deleteButton.setBounds(220,120,100,30); <BR>c.add(deleteButton);
<BR><BR>exitButton=new JButton("退出");
<BR>exitButton.addActionListener(this);
<BR>exitButton.setBounds(245,170,60,30); <BR>c.add(exitButton);
<BR><BR><BR><BR>root=new DefaultMutableTreeNode("籍贯"); <BR>tree=new
JTree(root); <BR><BR>tree.setEditable(true);
<BR>tree.addMouseListener(new MouseHandle());
<BR>tree.addTreeSelectionListener(this);
<BR>treeModel=(DefaultTreeModel)tree.getModel();
<BR>treeModel.addTreeModelListener(this); <BR>scroller1=new
JScrollPane(); <BR>scroller1.setViewportView(tree);
<BR>scroller1.setBounds(10,10,150,200); <BR>c.add(scroller1);
<BR><BR>try <BR>{ <BR>String query1="SELECT nativeplaceName FROM
nativeplace"; <BR>rst1=state1.executeQuery(query1);
<BR><BR><BR>while(rst1.next()) <BR>{ <BR><BR>String
rst1string=rst1.getString(1); <BR>DefaultMutableTreeNode
newnode1=new DefaultMutableTreeNode(rst1string);
<BR>root.add(newnode1); <BR><BR>treeModel.reload(); <BR>} <BR>}
<BR>catch(SQLException sqlex) <BR>{ <BR>sqlex.printStackTrace();
<BR>} <BR><BR>addWindowListener(new WindowAdapter(){ <BR>public void
windowClosing(WindowEvent e) <BR>{ <BR>//System.exit(0); <BR><BR>//
close_db(); <BR>setVisible(false); <BR>} <BR>} <BR>);
<BR><BR><BR><BR>setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
<BR>setBounds(200,200,350,250); <BR>setVisible(true);
<BR><BR><BR><BR><BR>} <BR><BR><BR>public void connect_db() <BR>{
<BR><BR>try <BR>{ <BR>Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
<BR>} <BR>catch(ClassNotFoundException e1) <BR>{
<BR>e1.printStackTrace(); <BR>} <BR><BR>try <BR>{
<BR>con1=DriverManager.getConnection("jdbc:odbc:空军国防生");
<BR>state1=con1.createStatement();
<BR>state2=con1.createStatement(); <BR><BR>}
<BR><BR>catch(SQLException e2) <BR>{ <BR>e2.printStackTrace(); <BR>}
<BR>} <BR><BR><BR><BR>public void actionPerformed(ActionEvent e)
<BR>{ <BR><BR><BR><BR>if(e.getSource()==addButton) <BR>{
<BR><BR>String s=JOptionPane.showInputDialog(addNativeplace.this,
<BR>"请输入要添加的籍贯名称","添加籍贯", <BR>JOptionPane.QUESTION_MESSAGE);
<BR>//怎样捕捉s为空? <BR>if(s!=null) <BR>{ <BR>DefaultMutableTreeNode
newNode= new DefaultMutableTreeNode(s); <BR><BR>int flag=1; <BR>try
<BR>{ <BR>String query2="SELECT nativeplaceName FROM nativeplace";
<BR>rst2=state2.executeQuery(query2); <BR>while(rst2.next()) <BR>{
<BR>String results=rst2.getString(1); <BR>if(results.equals(s))
<BR>{ <BR>flag=0; <BR>} <BR>} <BR><BR>if(flag==0) <BR>{
<BR>JOptionPane.showMessageDialog(addNativeplace.this,
<BR>"对不起,你输入的籍贯名称已经存在,请重新输入",
<BR>"籍贯输入错误",JOptionPane.ERROR_MESSAGE); <BR>} <BR><BR>if(flag==1)
<BR>{
<BR>treeModel.insertNodeInto(newNode,root,root.getChildCount());
<BR>String query="INSERT INTO nativeplace ("+ <BR>"nativeplaceName"+
<BR>") VALUES('"+s+"')"; <BR>state1.executeUpdate(query);
<BR>JOptionPane.showMessageDialog(addNativeplace.this,
<BR>"成功输入籍贯,请继续操作!","籍贯添加成功", <BR>JOptionPane.INFORMATION_MESSAGE);
<BR>} <BR><BR>} <BR>catch(SQLException sqle) <BR>{
<BR>sqle.printStackTrace(); <BR>} <BR>} <BR><BR><BR>}
<BR><BR><BR><BR>if(e.getSource()==updateButton) <BR>{ <BR>TreePath
treepath=tree.getSelectionPath(); <BR>DefaultMutableTreeNode
parentNode=(DefaultMutableTreeNode)(treepath.getLastPathComponent());
<BR>String s=JOptionPane.showInputDialog(addNativeplace.this,
<BR>"请输入要更改的籍贯名称","更改籍贯", <BR>JOptionPane.QUESTION_MESSAGE);
<BR>if(s!=null) <BR>{ <BR>DefaultMutableTreeNode newNode= new
DefaultMutableTreeNode(s);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -