【发布时间】:2020-10-01 18:03:30
【问题描述】:
我在我的库中添加了rs2xml 和derby,它在开始时工作,但在为我的表添加了德比和刷新功能的连接后,JFrame 表单无法继续到下一个@987654324 @表单
这些是移动到下一个JFrame 的代码,但它不起作用但没有错误
int confirmed = JOptionPane.showConfirmDialog(null,
"Are you sure you want to Continue to Stock Table?",
"Confirm Button Message Box",
JOptionPane.YES_NO_OPTION);
if (confirmed == JOptionPane.YES_OPTION) {
try {
new InformationofCafe().setVisible(true);
this.setVisible(false);
} catch (SQLException ex) {
Logger.getLogger(Menu.class.getName()).log(Level.SEVERE, null, ex);
}
} else {
JOptionPane.showMessageDialog(Menu.this, "Cancelled");
}
这些是我希望得到的JFrame 表单中的代码,但它不会推进到JFrame 表单。
public class InformationofCafe extends javax.swing.JFrame {
Connection con;
Statement stmt;
ResultSet rs;
int cursorRow = 0;
public InformationofCafe() throws SQLException {
initComponents();
DoConnect();
update_table();
}
void update_table() throws SQLException {
rs=stmt.executeQuery("SELECT * FROM STOCK");
jTable.setModel(DbUtils.resultSetToTableModel(rs));
}
public Connection DoConnect() {
try {
String host ="jdbc:derby://localhost:1527//Downtown";
String uName ="miguel";
String uPass ="miguel";
con = DriverManager.getConnection(host, uName, uPass);
stmt = con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,
ResultSet.CONCUR_UPDATABLE );
String sql = "SELECT * FROM STOCK";
rs = stmt.executeQuery(sql);
rs.next();
int id_col = rs.getInt("ITEM");
String id = Integer.toString(id_col);
String description = rs.getString("DESCRIPTION");
String amount = rs.getString("AMOUNT");
TextItem.setText(id);
TextDescription.setText(description);
TextAmount.setText(amount);
update_table();
}
catch (SQLException err) {
JOptionPane.showMessageDialog(InformationofCafe.this,
err.getMessage());
}
return con;
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
new InformationofCafe().setVisible(true);
} catch (SQLException ex) {
Logger.getLogger(InformationofCafe.class.getName()).log(Level.SEVERE, null, ex);
}
}
});
}
我尝试了我所知道的一切。甚至在互联网上搜索了该做什么,但似乎找不到解决方案。我知道是logger.getlogger 中的try 和catch 导致了错误,我只是不知道如何解决它:(
这是错误日志
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at activity3.InformationofCafe.update_table(InformationofCafe.java:33)
at activity3.InformationofCafe.<init>(InformationofCafe.java:29)
at activity3.Menu.InformationActionPerformed(Menu.java:130)
at activity3.Menu.access$000(Menu.java:23)
at activity3.Menu$1.actionPerformed(Menu.java:62)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2348)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6533)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3324)
at java.awt.Component.processEvent(Component.java:6298)
at java.awt.Container.processEvent(Container.java:2236)
at java.awt.Component.dispatchEventImpl(Component.java:4889)
at java.awt.Container.dispatchEventImpl(Container.java:2294)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4888)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4525)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4466)
at java.awt.Container.dispatchEventImpl(Container.java:2280)
at java.awt.Window.dispatchEventImpl(Window.java:2746)
at java.awt.Component.dispatchEvent(Component.java:4711)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
at java.awt.EventQueue.access$500(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:709)
at java.awt.EventQueue$3.run(EventQueue.java:703)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:731)
at java.awt.EventQueue$4.run(EventQueue.java:729)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:76)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)
【问题讨论】:
-
我建议去掉
Logger并用ex.printStackTrace()替换它。 -
会尝试抓住留下来吗?
-
是的。在 catch 块内,只需写
ex.printStackTrace() -
是的 rs2xml,我的错
-
是否应该有一个导入来使用该代码?