我已经在Java Swing上工作了一段时间。我一直试图在第一帧中单击按钮时将记录插入第二帧。但到目前为止一直没有成功。 以下是单击thr按钮的代码。我得到 javaNullPointerException 错误。
private void submitActionPerformed(java.awt.event.ActionEvent evt) {
try{
Class.forName("com.mysql.jdbc.Driver");
Connection con = DriverManager.getConnection("jdbc:mysql://localhost:3306/kirty", "root", "11223344");
PreparedStatement ps = con.prepareStatement("select * from employee where id =? ");
String g = String.valueOf(ptf.getPassword());
ps.setInt(1, Integer.valueOf(g));
ResultSet rs = ps.executeQuery();
int count =0;
while (rs.next())
{
if ( String.valueOf((ptf.getPassword())).equals (rs.getString(1))&&(utf.getText()).equals (rs.getString(2)))
{
count =3;
break;
}
}
if (count == 3)
{
JOptionPane.showMessageDialog(new frame3(),"Welcome to Database " + (utf.getText()));
Database n = new Database();
frame3 b = new frame3();
n.setVisible(true);
this.setVisible(false);
DefaultTableModel model = (DefaultTableModel)n.tab1.getModel();
while(rs.next())
{
model.addRow(new String[]{rs.getString(1),rs.getString(2),rs.getString(3)});
}
con.close();
}
else{
JOptionPane.showMessageDialog(new frame3(), "User doesn't exist!","Error Message", JOptionPane.ERROR_MESSAGE);
con.close(); }
}
catch(Exception e)
{
JOptionPane.showMessageDialog(new frame3(), e , "Error Message" ,JOptionPane.ERROR_MESSAGE);
}
单击按钮后,如果提交了正确的信息,则会弹出第二帧,其中包含我已包含的表格,但该表格仍为空。我已经尝试了很多(虽然没有得到老师的帮助),但无法捕捉到问题。我没有对NetBeans生成的第二帧代码进行任何更改。正如我所说,我得到了javaNullPointer异常。另外,我想澄清一件事。 tab1是我在第二个类中声明的第二帧中插入的表。我可以使用“。”访问tab1吗?运算符与我已经完成的第二类对象。
符号如下:
* emplpoyee - 我的数据库中的表 *数据库 - 我的第二个类包含第二个框架,其中包括表格
*请理解我还没有完全掌握Swing的命令,我只是一个坚持基本步骤的首发。
答案 0 :(得分:0)
执行此操作的正确方法是在第二帧(可能是帧本身)中将某些内容作为第一帧中按钮上的活动的侦听器,或者更好的是,某些与视图无关的抽象实体一点都不这样,工作流程就是:
答案 1 :(得分:0)
您可以将所需的字段设为public和static,主要是类变量,也可以根据需要的事件,例如,如果单击按钮,将此变量更新为所需的值,然后在第二帧中将其称为 YourFirstFrame.YourClassVarinFirstFrame //现在做点什么