Я пытаюсь добавить прослушиватель документов в JTextArea, так что, когда пользователь нажимает кнопку ввода, он будет читать в последней строке/символы с новой строки.
Я попробовал следующий код, но Eclipse не нравится display.getDocument().addDocumentListener(new AL());
, В нем говорится:
Нет доступного экземпляра типа ScrollingTextArea. Должен квалифицировать выделение с помощью экземпляра экземпляра типа ScrollingTextArea (egxnew A(), где x является экземпляром ScrollingTextArea).
Как добавить слушателя действий в JTextArea?
Код:
package guis;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.border.EtchedBorder;
import javax.swing.border.TitledBorder;
import javax.swing.event.DocumentEvent;
import javax.swing.event.DocumentListener;
public class ScrollingTextArea {
public static void main ( String[] args )
{
JPanel middlePanel = new JPanel ();
middlePanel.setBorder(new TitledBorder(new EtchedBorder (), "Display Area" ) );
// create the middle panel components
JTextArea display = new JTextArea(16,58 );
JScrollPane scroll = new JScrollPane(display);
display.getDocument().addDocumentListener(new AL());
scroll.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
//Add Textarea in to middle panel
middlePanel.add(scroll);
JFrame frame = new JFrame();
frame.add( middlePanel );
frame.pack();
frame.setLocationRelativeTo(null);
frame.setVisible(true);
}
public class AL implements DocumentListener {
@Override
public void insertUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void removeUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
@Override
public void changedUpdate(DocumentEvent e) {
// TODO Auto-generated method stub
}
}
}
Вложенный класс AL
должен быть статическим. Если вам не нужно экспортировать класс по какой-либо причине, он, вероятно, должен быть private
.
private static class AL implements DocumentListener {…}
Создайте отдельный класс для AL
Или
Определите класс AL
вне класса ScrollingTextArea
без public
модификатора.