Как реализовать документ Cleaner, который отображает строчными буквами в uppe

Этот совет Java Swing иллюстрирует метод реализации документа Cleaner, который отображает строчной буквы заглавными. Приложение ведет себя как простой DocumentFilter.



javax.swing



import javax.swing.*;

import javax.swing.text.*;



public class UpcaseFilter extends DocumentFilter {



  public void insertString(DocumentFilter.FilterBypass fb, int offset,

                String text, AttributeSet attrthrows BadLocationException

  {

    fb.insertString(offset, text.toUpperCase(), attr);

  }



  //no need to override remove(): inherited version allows all removals



  public void replace(DocumentFilter.FilterBypass fb, int offset, int length,

                  String text, AttributeSet attrthrows BadLocationException

  {

    fb.replace(offset, length, text.toUpperCase(), attr);

  }



  public static void main(String[] args) {

    DocumentFilter dfilter = new UpcaseFilter();



    JTextArea jta = new JTextArea();

    JTextField jtf = new JTextField();

    ((AbstractDocument)jta.getDocument()).setDocumentFilter(dfilter);

    ((AbstractDocument)jtf.getDocument()).setDocumentFilter(dfilter);



    JFrame frame = new JFrame("UpcaseFilter");

    frame.getContentPane().add(jta, java.awt.BorderLayout.CENTER);

    frame.getContentPane().add(jtf, java.awt.BorderLayout.SOUTH);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    frame.setSize(200120);

    frame.setVisible(true);

  }

}

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>