Search in sources :

Example 1 with TabStop

use of javax.swing.text.TabStop in project java-swing-tips by aterai.

the class WhitespaceLabelView method install.

@Override
public void install(JEditorPane c) {
    FontMetrics fm = c.getFontMetrics(c.getFont());
    int tabLength = fm.charWidth('m') * 4;
    // TabStop[] tabs = new TabStop[100];
    // for (int j = 0; j < tabs.length; j++) {
    // tabs[j] = new TabStop((j + 1f) * tabLength);
    // }
    TabStop[] tabs = IntStream.range(0, 100).mapToObj(i -> (i + 1f) * tabLength).map(TabStop::new).toArray(TabStop[]::new);
    TabSet tabSet = new TabSet(tabs);
    StyleConstants.setTabSet(ATTRS, tabSet);
    super.install(c);
}
Also used : TabSet(javax.swing.text.TabSet) TabStop(javax.swing.text.TabStop)

Example 2 with TabStop

use of javax.swing.text.TabStop in project org.alloytools.alloy by AlloyTools.

the class OurSyntaxDocument method do_setFont.

/**
 * Changes the font and tabsize for the document.
 */
public final void do_setFont(String fontName, int fontSize, int tabSize) {
    if (tabSize < 1)
        tabSize = 1;
    else if (tabSize > 100)
        tabSize = 100;
    if (fontName.equals(this.font) && fontSize == this.fontSize && tabSize == this.tabSize)
        return;
    this.font = fontName;
    this.fontSize = fontSize;
    this.tabSize = tabSize;
    for (MutableAttributeSet s : all) {
        StyleConstants.setFontFamily(s, fontName);
        StyleConstants.setFontSize(s, fontSize);
    }
    do_reapplyAll();
    // this
    BufferedImage im = new BufferedImage(10, 10, BufferedImage.TYPE_INT_RGB);
    // is
    // used
    // to
    // derive
    // the
    // tab
    // width
    int gap = tabSize * im.createGraphics().getFontMetrics(new Font(fontName, Font.PLAIN, fontSize)).charWidth('X');
    TabStop[] pos = new TabStop[100];
    for (int i = 0; i < 100; i++) {
        pos[i] = new TabStop(i * gap + gap);
    }
    StyleConstants.setTabSet(tabset, new TabSet(pos));
    setParagraphAttributes(0, getLength(), tabset, false);
}
Also used : MutableAttributeSet(javax.swing.text.MutableAttributeSet) TabSet(javax.swing.text.TabSet) TabStop(javax.swing.text.TabStop) BufferedImage(java.awt.image.BufferedImage) Font(java.awt.Font)

Aggregations

TabSet (javax.swing.text.TabSet)2 TabStop (javax.swing.text.TabStop)2 Font (java.awt.Font)1 BufferedImage (java.awt.image.BufferedImage)1 MutableAttributeSet (javax.swing.text.MutableAttributeSet)1