【问题标题】:Java ImageView get position and set alignmentJava ImageView 获取位置并设置对齐方式
【发布时间】:2017-03-28 20:38:08
【问题描述】:

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。我该怎么做?

【问题讨论】:

    标签: java html swing imageview jeditorpane


    【解决方案1】:
    【解决方案2】:

    作为参考,该值源自img 标记的align 属性,如适用的HTML 3.2 Reference Specification 中所定义。不直接支持 left (0.0)、middle (0.5) 或 right (1.0) 以外的值。

    【讨论】:

      【解决方案3】:

      有点晚了,但我遇到了同样的问题。解决这个问题的唯一方法,或者我这样做了,是创建自己的 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);
                          }
                      }
      ...
      

      【讨论】:

        猜你喜欢
        • 2014-08-12
        • 1970-01-01
        • 2020-03-13
        • 2012-09-03
        • 2013-04-18
        • 2012-04-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多