Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.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 如何将返回值转换为标签值_Java_Swing_Jlabel - Fatal编程技术网

Java 如何将返回值转换为标签值

Java 如何将返回值转换为标签值,java,swing,jlabel,Java,Swing,Jlabel,您好,我已经编写了这段代码,我在这段代码中尝试的是获取方法到JavaSwing标签的返回值 这是我的密码: public static int search(java.util.Date date) { Connection conn = null; ResultSet rs = null; Statement st = null; int b=0; try {

您好,我已经编写了这段代码,我在这段代码中尝试的是获取方法到JavaSwing标签的返回值

这是我的密码:

public static int search(java.util.Date date)
    {

         Connection conn = null;
         ResultSet rs = null;
         Statement st = null;
           int b=0;
          try
          {

          conn=DBMgr.openConnection();      
          DateFormat formatter = new SimpleDateFormat("yyyy-MM-dd");
          String dateStr=formatter.format(date);  
          System.out.println("date"+dateStr);
          String sqlQuery = "select sum(time_spend) as Time_Billed_Per_Day,datetime from time_entry  where datetime like '"+dateStr+"%' ";


              st = conn.createStatement();
               rs = st.executeQuery(sqlQuery); 

               while(rs.next())
              {

                      b = rs.getInt(1);
                     System.out.println("BILL of the date u specified is:"+b);         
               }
        }
        catch(SQLException ex) 
        {
             System.out.println(ex.toString());  
        }
        finally
        {
            try
            {

                if(rs!=null)
                    rs.close();
                if(conn!=null)
                    DBMgr.closeConnection(conn);
            }
           catch(Exception ex)
           {
           }

        }
      return b;
      }
这是代码:

JLabel lblTimeBilledDayText = new JLabel( "00:45:20" , JLabel.RIGHT);
pnlOuter.add(lblTimeBilledDayText);
我想得到方法的返回值,而不是“00:45:20”

怎么做?

试试这个

JLabel lblTimeBilledDayText = new JLabel(String.valueOf(search(date)) , JLabel.RIGHT);
pnlOuter.add(lblTimeBilledDayText);

如果b是返回的int值,那么

JLabel lblTimeBilledDayText = new JLabel(new String(Integer.toString(b)), JLabel.RIGHT);
pnlOuter.add(lblTimeBilledDayText);
也就是说,您不应该在同一线程上混合数据库查询和Swing对象修改/创建。Swing对象必须在事件调度线程(EDT)上处理,并且不应在EDT上执行长时间运行的操作(例如数据库查询),因为在操作发生时UI将被阻止/无响应


更多信息,请参阅教程。典型的解决方案是使用
SwingWorker
在工作线程上执行查询。查询完成后,
SwingWorker
有一个简单的机制可以在正确的线程上更新Swing组件。

哪一个是要放在标签中的
字符串
?您的方法正在返回一个
int
…返回哪个方法的值?由于该参数(“00:45:20”)是一个字符串,您将需要一个返回字符串的方法来传递该参数。为了更快地获得更好的帮助,请发布一个。问题是返回值在处没有For。您需要编写自己的格式化程序,以获得所需字符串格式的持续时间。其余的都很简单,不需要包装
new String()
,因为
String
是不可变的。请考虑使用
String.valueOf
,而不是字符串串联
+“”
,这要昂贵得多。@GuillaumePolet感谢您的指针。我更新了答案。
int searchResult = search( date);
// convert to String. You might want to opt for a method 
// which offers more formatting options
String searchResultAsString = Integer.toString( searchResult );

JLabel lblTimeBilledDayText = new JLabel( searchResultAsString , JLabel.RIGHT);
pnlOuter.add(lblTimeBilledDayText);