代码之家  ›  专栏  ›  技术社区  ›  jjnguy Julien Chastang

如何设置窗格中的选项卡大小?

  •  10
  • jjnguy Julien Chastang  · 技术社区  · 15 年前

    A. JTextArea 的选项卡大小可以使用 setTabSize(int) .

    有没有类似的方法来处理一个问题 JEditorPane

    现在,我的窗格中带有选项卡的文本如下所示:

    if (stuff){
                more stuff;
    }
    

    而且,我更喜欢更小的制表位:

    if (stuff){
        more stuff;
    }
    
    3 回复  |  直到 15 年前
        1
  •  13
  •   Daniel Schneller    9 年前

    由于JEditorPane旨在支持不同类型的内容类型,因此它没有提供直接指定“选项卡大小”的方法,因为其含义应由内容模型定义。

    JEditorPane pane = new JEditorPane(...);
    ...
    Document doc = pane.getDocument();
    if (doc instanceof PlainDocument) {
        doc.putProperty(PlainDocument.tabSizeAttribute, 8);
    }
    ...
    

    从Javadoc:

    /**
     * Name of the attribute that specifies the tab
     * size for tabs contained in the content.  The
     * type for the value is Integer.
     */
    public static final String tabSizeAttribute = "tabSize";
    
        2
  •  7
  •   CarlG    12 年前

    如果有人使用StyledDocument(另一个答案上的链接失效)

    创建一个TabSet,它是一个tabstop数组。在我的例子中,我只关心第1个选项卡,我希望它从左起20像素,所以这段代码对我很有用:

    StyleContext sc = StyleContext.getDefaultStyleContext();
    TabSet tabs = new TabSet(new TabStop[] { new TabStop(20) });
    AttributeSet paraSet = sc.addAttribute(SimpleAttributeSet.EMPTY, StyleConstants.TabSet, tabs);
    pane.setParagraphAttributes(paraSet, false);
    
        3
  •  0
  •   wbudic    12 年前

    我花了一段时间才弄明白。 当字体大小发生变化时(在JEditPane的paint()方法中),必须重置此设置。

    复杂的东西!:(