Category Archives: Tab Stops

Adding TabStops to the JTextPane

Introduction

This example shows how to create Tab Stops in a¬†JTextPane. This is useful since the¬†JTextPane doesn’t have this by default.

// Create a text pane
JTextPane textPane = new JTextPane();

// Create one of each type of tab stop
java.util.List list = new ArrayList();

// Create a left-aligned tab stop at 100 pixels from the left margin
float pos = 100;
int align = TabStop.ALIGN_LEFT;
int leader = TabStop.LEAD_NONE;
TabStop tstop = new TabStop(pos, align, leader);
list.add(tstop);

// Create a right-aligned tab stop at 200 pixels
// from the left margin
pos = 200;
align = TabStop.ALIGN_RIGHT;
leader = TabStop.LEAD_NONE;
tstop = new TabStop(pos, align, leader);
list.add(tstop);

// Create a center-aligned tab stop at 300 pixels
// from the left margin
pos = 300;
align = TabStop.ALIGN_CENTER;
leader = TabStop.LEAD_NONE;
tstop = new TabStop(pos, align, leader);
list.add(tstop);

// Create a decimal-aligned tab stop at 400 pixels from the left margin
pos = 400;
align = TabStop.ALIGN_DECIMAL;
leader = TabStop.LEAD_NONE;
tstop = new TabStop(pos, align, leader);
list.add(tstop);

// Create a tab set from the tab stops
TabStop[] tstops = (TabStop[])list.toArray(new TabStop[0]);
TabSet tabs = new TabSet(tstops);

// Add the tab set to the logical style;
// the logical style is inherited by all paragraphs
Style style = textPane.getLogicalStyle();
StyleConstants.setTabSet(style, tabs);
textPane.setLogicalStyle(style);