2012-08-05 89 views
0

我需要使用帶背景的空間JLabel。這種背景下它是 聊天室狀態正是我想要的方式來改變這種顏色,圖像,循環 我做酒店預訂房間和其他一些服務,我不知道如何做到這一點如何在循環中添加帶有背景圖像的JLabel

private void checkstatus() { 
    jPanel2.removeAll(); 
    int dx = 1; 
    ResultSet Rroom; 
    Rroom = DB.RunQuery("Select * From rooms"); 

    final ImageIcon imageIcon = new ImageIcon("c://Des.jpg"); 

    try { 
     while(Rroom.next()) { 
      String Rstatus = Rroom.getString(3); 
      rou+=40; 

      Label xlabel; 
      xlabel = new Label("Label 1",Label.CENTER); 
      Font bigFont = new Font("SanSerif", Font.BOLD, 11); 
      xlabel.setFont(bigFont); 

      if(Rstatus.equals("Busy")) 
       xlabel.setBackground(Color.red); 
      else if (Rstatus.equals("Test")) 
       xlabel.setBackground(Color.CYAN); 
      else 
       xlabel.setBackground(Color.green); 

      jPanel2.add(xlabel); 
      xlabel.setForeground(Color.black); 
      xlabel.setBounds(new Rectangle(rou, rou2, 35, 35)); 
      xlabel.setText("1"); 

      if(rou==365) { 
       rou=-35; 
       // El 2rtfa3 
       rou2 +=40; 
      } 

      dx++; 
     } // end of loop 

     rou = -35; // for new check 
     rou2=10; // for new check 

    }// try 
    catch (SQLException e) { 
    } 
} 
+0

當您發佈代碼時,請確保它使用一致的格式正確縮進!這使我們更容易閱讀,因此可以幫助您。 – Jamie 2012-08-05 17:37:29

回答

1

要顯示帶有圖標的JLabel,您應該使用JLabel#setIcon(Icon)

xlabel.setIcon(new ImageIcon(yourImage)); 
+0

錯誤(635,19):無法找到方法setIcon(javax.swing.ImageIcon) – 2012-08-05 17:34:33

+0

再次查看您的代碼後,我注意到您使用Label而不是JLabel。我回答了你的問題,這是關於JLabel的問題。你實際使用哪個?如果你實際上使用java.awt.Label,那將會導致沒有setIcon方法出現。要將圖像添加到awt Label,您需要做更多的工作,所以我建議儘可能使用JLabel。 – Vulcan 2012-08-05 17:42:00

+0

你是對的,但請重新編碼它和過去 – 2012-08-05 17:52:12

1

您可以使用

setIcon(Icon icon) 

JLabel類的方法。