2016-08-25 6 views
0

私はこの "Javad" "label1"に画像 "Pic.png"を追加し、JFrame "window1"のJPanel "panel1"に表示しようとしています。しかし、私が走った時、それは私のイメージを表示しません。誰でも助けますか? (私はソースファイルに何かを追加することについて読んだが、私はJavaに慣れていないので何をしているのか分からない。イメージをラベルに追加しようとしましたが動作しませんか?

public class UIForIshidaQuery { 

    public static void main(String[] args) { 
     System.out.println("Running..."); 

     JFrame window1 = new JFrame(); 
     window1.setVisible(true); 
     window1.setSize(1080, 720); 
     window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel panel1 = (JPanel) window1.getContentPane(); 
     JLabel label1 = new JLabel(); 
     panel1.setLayout(null); 
     ImageIcon image = new ImageIcon("C:\\Users\\BC03\\Pictures\\Saved Pictures\\Other\\Pic.png"); 
     label1.setIcon(image); 
     label1.setBounds(500, 500, 500, 500); 
     panel1.add(label1); 
    } 
} 
+0

新しいファイル( "C:\\ Users \\ BC03 \\ Pictures \ Saved Pictures \\その他\\ Pic.png")はexist() 'trueを返しますか? – Berger

+0

[tag:embedded-resource]タグに引用されている例を参照してください(http://stackoverflow.com/tags/embedded-resource/info)。 – trashgod

+0

はいそれはtrueを返します@Berger – Cutter

答えて

2

ウィンドウが最後の呼び出しとして目に見える設定する必要があります。 nullレイアウトを使用しないでください。これは機能します。

import java.net.*; 
import javax.swing.*; 

public class UIForIshidaQuery { 

    public static String url = "http://i.stack.imgur.com/gJmeJ.png"; 

    public static void main(String[] args) throws MalformedURLException { 
     System.out.println("Running..."); 

     JFrame window1 = new JFrame(); 
     window1.setSize(1080, 720); 
     window1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
     JPanel panel1 = (JPanel) window1.getContentPane(); 
     JLabel label1 = new JLabel(); 
     //panel1.setLayout(null); 
     ImageIcon image = new ImageIcon(new URL(url)); 
     label1.setIcon(image); 
     //label1.setBounds(500, 500, 500, 500); 
     panel1.add(label1); 
     window1.setVisible(true); 
    } 
} 
  1. のJava GUIは異なるロケールに異なるPLAFsを使用してなど異なるOS」、画面サイズ、画面の解像度で作業しなければなりません。したがって、ピクセルの完全なレイアウトには役立ちません。その代わりに、レイアウトマネージャーを使用するか、white spaceのレイアウトパディングとボーダーとともに、combinations of themを使用します。
+0

ありがとう、これは動作します! – Cutter

+0

上記の情報は正しいですが、Java Swingではピクセルの完全なレイアウトを実現することは難しいです。したがって、既存のコードでイメージをチェックするだけで、実行してウィンドウを最大化/最小化しようとすると、コードを実行したときに瞬時に表示されないイメージが表示されます。 –

1

あなたがのIntelliJ IDEAを使用している場合:

  1. 右プロジェクトのルートディレクトリをクリックし、[新規]> [ディレクトリ]を選択。
  2. たとえば、新しいディレクトリ 'resources'を呼び出します。
  3. 新しく作成されたディレクトリを右クリックし、[Mark Directory As]> [Resources Root]を選択します。
  4. イメージファイルをディレクトリに追加します。
  5. 適切にアクセスしてファイルを: CurrentClass.class.getClassLoader().getResource("pic.png").getFile();

イメージアイコンは、次のように初期化することができます。

File file = new File(CurrentClass.class.getClassLoader().getResource("pic.png").getFile()); 
     BufferedImage image = null; 
     try { 
      image = ImageIO.read(file); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 
     ImageIcon imageIcon = new ImageIcon(image); 
+0

私はIntelliJ IDEAを使用していません。 – Cutter

+0

申し訳ありません、あなたが追加したnetbeansタグが見つかりませんでした。 IntelliJ IDEAを使用している他のユーザーのための良い参考資料です。 – Thibstars

関連する問題