Java-code der Darstellung von Zeilen-Nummer in jtextarea
Ich versuche zu schreiben java-code, um pop-up-text-Bereich und, wenn ich hinzufügen 9000 Zeilen in jtextarea im rechten display 9000 Zeilen und vertikalen Linie.
Gibt es trotzdem, dass ich es tun kann??
Ist es trotzdem, ich kann hinzufügen Zeilennummer wie in Bildern..
Bitte hilft mir!!!! Danke!!
Hier ist mein code:
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.Font;
import java.awt.LayoutManager;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.ScrollPaneConstants;
import javax.swing.text.DefaultCaret;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
//TODO Auto-generated method stub
final JFrame frame = new JFrame("Test");
JPanel panel = new JPanel();
panel.setLayout((LayoutManager) new BoxLayout(panel, BoxLayout.Y_AXIS));
panel.setOpaque(true);
final JTextArea textArea = new JTextArea(20, 30);
textArea.setWrapStyleWord(true);
textArea.setEditable(true);
textArea.setFont(Font.getFont(Font.SANS_SERIF));
JScrollPane scroller = new JScrollPane(textArea);
scroller.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
scroller.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
JPanel inputpanel = new JPanel();
inputpanel.setLayout(new FlowLayout());
JButton button = new JButton("Enter");
DefaultCaret caret = (DefaultCaret) textArea.getCaret();
caret.setUpdatePolicy(DefaultCaret.ALWAYS_UPDATE);
panel.add(scroller);
inputpanel.add(button);
panel.add(inputpanel);
frame.getContentPane().add(BorderLayout.CENTER, panel);
frame.pack();
frame.setLocationByPlatform(true);
frame.setVisible(true);
frame.setResizable(false);
button.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
frame.dispose();
}});
frame.setSize(500, 400);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Bitte hilft mir!!!! Danke!!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sehen Text-Komponente Zeilennummer für eine Komponente, die verwendet werden können, als der Kopfzeile der scrollpane-Komponente mit dem text-Bereich.
Hier der code basiert auf dem post von hier aber behoben, z.B. über effiziente String-Verkettung zu vermeiden, lag bei gedrückter
ENTER
Schlüssel zum Beispiel.In Ihrer GUI-Klasse, einfach instanziieren
LineNumberTextArea
geben und denJTextArea
Instanz zu befestigen. Auch dieJScrollPane
'srowHeaderView
zu denLineNumberingTextArea
Beispiel:Schließlich fügen Sie eine DocumentListener für Ihre
JTextArea
zum aktualisieren der Zeile zahlen, wenn das Dokument geändert:In einem JScrollPane, der Scrollbalken funktioniert nicht richtig, mit einer Komponente TextLineNumber.
Um dieses problem zu beheben (und noch ein problem der Anzeige),
Ich veränderte die Klasse TextLineNumber in JTextLineNumber.
In dieser neuen Klasse, wird der text component-Klasse ist JTextPane aber Sie können es ändern, für JTextComponent.
Um es zu verwenden, legen Sie Ihre JTextLineNumber Komponente in ein panel (mit einem border-layout) auf der WEST-und der text-Komponente in der MITTE.
Schließlich setzen Sie das panel in einer scroll-pane.
Ich hoffe, dass es hilft jemand.
Klasse JTextLineNumber :
Müssen Sie so etwas vielleicht.Fand den link von camickr.
Fügen Sie die Klasse TextLineNumber von diesem link in den Arbeits-Ordner:
Klicken Sie auf hier!
Der Arbeiterklasse:
http://img28.imageshack.us/img28/3731/vm6p.png