Я пытаюсь добавить прослушиватель документов в JTextArea, чтобы, когда пользователь нажимал ввод, он читал последнюю строку/символы с новой строки.
Я попробовал следующий код, но Eclipse не нравится display.getDocument().addDocumentListener(new AL());
. Это говорит
Охватывающий экземпляр типа ScrollingTextArea недоступен. Выделение должно быть дополнено включающим экземпляром типа ScrollingTextArea (например, x.new 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
}
}
}