Mega Code Archive

 
Categories / Java by API / Javax Swing Text
 

Implements NavigationFilter

import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTextArea; import javax.swing.text.NavigationFilter; import javax.swing.text.Position; public class MainClass {   public static void main(String args[]) throws Exception {     final String START_STRING = "Start\n";     final int START_STRING_LENGTH = START_STRING.length();     JFrame frame = new JFrame("Navigation Example");     frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);     JTextArea textArea = new JTextArea(START_STRING);     textArea.setCaretPosition(START_STRING_LENGTH);     JScrollPane scrollPane = new JScrollPane(textArea);     frame.add(scrollPane, BorderLayout.CENTER);     NavigationFilter filter = new NavigationFilter() {       public void setDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias) {         if (dot < START_STRING_LENGTH) {           fb.setDot(START_STRING_LENGTH, bias);         } else {           fb.setDot(dot, bias);         }       }       public void moveDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias) {         if (dot < START_STRING_LENGTH) {           fb.setDot(START_STRING_LENGTH, bias);         } else {           fb.setDot(dot, bias);         }       }     };     textArea.setNavigationFilter(filter);     frame.setSize(250, 150);     frame.setVisible(true);   } }