http://docs.oracle.com/javase/6/docs/api/javax/swing/text/html/ImageView.html
JEditorPane本身包含ImageView。 我可以得到尺寸和对齐方式:
ImageView.getPreferredSpan(View.X_AXIS)); //20px
ImageView.getPreferredSpan(View.Y_AXIS)); //20px
ImageView.getAlignment(View.X_AXIS)); //0.5
ImageView.getAlignment(View.Y_AXIS)); //1.0
我需要获得坐标x / y(绝对或相对)并将y对齐更改为0.75。我怎么能这样做?
答案 0 :(得分:2)
您可以使用此http://java-sl.com/JEditorPaneStructureTool.html 或简化版http://java-sl.com/tip_view_rectangle.html
答案 1 :(得分:2)
作为参考,该值派生自img
标记的 align 属性,如适用的HTML 3.2 Reference Specification中所定义。 left (0.0), middle (0.5)或 right (1.0)以外的值不会直接支持。
答案 2 :(得分:1)
有点晚了,但我遇到了同样的问题。修复此问题的唯一方法是创建自己的ImageView并在其setPropertiesFromAttributes()函数中覆盖vAlign值。问题是,setPropertiesFromAttributes受到保护,因此您必须将ImageView的整个原始代码复制并粘贴到您自己的代码中,然后将代码替换为:
vAlign = 1.0f;
if (alignment != null) {
alignment = alignment.toString();
if ("top".equals(alignment)) {
vAlign = 0f;
}
else if ("middle".equals(alignment)) {
vAlign = .5f;
}
}
vAlign = .745f;
您还需要创建自己的HTMLEditorKit并覆盖getViewFactory():
@Override
public ViewFactory getViewFactory() {
return new HTMLEditorKit.HTMLFactory() {
public View create(Element e) {
View v = super.create(e);
Object o = e.getAttributes().getAttribute(StyleConstants.NameAttribute);
if (o instanceof HTML.Tag) {
HTML.Tag kind = (HTML.Tag) o;
if (kind == HTML.Tag.IMG) {
return new MyImageView(e);
}
}
...