TextTabSample.java Source code

Java tutorial

Introduction

Here is the source code for TextTabSample.java

Source

/*
Definitive Guide to Swing for Java 2, Second Edition
By John Zukowski       
ISBN: 1-893115-78-X
Publisher: APress
*/

import java.awt.BorderLayout;
import java.awt.Container;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextPane;
import javax.swing.text.BadLocationException;
import javax.swing.text.DefaultStyledDocument;
import javax.swing.text.SimpleAttributeSet;
import javax.swing.text.StyleConstants;
import javax.swing.text.StyledDocument;
import javax.swing.text.TabSet;
import javax.swing.text.TabStop;

public class TextTabSample {
    public static void main(String args[]) {
        JFrame frame = new JFrame("Tab Attributes");
        Container content = frame.getContentPane();

        StyledDocument document = new DefaultStyledDocument();

        int positions[] = { TabStop.ALIGN_BAR, TabStop.ALIGN_CENTER, TabStop.ALIGN_DECIMAL, TabStop.ALIGN_LEFT,
                TabStop.ALIGN_RIGHT };
        String strings[] = { "\tBAR\n", "\tCENTER\n", "\t3.14159265\n", "\tLEFT\n", "\tRIGHT\n" };

        SimpleAttributeSet attributes = new SimpleAttributeSet();

        for (int i = 0, n = positions.length; i < n; i++) {
            TabStop tabstop = new TabStop(150, positions[i], TabStop.LEAD_DOTS);
            try {
                int position = document.getLength();
                document.insertString(position, strings[i], null);
                TabSet tabset = new TabSet(new TabStop[] { tabstop });
                StyleConstants.setTabSet(attributes, tabset);
                document.setParagraphAttributes(position, 1, attributes, false);
            } catch (BadLocationException badLocationException) {
                System.err.println("Oops");
            }
        }

        JTextPane textPane = new JTextPane(document);
        textPane.setEditable(false);
        JScrollPane scrollPane = new JScrollPane(textPane);
        content.add(scrollPane, BorderLayout.CENTER);

        frame.setSize(300, 150);
        frame.setVisible(true);
    }
}