通过ContentType(“text / html”)摆动插入图像;

时间:2014-06-23 08:11:52

标签: java html image swing jtextcomponent

我编写了以下代码:

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文件夹中,图片也不会显示。

任何建议放在哪里?

感谢您的回答!

1 个答案:

答案 0 :(得分:2)

尝试更像......

<img src='" + getClass().getResource("/path/to/image/image.jpg").toString() + "' .../>

,而不是...

您的代码无效的两个主要原因......

  1. 构建应用程序时,src目录不存在,并且图像将包含在生成的Jar文件中(假设您正在使用Netbeans之类的东西或正在手动构建它,否则,Eclipse将要求将图像文件放在resources目录中。这意味着资源不能再以您可能习惯使用的正常方式引用为文件......
  2. ..\\image.jpg不是用于解析图片的API的有效网址(基本上,它不知道如何找到它),除了其他任何内容之外,相对上下文也是如此。并且可以改变......
  3. 例如

    Battle

    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);
                }
            });
        }
    
    }