そのため、アプリケーションには、プログラムについてユーザーに通知するポップアップダイアログがあります。カスタムアイコンまではすべて順調でした。これが私が試みたものです:
試行1:
JOptionPane.showMessageDialog(dialog, "Blah blah blah", "About", JOptionPane.INFORMATION_MESSAGE, new ImageIcon("home/user/Pictures/default.jpg"));
試行2:
final icon = new ImageIcon("home/user/Pictures/default.jpg"));
JOptionPane.showMessageDialog(dialog, "Blah blah blah", "About", JOptionPane.INFORMATION_MESSAGE, icon);
試行3:
final icon = new ImageIcon("home/user/Pictures/default.jpg"));
showMessageDialog(dialog, "Blah blah blah", "About", JOptionPane.INFORMATION_MESSAGE, icon);
試行4:
(Javaで叫ぶ)
試行5:
URLの使用
すべてがプログラムに影響を与えておらず、画像の代わりに何も得られません。
詳細:
助けて! :(
これは私のために働いた:
import javax.swing.*;
public class Test
{
public static void main(String[] args)
{
final ImageIcon icon = new ImageIcon("C:\\Users\\John\\Desktop\\lol.jpg");
JOptionPane.showMessageDialog(null, "Blah blah blah", "About", JOptionPane.INFORMATION_MESSAGE, icon);
}
}
URLを使用するバリアントは次のとおりです。
import javax.swing.*;
import Java.net.*;
public class TestIcon
{
public static void main(String[] args) throws Exception
{
final ImageIcon icon = new ImageIcon(new URL("http://www.gravatar.com/avatar/a1ab0af4997654345d7a949877f8037e?s=128&d=identicon&r=PG"));
JOptionPane.showMessageDialog(null, "Blah blah blah", "About", JOptionPane.INFORMATION_MESSAGE, icon);
}
}
私はこれが少し古いことを知っていますが、私の質問を解決する返信がなかったので、いくつかの調査の後、これは私のために働いたものです(Java 1.7)で働いています:
私は次のようなgetClass().getResource(<path>)
メソッドを使用しました。
ImageIcon icon = new ImageIcon(getClass().getResource(<pathToIcon>));
プロジェクトに「resources」フォルダーを作成し、その中に「icons」フォルダーを作成し、アイコン(またはオーディオファイルなどの他のもの)が必要になるたびにその場所を参照することをお勧めします。画像等)
ここでこれが役立つ場合があります: http://download.Oracle.com/javase/tutorial/uiswing/components/icon.html
同じことが私にも起こりました。私の画像が「ソース」ファイルではなく「ビン」ファイルにロードされているように見えたので、神に感謝します。パスが間違っていました。
ImageIcon preg1 = new ImageIcon("C:\\Java\\TestPsicologico\\bin\\Preg1.jpg");
コピーされたパスが正しくないというだけで、誰もが正しかった。
優先画像をプロジェクトのフォルダに配置するだけで、画像がプロジェクトナビゲーションタブに表示されます。画像パスをコピーして次の場所に貼り付けるだけです。
final ImageIcon icon = new ImageIcon("*Paste copied path*");
JOptionPane.showMessageDialog(null, infoMessage, " " + titleBar, JOptionPane.INFORMATION_MESSAGE,icon);
これを試して:
JPanel panel = new JPanel();
BufferedImage myPicture = null;
try
{
myPicture = ImageIO.read(new File("home/user/Pictures/default.jpg"));
}
catch(Exception ex){}
panel.add(new JLabel(new ImageIcon(myPicture)));
panel.add(new JLabel("blah blah blah"));
Object[] options = {};
JOptionPane pane = new JOptionPane();
pane.showOptionDialog(null, panel, "About", JOptionPane.NO_OPTION, JOptionPane.PLAIN_MESSAGE, null, options, null);