JEdi​​torPane,文本中图像的对齐方式

时间:2012-02-20 16:56:24

标签: java image swing alignment jeditorpane

_http://i.stack.imgur.com/W2We5.gif

<img src=\"file:b:/smile.gif\" align=\"middle\">"

_http://i.stack.imgur.com/VPHzw.gif

<img src=\"file:b:/smile.gif\">

必需:
_http://i.stack.imgur.com/WlMhG.gif

我需要在JEditorPane中对齐图像,图像不应该影响行的高度。如果我使用align = middle - 图片未对齐并保留对行高的影响。

对于我在html中使用的类似问题的解决方案:

<span style=\"background-image: url('file:b:/smile.gif') 50% 50% no-repeat\"> &nbsp;&nbsp;&nbsp;&nbsp;</span>

但是这种方法在JEditorPane中不起作用。我该如何解决这个问题?

1 个答案:

答案 0 :(得分:3)

要将图像对齐到JEditorPane的中间,您可以使用以下内容:

editPane.setText("<html><p style = \"text-align:center;\"><img src = " + 
        "\"http://gagandeepbali.uk.to/gaganisonline/images/" + 
        "editsystemvariable2.png\" alt = \"pic\" /></p></html>\n");

这里text-align属性可以帮到你。关于图像不应该影响行的大小,我不确定你的意图,但如果我理解你,你可以在<img>中为你的图像提供固定的宽度和高度标签

在这里,我使用了这段代码,告诉我你是否还想要别的东西,除了你在这段代码中找到的东西。希望我能帮忙,

import java.awt.*;
import javax.swing.*;

public class EditorPaneTest extends JFrame
{
    public EditorPaneTest()
    {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setLocationByPlatform(true);        

        JEditorPane editPane = new JEditorPane();
        JScrollPane scrollPane = new JScrollPane(editPane);     

        editPane.setContentType("text/html");

        editPane.setText("<html><p style = \"text-align:center;\">Hello there, How you doing ?<img src = " + 
                                            "\"http://s018.radikal.ru/i504/1202/03/c01a2e35713f.gif" + 
                                                "\" alt = \"pic\" width = \"15\" height = \"15\" />I guess all is good!!" +
                                                        "<br />I hope this is what you wanted!! " + 
                                                                    "<img src =  \"http://s018.radikal.ru/i504/1202/03/c01a2e35713f.gif" + 
                                                "\" alt = \"pic\" width = \"15\" height = \"15\" /> Hope this works for you :-)</p></html>\n");

        add(scrollPane, BorderLayout.CENTER);
        setSize(400, 300);
        setVisible(true);
    }

    public static void main(String... args)
    {
        SwingUtilities.invokeLater(new Runnable()
        {
            public void run()
            {
                new EditorPaneTest();
            }
        });
    }
}

这是输出图像:

EditorPane's View

MoreOver使用此Smiley Image。我已经从图像中删除了额外的底部空间。