JTextPane is not wrapping text

前端 未结 2 1177
执笔经年
执笔经年 2020-12-19 18:43

I am running into one weird problem. I have a JtextPane inside a JscrollPane which is showing large string in term of distribution list and it is p

相关标签:
2条回答
  • 2020-12-19 19:09

    well for me this work

          textArea.setEditorKit(new HTMLEditorKit(){ 
         @Override 
         public ViewFactory getViewFactory(){ 
    
             return new HTMLFactory(){ 
                 public View create(Element e){ 
                    View v = super.create(e); 
                    if(v instanceof InlineView){ 
                        return new InlineView(e){ 
                            public int getBreakWeight(int axis, float pos, float len) { 
                                return GoodBreakWeight; 
                            } 
                            public View breakView(int axis, int p0, float pos, float len) { 
                                if(axis == View.X_AXIS) { 
                                    checkPainter(); 
                                    int p1 = getGlyphPainter().getBoundedPosition(this, p0, pos, len); 
                                    if(p0 == getStartOffset() && p1 == getEndOffset()) { 
                                        return this; 
                                    } 
                                    return createFragment(p0, p1); 
                                } 
                                return this; 
                              } 
                          }; 
                    } 
                    else if (v instanceof ParagraphView) { 
                        return new ParagraphView(e) { 
                            protected javax.swing.SizeRequirements calculateMinorAxisRequirements(int axis, javax.swing.SizeRequirements r) { 
                                if (r == null) { 
                                      r = new javax.swing.SizeRequirements(); 
                                } 
                                float pref = layoutPool.getPreferredSpan(axis); 
                                float min = layoutPool.getMinimumSpan(axis); 
                                // Don't include insets, Box.getXXXSpan will include them. 
                                  r.minimum = (int)min; 
                                  r.preferred = Math.max(r.minimum, (int) pref); 
                                  r.maximum = Integer.MAX_VALUE; 
                                  r.alignment = 0.5f; 
                                return r; 
                              } 
    
                          }; 
                      } 
                    return v; 
                  } 
              }; 
          } 
      }); 
    
    0 讨论(0)
  • 2020-12-19 19:16

    The reason could be java version.

    See https://forums.oracle.com/forums/thread.jspa?messageID=10690405 where it is discussed and a workaround is provided

    0 讨论(0)
提交回复
热议问题