【问题标题】:Java JTextpane Tab SizeJava JTextpane 选项卡大小
【发布时间】:2026-01-07 09:40:01
【问题描述】:

我正在编写一个 Java 程序,我在程序的某些部分使用了 JTextpane。 在这个 JTextpane 中,我使用制表符 (\t) 来制作列,例如:

txtpnMTrace = new JTextPane();
txtpnMTrace.setFont(new Font("Dialog", Font.PLAIN, 11));
doc = txtpnMTrace.getStyledDocument();
...
 doc.insertString(doc.getLength(),value1+"\t"+value2+"\t"+value3+"\n", null);

...

我可以在制表符 (\t) 距离处看到列中的值。 制表符距离始终相同,我想更改此距离以改善外观。

您知道如何更改 JTextPane 中的选项卡 (\t) 大小吗?

提前致谢。

【问题讨论】:

    标签: java swing tabs jtextpane


    【解决方案1】:
    import javax.swing.*;
    import javax.swing.text.*;
    
    public class TabExample {
    
        public static void main(String[] args) {
    
            JTextPane pane = new JTextPane();
            TabStop[] tabs = new TabStop[4];
            tabs[0] = new TabStop(60, TabStop.ALIGN_RIGHT, TabStop.LEAD_NONE);
            tabs[1] = new TabStop(100, TabStop.ALIGN_LEFT, TabStop.LEAD_NONE);
            tabs[2] = new TabStop(200, TabStop.ALIGN_CENTER, TabStop.LEAD_NONE);
            tabs[3] = new TabStop(300, TabStop.ALIGN_DECIMAL, TabStop.LEAD_NONE);
            TabSet tabset = new TabSet(tabs);
    
            StyleContext sc = StyleContext.getDefaultStyleContext();
            AttributeSet aset = sc.addAttribute(SimpleAttributeSet.EMPTY,
            StyleConstants.TabSet, tabset);
            pane.setParagraphAttributes(aset, false);
            pane.setText("\tright\tleft\tcenter\tdecimal\n" + "\t1\t1\t1\t1.0\n"
            + "\t200.002\t200.002\t200.002\t200.002\n"
            + "\t.33\t.33\t.33\t.33\n");
    
            JFrame frame = new JFrame("TabExample");
            frame.setContentPane(new JScrollPane(pane));
            frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            frame.setSize(360, 120);
            frame.setVisible(true);
        }
    }
    

    【讨论】:

    • 感谢您的回答,我试过了,效果很好。谢谢
    最近更新 更多