我编写了以下代码:
JDialog helpDialog = new JDialog();
helpDialog.setTitle("Help");
helpDialog.setResizable(false);
helpDialog.setAlwaysOnTop(true);
helpDialog.setSize(393, 43);
help.setSize(195,195);
help.setEditable(false);
help.setFont(new Font("Arial", Font.PLAIN, 24));
String txt = "<b><big>"+ "Help Page " +"</big></b>" + "<br/>" +
" <img src= \" ..\\image.jpg \" alt= \" Logo \" height= \" \" width=\" 42 \"> ";
help.setContentType("text/html");
help.setText(txt);
help.setCaretPosition(0);
helpDialog.add(help);
helpDialog.setDefaultCloseOperation(JDialog.DISPOSE_ON_CLOSE);
helpDialog.pack();
helpDialog.setVisible(true);
//Window in center of the display not in the left top corner
helpDialog.setLocationRelativeTo(null);
此对话框仅用于通知用户。我想通过String txt = "<b><big>"+ "Help Page " +"</big></b>" + "<br/>" +
" <img src= \" ..\\image.jpg \" alt= \" Logo \" height= \" \" width=\" 42 \"> ";
添加图片,但是即使图片位于scr
文件夹中,图片也不会显示。
任何建议放在哪里?
感谢您的回答!
答案 0 :(得分:2)
尝试更像......
<img src='" + getClass().getResource("/path/to/image/image.jpg").toString() + "' .../>
,而不是...
您的代码无效的两个主要原因......
src
目录不存在,并且图像将包含在生成的Jar文件中(假设您正在使用Netbeans之类的东西或正在手动构建它,否则,Eclipse将要求将图像文件放在resources
目录中。这意味着资源不能再以您可能习惯使用的正常方式引用为文件...... ..\\image.jpg
不是用于解析图片的API的有效网址(基本上,它不知道如何找到它),除了其他任何内容之外,相对上下文也是如此。并且可以改变...... 例如
import java.awt.EventQueue;
import javax.swing.JOptionPane;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
public class ShowMeTheImage {
public static void main(String[] args) {
new ShowMeTheImage();
}
public ShowMeTheImage() {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {
}
String text = "<html><img src='" + getClass().getResource("/images/battle.jpg").toString() + "'/>";
JOptionPane.showMessageDialog(null, text);
}
});
}
}