Java by API/javax.swing.text/NavigationFilter

Материал из Java эксперт
Перейти к: навигация, поиск

implements NavigationFilter

   <source lang="java">

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);
 }

}


 </source>
   
  
 
  



NavigationFilter.FilterBypass.setDot(int dot, Bias bias)

   <source lang="java">

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 Main {

 public static void main(String args[]) {
   JFrame frame = new JFrame("Navigation Example");
   frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
   JTextArea textArea = new JTextArea();
   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) {
       System.out.println("Setting: " + dot);
       fb.setDot(dot, bias);
     }
     public void moveDot(NavigationFilter.FilterBypass fb, int dot, Position.Bias bias) {
       System.out.println("Moving: " + dot);
       fb.setDot(dot, bias);
     }
   };
   textArea.setNavigationFilter(filter);
   frame.setSize(250, 150);
   frame.setVisible(true);
 }

}

 </source>