⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inputhandler.java

📁 报表设计软件,很好的
💻 JAVA
📖 第 1 页 / 共 3 页
字号:
    }
  }

  private static final class InsertTabAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);

      if (!textArea.isEditable())
      {
        textArea.getToolkit().beep();
        return;
      }

      //textArea.overwriteSetSelectedText("\t");
      textArea.overwriteSetSelectedText("  ");
    }
  }

  public static final class NextCharAction
          implements ActionListener
  {
    private final boolean select;

    private NextCharAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      final int caret = textArea.getCaretPosition();
      if (caret == textArea.getDocumentLength())
      {
        textArea.getToolkit().beep();
        return;
      }

      if (select)
      {
        textArea.select(textArea.getMarkPosition(),
                caret + 1);
      }
      else
      {
        textArea.setCaretPosition(caret + 1);
      }
    }
  }

  public static final class NextLineAction
          implements ActionListener
  {
    private final boolean select;

    private NextLineAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      int caret = textArea.getCaretPosition();
      final int line = textArea.getCaretLine();

      if (line == textArea.getLineCount() - 1)
      {
        textArea.getToolkit().beep();
        return;
      }

      int magic = textArea.getMagicCaretPosition();
      if (magic == -1)
      {
        magic = textArea.offsetToX(line,
                caret - textArea.getLineStartOffset(line));
      }

      caret = textArea.getLineStartOffset(line + 1)
              + textArea.xToOffset(line + 1, magic);
      if (select)
      {
        textArea.select(textArea.getMarkPosition(), caret);
      }
      else
      {
        textArea.setCaretPosition(caret);
      }
      textArea.setMagicCaretPosition(magic);
    }
  }

  public static final class NextPageAction
          implements ActionListener
  {
    private final boolean select;

    private NextPageAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      final int lineCount = textArea.getLineCount();
      int firstLine = textArea.getFirstLine();
      final int visibleLines = textArea.getVisibleLines();
      final int line = textArea.getCaretLine();

      firstLine += visibleLines;

      if (firstLine + visibleLines >= lineCount - 1)
      {
        firstLine = lineCount - visibleLines;
      }

      textArea.setFirstLine(firstLine);

      final int caret = textArea.getLineStartOffset(Math.min(textArea.getLineCount() - 1,
              line + visibleLines));
      if (select)
      {
        textArea.select(textArea.getMarkPosition(), caret);
      }
      else
      {
        textArea.setCaretPosition(caret);
      }
    }
  }

  public static final class NextWordAction
          implements ActionListener
  {
    private final boolean select;

    private NextWordAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      int caret = textArea.getCaretPosition();
      final int line = textArea.getCaretLine();
      final int lineStart = textArea.getLineStartOffset(line);
      caret -= lineStart;

      final String lineText = textArea.getLineText(textArea
              .getCaretLine());

      if (caret == lineText.length())
      {
        if (lineStart + caret == textArea.getDocumentLength())
        {
          textArea.getToolkit().beep();
          return;
        }
        caret++;
      }
      else
      {
        final String noWordSep = (String) textArea.getDocument().getProperty("noWordSep");
        caret = TextUtilities.findWordEnd(lineText, caret, noWordSep);
      }

      if (select)
      {
        textArea.select(textArea.getMarkPosition(),
                lineStart + caret);
      }
      else
      {
        textArea.setCaretPosition(lineStart + caret);
      }
    }
  }

  private static final class OverwriteAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      textArea.setOverwriteEnabled(!textArea.isOverwriteEnabled());
    }
  }

  public static final class PrevCharAction
          implements ActionListener
  {
    private final boolean select;

    private PrevCharAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      final int caret = textArea.getCaretPosition();
      if (caret == 0)
      {
        textArea.getToolkit().beep();
        return;
      }

      if (select)
      {
        textArea.select(textArea.getMarkPosition(),
                caret - 1);
      }
      else
      {
        textArea.setCaretPosition(caret - 1);
      }
    }
  }

  public static final class PrevLineAction
          implements ActionListener
  {
    private final boolean select;

    private PrevLineAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      int caret = textArea.getCaretPosition();
      final int line = textArea.getCaretLine();

      if (line == 0)
      {
        textArea.getToolkit().beep();
        return;
      }

      int magic = textArea.getMagicCaretPosition();
      if (magic == -1)
      {
        magic = textArea.offsetToX(line,
                caret - textArea.getLineStartOffset(line));
      }

      caret = textArea.getLineStartOffset(line - 1)
              + textArea.xToOffset(line - 1, magic);
      if (select)
      {
        textArea.select(textArea.getMarkPosition(), caret);
      }
      else
      {
        textArea.setCaretPosition(caret);
      }
      textArea.setMagicCaretPosition(magic);
    }
  }

  public static final class PrevPageAction
          implements ActionListener
  {
    private final boolean select;

    private PrevPageAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      int firstLine = textArea.getFirstLine();
      final int visibleLines = textArea.getVisibleLines();
      final int line = textArea.getCaretLine();

      if (firstLine < visibleLines)
      {
        firstLine = visibleLines;
      }

      textArea.setFirstLine(firstLine - visibleLines);

      final int caret = textArea.getLineStartOffset(Math.max(0, line - visibleLines));
      if (select)
      {
        textArea.select(textArea.getMarkPosition(), caret);
      }
      else
      {
        textArea.setCaretPosition(caret);
      }
    }
  }

  public static final class PrevWordAction
          implements ActionListener
  {
    private final boolean select;

    private PrevWordAction (final boolean select)
    {
      this.select = select;
    }

    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      int caret = textArea.getCaretPosition();
      final int line = textArea.getCaretLine();
      final int lineStart = textArea.getLineStartOffset(line);
      caret -= lineStart;

      final String lineText = textArea.getLineText(textArea
              .getCaretLine());

      if (caret == 0)
      {
        if (lineStart == 0)
        {
          textArea.getToolkit().beep();
          return;
        }
        caret--;
      }
      else
      {
        final String noWordSep = (String) textArea.getDocument().getProperty("noWordSep");
        caret = TextUtilities.findWordStart(lineText, caret, noWordSep);
      }

      if (select)
      {
        textArea.select(textArea.getMarkPosition(),
                lineStart + caret);
      }
      else
      {
        textArea.setCaretPosition(lineStart + caret);
      }
    }
  }

  private static final class RepeatAction
          implements ActionListener,
                     NonRecordable
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      textArea.getInputHandler().setRepeatEnabled(true);
      final String actionCommand = evt.getActionCommand();
      if (actionCommand != null)
      {
        textArea.getInputHandler().setRepeatCount(Integer.parseInt(actionCommand));
      }
    }
  }

  private static final class ToogleRectAction
          implements ActionListener
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      textArea.setSelectionRectangular(!textArea.isSelectionRectangular());
    }
  }

  private static final class InsertCharAction
          implements ActionListener,
                     NonRepeatable
  {
    public final void actionPerformed (final ActionEvent evt)
    {
      final JEditTextArea textArea = getTextArea(evt);
      final String str = evt.getActionCommand();
      final int repeatCount = textArea.getInputHandler().getRepeatCount();

      if (textArea.isEditable())
      {
        final StringBuffer buf = new StringBuffer();
        for (int i = 0; i < repeatCount; i++)
        {
          buf.append(str);
        }
        textArea.overwriteSetSelectedText(buf.toString());
      }
      else
      {
        textArea.getToolkit().beep();
      }
    }
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -