📄 acltextarea.java
字号:
textArea.getToolkit().beep();
return;
}
if (textArea.getSelectionStart()
!= textArea.getSelectionEnd()) {
textArea.setSelectedText("");
}
else {
int caret = textArea.getCaretPosition();
if (caret == 0) {
textArea.getToolkit().beep();
return;
}
try {
textArea.getDocument().remove(caret - 1, 1);
}
catch (BadLocationException bl) {
bl.printStackTrace();
}
}
}
}
public static class delete implements ActionListener {
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
if (!textArea.isEditable()) {
textArea.getToolkit().beep();
return;
}
if (textArea.getSelectionStart()
!= textArea.getSelectionEnd()) {
textArea.setSelectedText("");
}
else {
int caret = textArea.getCaretPosition();
if (caret == textArea.getDocumentLength()) {
textArea.getToolkit().beep();
return;
}
try {
textArea.getDocument().remove(caret, 1);
}
catch (BadLocationException bl) {
bl.printStackTrace();
}
}
}
}
public static class end implements ActionListener {
public end(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
int lastOfLine = textArea.getLineEndOffset(
textArea.getCaretLine()) - 1;
int lastVisibleLine = textArea.getFirstLine()
+ textArea.getVisibleLines();
if (lastVisibleLine >= textArea.getLineCount()) {
lastVisibleLine = Math.min(textArea.getLineCount() - 1,
lastVisibleLine);
}
else {
lastVisibleLine -= (textArea.getElectricScroll() + 1);
}
int lastVisible = textArea.getLineEndOffset(lastVisibleLine) - 1;
int lastDocument = textArea.getDocumentLength();
if (caret == lastDocument) {
textArea.getToolkit().beep();
return;
}
else if (caret == lastVisible) {
caret = lastDocument;
}
else if (caret == lastOfLine) {
caret = lastVisible;
}
else {
caret = lastOfLine;
}
if (select) {
textArea.select(textArea.getMarkPosition(), caret);
}
else {
textArea.setCaretPosition(caret);
}
}
private boolean select;
}
public static class home implements ActionListener {
public home(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
int firstLine = textArea.getFirstLine();
int firstOfLine = textArea.getLineStartOffset(
textArea.getCaretLine());
int firstVisibleLine = (firstLine == 0 ? 0 :
firstLine + textArea.getElectricScroll());
int firstVisible = textArea.getLineStartOffset(
firstVisibleLine);
if (caret == 0) {
textArea.getToolkit().beep();
return;
}
else if (caret == firstVisible) {
caret = 0;
}
else if (caret == firstOfLine) {
caret = firstVisible;
}
else {
caret = firstOfLine;
}
if (select) {
textArea.select(textArea.getMarkPosition(), caret);
}
else {
textArea.setCaretPosition(caret);
}
}
private boolean select;
}
public static class insert_break implements ActionListener {
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
if (!textArea.isEditable()) {
textArea.getToolkit().beep();
return;
}
textArea.setSelectedText("\n");
}
}
public static class insert_tab implements ActionListener {
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
if (!textArea.isEditable()) {
textArea.getToolkit().beep();
return;
}
textArea.overwriteSetSelectedText("\t");
}
}
public static class next_char implements ActionListener {
public next_char(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
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);
}
}
private boolean select;
}
public static class next_line implements ActionListener {
public next_line(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
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);
}
private boolean select;
}
public static class next_page implements ActionListener {
public next_page(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int lineCount = textArea.getLineCount();
int firstLine = textArea.getFirstLine();
int visibleLines = textArea.getVisibleLines();
int line = textArea.getCaretLine();
firstLine += visibleLines;
if (firstLine + visibleLines >= lineCount - 1) {
firstLine = lineCount - visibleLines;
}
textArea.setFirstLine(firstLine);
int caret = textArea.getLineStartOffset(
Math.min(textArea.getLineCount() - 1,
line + visibleLines));
if (select) {
textArea.select(textArea.getMarkPosition(), caret);
}
else {
textArea.setCaretPosition(caret);
}
}
private boolean select;
}
public static class next_word implements ActionListener {
public next_word(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
int line = textArea.getCaretLine();
int lineStart = textArea.getLineStartOffset(line);
caret -= lineStart;
String lineText = textArea.getLineText(textArea.getCaretLine());
if (caret == lineText.length()) {
if (lineStart + caret == textArea.getDocumentLength()) {
textArea.getToolkit().beep();
return;
}
caret++;
}
else {
char ch = lineText.charAt(caret);
String noWordSep = (String)textArea.getDocument()
.getProperty("noWordSep");
boolean selectNoLetter = (!Character.isLetterOrDigit(ch)
&& noWordSep.indexOf(ch) == -1);
int wordEnd = lineText.length();
for (int i = caret; i < lineText.length(); i++) {
ch = lineText.charAt(i);
if (selectNoLetter ^ (!Character.isLetterOrDigit(ch) &&
noWordSep.indexOf(ch) == -1)) {
wordEnd = i;
break;
}
}
caret = wordEnd;
}
if (select) {
textArea.select(textArea.getMarkPosition(),
lineStart + caret);
}
else {
textArea.setCaretPosition(lineStart + caret);
}
}
private boolean select;
}
public static class overwrite implements ActionListener {
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
textArea.setOverwriteEnabled(
!textArea.isOverwriteEnabled());
}
}
public static class prev_char implements ActionListener {
public prev_char(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
if (caret == 0) {
textArea.getToolkit().beep();
return;
}
if (select) {
textArea.select(textArea.getMarkPosition(),
caret - 1);
}
else {
textArea.setCaretPosition(caret - 1);
}
}
private boolean select;
}
public static class prev_line implements ActionListener {
public prev_line(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
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);
}
private boolean select;
}
public static class prev_page implements ActionListener {
public prev_page(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int firstLine = textArea.getFirstLine();
int visibleLines = textArea.getVisibleLines();
int line = textArea.getCaretLine();
if (firstLine < visibleLines) {
firstLine = visibleLines;
}
textArea.setFirstLine(firstLine - visibleLines);
int caret = textArea.getLineStartOffset(
Math.max(0, line - visibleLines));
if (select) {
textArea.select(textArea.getMarkPosition(), caret);
}
else {
textArea.setCaretPosition(caret);
}
}
private boolean select;
}
public static class prev_word implements ActionListener {
public prev_word(boolean select) {
this.select = select;
}
public void actionPerformed(ActionEvent evt) {
ACLTextArea textArea = getTextArea(evt);
int caret = textArea.getCaretPosition();
int line = textArea.getCaretLine();
int lineStart = textArea.getLineStartOffset(line);
caret -= lineStart;
String lineText = textArea.getLineText(textArea.getCaretLine());
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -