jlabels 未在 jlabels 中显示结果

Posted

技术标签:

【中文标题】jlabels 未在 jlabels 中显示结果【英文标题】:jlabels isn't showing the results in the jlabels 【发布时间】:2016-04-04 10:07:33 【问题描述】:
try 
  Statement stmt = conn.createStatement();
  String sql = "CREATE OR REPLACE FUNCTION search_admin(p_username IN varchar2) \n"+
               "RETURN SYS_REFCURSOR \n" +
               "AS \n" +
               "my_cursor SYS_REFCURSOR; \n" +
               "BEGIN \n" +
               "OPEN my_cursor FOR SELECT * FROM login where username=p_username; \n" +
               "RETURN my_cursor; \n" +
               "END; \n";

  stmt.execute(sql);

  CallableStatement cstmt = conn.prepareCall("BEGIN " + "? :=search_admin(?); " + "END; ");
  cstmt.registerOutParameter(1, OracleTypes.CURSOR);
  cstmt.setString(2, UserText3.getText());
  cstmt.execute();

  rs = (ResultSet) cstmt.getObject(1);

  if(!rs.isBeforeFirst()) 
    JOptionPane.showMessageDialog(null, "Invalid Username");
  
  else 
    DeleteTable.setModel(DbUtils.resultSetToTableModel(rs));
    DeleteTable.setEnabled(false);
  

  while(rs.next()) 
    NameLabel.setText(rs.getString("name"));
    UsernameLabel.setText(rs.getString("username"));
    PasswordLabel.setText(rs.getString("password"));
  
 catch(Exception e) 
  JOptionPane.showMessageDialog(null, e);

我想在jlabels 中显示用户名、名称、密码,但它没有显示...我在名为search_admin 的数据库中有一个存储函数。当我执行程序时没有显示错误,但jlabels 没有显示resultset 数据。

【问题讨论】:

以下行可能耗尽了 ResultSet :DbUtils.resultSetToTableModel(rs),所以你没有什么可读的了。 那有什么解决办法? 【参考方案1】:

这一行似乎耗尽了 ResultSet :

DbUtils.resultSetToTableModel(rs)

假设它返回TableModel 的实例,您可以通过这种方式浏览其内容,而不是再次尝试读取ResultSet

        for(int i =0;i<model.getRowCount();i++)

            for(int j=0;j<model.getColumnCount();j++)

                System.out.println(model.getValueAt(i, j));
            
        

【讨论】:

以上是关于jlabels 未在 jlabels 中显示结果的主要内容,如果未能解决你的问题,请参考以下文章

刷新JLabel图标图像

jLabel 不显示

jpanel 中 jlabels 的搜索栏

在 JLabel 中显示 BMP

在 JLabel 中显示来自 URL 的动画 .gif

如何在 JLabel 中设置填充