IntelliJ Platform SDK DevGuide

Edit page

Editor Components


Compared to Swing JTextArea, the IntelliJ Platform’s editor component has a ton of advantages: syntax highlighting support, code completion, code folding and much more. IntelliJ Platform editors are normally displayed in editor tabs, but they can be embedded in dialogs or tool windows, too. This is enabled by the EditorTextField component.

When creating an EditorTextField, you can specify the following attributes:

  • The file type according to which the text in the text field is parsed;

  • Whether the text field is read-only or editable;

  • Whether the text field is single-line or multiline.

A common use case for EditorTextField is entering the name of a Java class or package. This can be accomplished with the following steps:


PsiFile psiFile = PsiDocumentManager.getInstance(editor.getProject()).getPsiFile(editor.getDocument()); PsiElement element = psiFile.findElementAt(editor.getCaretModel().getOffset()); PsiExpressionCodeFragment code = JavaCodeFragmentFactory.getInstance(editor.getProject()).createExpressionCodeFragment("", element, null, true); Document document = PsiDocumentManager.getInstance(editor.getProject()).getDocument(code); EditorTextField myInput = new EditorTextField(document, editor.getProject(), JavaFileType.INSTANCE);


  • When creating more than one field you need two separate documents. This is accomplished by using separate instances of the PsiExpressionCodeFragment

  • setText no longer works for the input field. However, the createExpressionCodeFragment accepts the text fore the field as an argument. As such you can replace the empty string and create a new document in leau of setText()

  • You can replace instances of JTextField in the GUI builder with custom replace using the right click in your IDE. Make sure to use “Custom Create” so you can set the initialization code properly

Last modified: 19 February 2020