Files
swing-examples/doc/03_text_components.md
2024-03-30 19:57:14 +09:00

4.9 KiB

텍스트 컴포넌트

  • isEditable() / setEditable(boolean)

  • getDragEnabled() / setDragEnabled(boolean)

  • getDisabledTextColor() / setDisabledTextColor(Color)

  • getMargin() / setMargin(Insets) : 텍스트와 컴포넌트 보더 사이 간격

  • getSelectedText()

  • select(int,int) / selectAll()

  • getSelectionStart() / setSelectionStart(int) / getSelectionEnd() / setSelectionEnd(int)

  • getSelectionColor() / setSelectionColor(Color)

  • getSelectedTextColor() / setSelectedTextColor(Color)

  • viewToModel(Point) / modelToView(int)

  • copy() / cut() / paste() / replaceSelection(String)

  • getActions()

  • getInputMap()

  • put(KeyStroke,Object)

  • getDocument() / setDocument(Document)

  • setDocumentFilter(DocumentFilter)

  • getCaret() / setCaret(Caret)

  • getCaretColor() / setCaretColor(Color)

  • getCaretPosition() / moveCaretPosition(int) / setCaretPosition(int)

  • addCaretListener() / removeCaretListener()

  • setNavigationFilter()

  • getHighlighter() / setHighlighter(Highlighter)

  • read(Reader, Object) / write(Writer)

  • print() / print(MessageFormat,MessageFormat)

  • getPrintable(MessageFormat,MessageFormat)

Document

  • addDocumentListener() / removeDocumentListener()
  • addUndoableEditListener() / removeUndoableEditListener()
  • getLength()
  • getStartPosition() / getEndPosition()
  • getText(int,int)
  • getProperty(Object) / putProperty(Object,Object) / getDocumentProperties() / setDocumentProperties(Dictionary)

Undo / Redo 구현 - UndoableEditListener

// 언두 매니저를 생성하고, 텍스트 문서에 리스너를 통해 연결한다. 
final UndoManager undoManager = new UndoManager();
textArea.getDocument().addUndoableEditListener(undoableEditEvent -> 
        undoManager.addEdit(undoableEditEvent.getEdit()));

// 버튼을 통해서 액션을 처리한다.
toolBar.add(new AbstractAction("Undo") {
    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        if (undoManager.canUndo()) {
            undoManager.undo();
        }
    }
});
toolBar.add(new AbstractAction("Redo") {
    @Override
    public void actionPerformed(ActionEvent actionEvent) {
        if (undoManager.canRedo()) {
            undoManager.redo();
        }
    }
});

DocumentListener

textArea.getDocument().addDocumentListener(new DocumentListener() {
    @Override
    public void insertUpdate(DocumentEvent documentEvent) {
        Document document = documentEvent.getDocument();
        int changeLength = documentEvent.getLength();
    }

    @Override
    public void removeUpdate(DocumentEvent documentEvent) {

    }

    @Override
    public void changedUpdate(DocumentEvent documentEvent) {

    }
});

CaretListener

textArea.addCaretListener(new CaretListener() {
    @Override
    public void caretUpdate(CaretEvent caretEvent) {
        int dot = caretEvent.getDot();
        int mark = caretEvent.getMark();
    }
});

JTextField

  • getText() / setText(String)

  • isEditable() / setEditable(boolean)

  • getColumns() / setColumns(int) : 화면에 표시될 칼럼 길이

  • selectAll()

  • getHorizontalAlignment() / setHorizontalAlignment(int) : JTextField.LEADING | CENTER | TRAILING

  • addActionListener() / removeActionListener()

JPasswordField

  • char[] getPassword()
  • getEchoChar() / setEchoChar(char)

JFormattedTextField

  • JFormattedTextField() / JFormattedTextField(Format) / JFormattedTextField(Formatter) / JFormattedTextField(FormatterFactory)

  • getValue() / setValue(Object)

  • getFormatter() / setFormatterFactory()

  • setFocusLostBehavior(int) : COMMIT_OR_REVERT | COMMIT | PERSIST | REVERT

  • commitEdit()

  • isEditValid()

Format

  • DateFormatter
  • NumberFormatter
  • InternationalFormatter
  • MaskFormatter
  • DateFormat
  • SimpleDateFormat
  • NumberFormat
  • DefaultFormatterFactory
  • DefaultFormatter

DefaultFormatter

  • getCommitsOnValidEdit() / setCommitsOnValidEdit(boolean)
  • getOverwriteMode() / setOverwriteMode(boolean)
  • getAllowsInvalid() / setAllowsInvalid(boolean)

MaskFormatter

  • # 아무 숫자 하나
  • ' 이스케잎문자로 사용됨
  • U 대문자 하나
  • L 소문자 하나
  • A 문자 또는 숫자 하나
  • ? 문자 하나
  • * 아무거나
  • H 16진수문자 하나

JTextArea

  • JTextArea() / JTextArea(String) / JTextArea(int,int) / JTextArea(String,int,int) : 칼럼 갯수, 열 갯수

  • getText() / setText(String)

  • isEditable() / setEditable(boolean)

  • getColumns() / setColumns(int)

  • getRows() / setRows(int)

  • setTabSize(int)

  • setLineWrap(boolean)

  • setWrapStyleWord(boolean)

  • selectAll()

  • append(String)

  • insert(String,int)

  • replaceRange(String,int,int)

  • getLineCount()

  • getLineOfOffset(int)

  • getLineStartOffset(int)

  • getLineEndOffset(int)

JEditorPane

JTextPane