Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/360.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
带有数据库输出的Java更新JLabel_Java_Database_Jdbc_Io_Jlabel - Fatal编程技术网

带有数据库输出的Java更新JLabel

带有数据库输出的Java更新JLabel,java,database,jdbc,io,jlabel,Java,Database,Jdbc,Io,Jlabel,所以我要做的是更新一个JLabel,它将表示存储在数据库中的文件数量 我将使用JDBC将我的Java应用程序与我的数据库(Oracle)通信,并将SQL语句传递给我的数据库以返回输出,在这种情况下,它将是:SELECT COUNT(File_ID)FROM Files这将给出一个输出,比如说50 所以现在我想更新我的Jlabel,我必须显示输出,在本例中,它的读数为50 我知道如何使用数据库中的结果更新JTable,如下所示: try { String query = "SQL STAT

所以我要做的是更新一个JLabel,它将表示存储在数据库中的文件数量

我将使用JDBC将我的Java应用程序与我的数据库(Oracle)通信,并将SQL语句传递给我的数据库以返回输出,在这种情况下,它将是:
SELECT COUNT(File_ID)FROM Files这将给出一个输出,比如说50

所以现在我想更新我的Jlabel,我必须显示输出,在本例中,它的读数为50

我知道如何使用数据库中的结果更新JTable,如下所示:

try {
    String query = "SQL STATEMENT GOES HERE";
    pat = conn.prepareStatement(query);
    rs = pat.executeQuery();
    myTable.setModel(DbUtils.resultSetToTableModel(rs));
}catch (Exception e) {
    e.printStackTrace();
}
但是,我从未使用输出来更新Jlabel,如果您对如何实现这一点有任何建议或建议,将不胜感激。谢谢

只需使用label.setText()

编辑:我没有找到jlabel的等效TextModel(它存在于其他组件中,如JTextField)。对你来说,通过一个“模型”是至关重要的,还是设置一个“50”就足够了

要提取计数,请执行以下操作:

int count=0;
pat = conn.prepareStatement("SELECT COUNT ..."); // complete as required
ResultSet rs=pat.executeQuery();// assuming it's "SELECT COUNT..."
if(rs.next())
  count=rs.getInt(1);

?是的,所以我的问题是如何更新字符串以存储数据库的输出?我知道如何简单地设置JLabel文本。我的问题比这更深入一点。我需要弄清楚如何从我的数据库(它以结果集的形式出现(使用DBUtils))中获取转换为数据类型字符串的输出,然后存储在字符串变量中。然后我就可以使用label.setText(String);您的结果集应该包含一个整型列,因此您将有“int count=rs.getInt(1)”。这应该很容易转换为文本,例如setText(“+count”),首先让我说声谢谢你花时间来处理这个问题。我做了一些更改并产生了以下代码:
try{String query=“SELECT COUNT(FILE_ID)FROM FILES WHERE USER_ID=1”;pat=conn.prepareStatement(query);rs=pat.executeQuery();if(rs.next())output=rs.getInt(1);lblFiles.setText(String.valueOf(output));}catch(异常e){e.printStackTrace()}
然而,我仍然收到一些NullPointerException(它似乎在第行中断:
lblFiles.setText(String.valueOf(output));
我觉得你的代码还行。我的第一个怀疑是lblFiles是null-你能检查一下吗?你能告诉我你的“output”是声明为“int count”还是“Integer count”吗(后者也可以为null)lblFiles看起来不是null,它只包含一个空字符串(等待更新),并且输出被声明为
int output=0;