2015-06-11 81 views
-4

我有這樣的代碼:添加圖片到JPanel的JLabel的內

import java.awt.BorderLayout; 
    import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import javax.swing.*; 

    public class Interface { 

     private JPanel panel; 
     private JPanel buttonPane; 
     private JLabel label; 
     private JLabel label2; 
     private JTextField textfield; 
     private JTextField textfield2; 
     private JTextField textfield3; 
     private JTextField textfield4; 
     private JTextField textfield5; 
     private JButton button; 
     private JButton button2; 
     private JButton button3; 
     private JButton button4; 
     private JButton button5; 
     private JButton button6; 

     public static void main(String[] args) { 
      new Interface(); 
     } 

     public Interface() { 
      JFrame frame = new JFrame("Vormen"); 
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
      frame.setSize(600, 300); 
      frame.setLocationRelativeTo(null); 

      panel = new JPanel(); 
      buttonPane = new JPanel(); 
      button = new JButton("cirkel"); 
      button.addActionListener(new ActionListener() { 
       @Override 
       public void actionPerformed(ActionEvent e) {  
    JLabel label3 = new JLabel(new ImageIcon("images/cirkel.png")); 
      panel.add(label3); 
      panel.revalidate(); 
      panel.repaint(); 
     buttonPane.add(button); 
     buttonPane.add(button2); 
     buttonPane.add(button3); 


     frame.add(buttonPane, BorderLayout.NORTH); 
     frame.add(panel); 
     frame.setVisible(true); 

    } 
} 

但是,如果我運行它時,圖像不會出現。

這是爲什麼?我是Java的新手,所以我很容易做出這樣的小錯誤。

我嘗試了幾個選項,但沒有一個爲我工作。

+1

如果您發佈[MCVE](http://stackoverflow.com/help/mcve)而不是斷開連接的代碼段,那麼您的運氣會更好。 –

回答

2
JLabel label3 = new JLabel(new ImageIcon("/images/cirkel.png")); 

請勿使用/images/...。前導「/」告訴java查看驅動器的根目錄。

我猜你的「圖像」目錄是源目錄中,所以你應該使用:

JLabel label3 = new JLabel(new ImageIcon("images/cirkel.png")); 

我是新來的Java,所以我讓小錯誤這樣很容易。

閱讀關於How to Use Icons的Swing教程,以獲得更好的示例,瞭解如何加載圖像和工作示例,以便爲您的程序提供更好的結構。

這個想法是從一個工作程序開始,並從該程序的結構中學習。然後做一些小的改動。如果停止工作,那麼你知道你改變了什麼以及是什麼導致了問題。

+0

「images」目錄確實位於我的源目錄中。但該程序仍然不顯示圖像... – user3024879

+0

您發佈的代碼仍然是錯誤的。您是否閱讀了教程,並使用更靈活的方式或閱讀示例代碼中顯示的圖像?從工作代碼開始! – camickr

+0

我仍然無法弄清楚如何使這項工作....你能請張貼一個例子嗎? – user3024879