2017-05-27 1 views
1

私はフレームに画像を表示するためにSwingにJavaプログラムを書きました。しかし、それは動作していません。イメージをフレームに表示するには?

私は、NetBeansでパッケージに画像を追加する必要がありますか?ここで

は私のコードです:

import java.awt.*; 
import javax.swing.*; 
import javax.swing.border.*; 
//import java.awt.Image.*; 
public class Images extends JFrame implements ActionListener {   
    JButton b; 
    JLabel l; 
    Images() 
    { 
     Container c=getContentPane(); 
     c.setLayout(new FlowLayout()); 
     ImageIcon i=new ImageIcon("stone.jpg"); 
     b=new JButton("Click Me",i); 
     b.setBackground(Color.yellow); 
     b.setForeground(Color.red); 
     b.setFont(new Font("Arial",Font.BOLD,30)); 
     Border bd=BorderFactory.createBevelBorder(BevelBorder.RAISED);  
     b.setBorder(bd); 
     b.setToolTipText("Buttons"); 
     b.setMnemonic('C'); 
     c.add(b);  
    b.addActionListener(this);  
    l=new JLabel();  
    c.add(l);  
     setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
    }  
    public void actionPerformed(ActionEvent ae)  
    { 
     ImageIcon i=new ImageIcon("stone.jpg"); 
     l.setIcon(i); 
    } 

public static void main(String args[])  
    { 
     Images d=new Images();  
     d.setTitle("Hello");  
     d.setSize(700,700);  
     d.setVisible(true);  
    } 
} 
+1

アプリケーションリソースはデプロイメント時に埋め込まれたリソースになりますので、今のようにアプリケーションリソースにアクセスすることをお勧めします。 [タグ:埋め込みリソース]は、ファイルではなくURLでアクセスする必要があります。 [info。埋め込みリソースのページ](http://stackoverflow.com/tags/embedded-resource/info)を参照してください。 –

答えて

1

stone.jpgは、プロジェクトのルートディレクトリに格納されている場合、このImageIcon i=new ImageIcon("stone.jpg");は動作するはずです。
それ以外の場合は、パスを変更する必要があります。 たとえば、リソース使用の場合はImageIcon i=new ImageIcon("resources/stone.jpg")です。
イメージが見つかったことを確認するには、System.out.println(i.getIconWidth());を使用できます。そうでない場合は-1を出力します。


hereのようにgetResourceを使用することをお勧めします。

+0

ご協力ありがとうございました – Harry

+0

問題を解決しましたか? – c0der

+0

はい、それは私に多くの助けになります。私のイメージはフレームに表示されています。 – Harry

関連する問題