JScrollText u. JTextArea positionierung

Status
Nicht offen für weitere Antworten.

Dreezard

Bekanntes Mitglied
Hallo. Ich hab mal zwei (wahrscheinlich sehrl simple) Fragen.

1: Wie kann man bei der JScrollPane den vertikalen Scrollbalken nach ganz oben setzten?
2: Kann ich in eine JTextArea auch geziehlt hinein schreiben. Sprich in eine Bestimmte Zeile, an eine Bestimmte Stelle von links?


Many Thx im Vorraus
 
B

bygones

Gast
1. meines wissens über das model und dann setValue oder so (könnte auch direkt über die Scrollpane gehen) -> API schauen

2. hol dir den Text aus der Textarea, manipulier den und setz in dann wieder in die Area
 

Dreezard

Bekanntes Mitglied
1. Ich hab's mit:
Code:
JScrollBar scrollBar = scrollText.getVerticalScrollBar();
scrollBar.setValue(0);
probiert. funktioniert aber nicht...

2. Das is n bischen zu aufwändig. Ich schreibe ein Programm, bei dem ich erst einen String in eine Zeile setzten will, dann ab der Mitte der Zeile einen anderen. Da müsste ich vorher erstmal die länge des ersten Strings nehmen, die Zeichen bis zur mitte errechnen und dann beim Zweiten Spaces an den anfang fügen.
 
B

bygones

Gast
1. sry geht auch anders: nutz die methode setCaretPosition(0) der textarea

2. anders wüsste ich nix.. es gibt zwar irgendwas mit der Klasse Document mit der man glaub ich an bestimmten stellen was einfügen kann - aber weiß leider nix konkretes
 

Dreezard

Bekanntes Mitglied
sry, aber
text.setCaretPosition(0);
funktioniert leider genauso wenig, weder wenn ich es nach ausgabe des Textes setzte, noch davor, noch vor dem adden in die Pane
 
B

bygones

Gast
was befindet sich denn in der JScrollpane ? bei JTextComponents sollte dass funktionieren....
 
B

bygones

Gast
mhm - dann würde ich mal sagen: zeig mal code... bei mir klappt das
 

Dreezard

Bekanntes Mitglied
Code:
import java.io.*;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.*;

class Dic extends JFrame implements ActionListener {

     JTextField searchField;
     JTextArea text;
     JScrollPane scrollText;

     public static void main(String args[]) throws Exception {

          Dic main = new Dic();
      }

     public Dic() {

          super("Wörterbuch");
          setSize(800,300);
          setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

          JPanel mainPane = new JPanel();
          mainPane.setLayout(new BorderLayout());

          JPanel upperPane = new JPanel();
          upperPane.setLayout(new FlowLayout(FlowLayout.CENTER));
          JLabel searchLabel = new JLabel("Suche:");
          searchField = new JTextField(15);
          JButton search = new JButton("Find!");
          search.addActionListener(this);
          upperPane.add(searchLabel);
          upperPane.add(searchField);
          upperPane.add(search);
          mainPane.add(upperPane,BorderLayout.NORTH);

          text = new JTextArea();
          //text.setLineWrap(true);
          //text.setWrapStyleWord(true);
          scrollText = new JScrollPane(text);
          mainPane.add(scrollText,BorderLayout.CENTER);

          setContentPane(mainPane);
          setVisible(true);
     }

     public void actionPerformed(ActionEvent e) {

          try {
          text.setText("");
          String found = "", searched = " " + searchField.getText().toLowerCase(), searchFirst = " " + searchField.getText() + " ";
          BufferedReader dicFileBuf = new BufferedReader(new FileReader(new File("dic.txt")));
          StringBuffer foundBroken[] = new StringBuffer[2];
          StringBuffer outgoing = new StringBuffer();

          while(found != null) {
               found = dicFileBuf.readLine();
               if(found.toLowerCase().contains(searched)) {
                    int i = found.indexOf("\\");
                    foundBroken[0] = new StringBuffer();
                    foundBroken[1] = new StringBuffer();
                    foundBroken[0].append(found.substring(0, i - 1));
                    foundBroken[1].append(found.substring(i + 1));
                    text.append(foundBroken[0] + " !! " + foundBroken[1] + "\n");
               }
          }
          text.setCaretPosition(0);
          }
          catch (Exception exc) {}
     }
}

Das ist jetzt erstmal etwas dahingeklatscht.
Das mit dem
Code:
text.append(foundBroken[0] + " !! " + foundBroken[1] + "\n");
steht nur als Platzhalter da. Ich möchte, dass der zweite StringBuffer ab einer bestimmten Position in einer Zeile steht, was meine zweite Frage war.
 
B

bygones

Gast
ok - gestehe mein Fehler ein...
allein die Caretposition hilft da nichts - sie setzt nur den Cursor dorthin, aber nicht die scrollbar....
diesmal verprech ichs dir dass es klappt (bei mir hat es geklappt)...

du musst deiner Scrollbar einen AdjustmentListener hinzufügen.
Code:
JTextArea area = new JTextArea();
		area.setLineWrap(true);
		area.setWrapStyleWord(true);
		final StringBuilder b = new StringBuilder();
		for (int i = 0; i < 1000; i++) {
			b.append(i);
		}
		area.setText(b.toString());
		area.setCaretPosition(b.length());
		JScrollPane s = new JScrollPane(area);
		s.setPreferredSize(new Dimension(200, 200));

		JScrollBar bar = s.getVerticalScrollBar();
		bar.addAdjustmentListener(new AdjustmentListener() {
			public void adjustmentValueChanged(AdjustmentEvent e) {
				e.getAdjustable().setValue(b.length());
			}
		});
das programm macht zwar die andere Richtung, d.h. es setzt die Sicht nach unten, aber das Prinzip sollte klar sein... also einen adjustmentlistener hinzufügen, und bei dir einfach dann immer auf 0 setzen lassen
 

Dreezard

Bekanntes Mitglied
Ich habe gerade was ziehmlich komisches festgestellt. Der führt keinen Befehl aus, der hinter der while-Schleife, noch im Try-Block steht. Also dort wo bei meinen geposteten Quelltext: text.setCaretPosition(0); steht.
Aber das steht doch noch im ActionListener und sollte bei drücken des Buttons ausgeführt werden... oder?
 
B

bygones

Gast
mach mal im catch block ein e.printStackTrace() - ob ne exception kommt
 

Dreezard

Bekanntes Mitglied
hmm.. da haut der doch einige Exceptions raus...:

Code:
java.lang.NullPointerException
	at Dic.actionPerformed(Dic.java:60)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849)
	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169)
	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
	at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:234)
	at java.awt.Component.processMouseEvent(Component.java:5488)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3093)
	at java.awt.Component.processEvent(Component.java:5253)
	at java.awt.Container.processEvent(Container.java:1966)
	at java.awt.Component.dispatchEventImpl(Component.java:3955)
	at java.awt.Container.dispatchEventImpl(Container.java:2024)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822)
	at java.awt.Container.dispatchEventImpl(Container.java:2010)
	at java.awt.Window.dispatchEventImpl(Window.java:1766)
	at java.awt.Component.dispatchEvent(Component.java:3803)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:463)
	at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:234)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
 
B

bygones

Gast
dann geh mal in die Zeile 60 deines codes und schau was für variablen dort stehen. Eine ist null -> daher die Exception
 

Dreezard

Bekanntes Mitglied
In Zeile 60 steht nur die if-Bedingung (man zählt doch ab der ersten Zeile (import...) oder?:
Code:
if(found.toLowerCase().contains(searched))
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B JTextArea getText() Java Basics - Anfänger-Themen 1
A JTextArea entfernen und durch neuen Text ersetzen Java Basics - Anfänger-Themen 8
C Threads jTextArea Ausgabeproblem Java Basics - Anfänger-Themen 3
jaleda100 JTextArea Zeile einfügen Java Basics - Anfänger-Themen 1
Bluedaishi Datum in Jtextarea füllen Java Basics - Anfänger-Themen 5
V System.out.println zu JTextArea Java Basics - Anfänger-Themen 6
T JTextarea in txt datei speichern Java Basics - Anfänger-Themen 3
snipesss JTextArea wird nicht angezeigt Java Basics - Anfänger-Themen 3
R JTextArea final Status ändern Java Basics - Anfänger-Themen 11
T Klassen JTextArea und TextArea Java Basics - Anfänger-Themen 8
J JTextArea visible ohne Text Java Basics - Anfänger-Themen 3
D system.out.println >> JTextArea Java Basics - Anfänger-Themen 1
O JTextPane / JtextArea Zeilenabstand entfernen Java Basics - Anfänger-Themen 1
J Methoden JTextArea auslesen und in JTextfield ausgeben Java Basics - Anfänger-Themen 13
G Inhalt einer JTextArea wird nicht dargestellt Java Basics - Anfänger-Themen 8
G Klassen Richtig auf jTextArea aus anderer Klasse zugreifen? Java Basics - Anfänger-Themen 3
O JTextArea: Wo wird der Text gespeichert? Wie kann man es verhindern? Java Basics - Anfänger-Themen 4
M Farbiger Text in JTextArea Java Basics - Anfänger-Themen 5
H Input/Output JTextArea einzelne Zeile auslesen Java Basics - Anfänger-Themen 6
M Refresh JTextArea Java Basics - Anfänger-Themen 12
X Methode in JTextArea anzeigen lassen Java Basics - Anfänger-Themen 18
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
M Zeilenumbruch in JTextarea Java Basics - Anfänger-Themen 4
A String aus anderer Klasse in JTextArea einfügen Java Basics - Anfänger-Themen 7
Q jTextArea maximale Textlänge Java Basics - Anfänger-Themen 3
Q jTextArea Zeilenendzeichen Java Basics - Anfänger-Themen 4
G JTextArea: nur bestimmte Zeilen anders formatieren Java Basics - Anfänger-Themen 7
L Socket in JTextArea Java Basics - Anfänger-Themen 9
F JTextArea in .txt speichern Java Basics - Anfänger-Themen 13
E JTextArea beim Schreiben automatisch vergrößern Java Basics - Anfänger-Themen 7
F jTextArea Java Basics - Anfänger-Themen 3
D JTextArea Absätze von datei.txt übernehmen Java Basics - Anfänger-Themen 7
B Werte aus JTextArea in einem String Array ablegen Java Basics - Anfänger-Themen 4
N leere JTextArea wird nicht angezeigt - TextArea aber schon? Java Basics - Anfänger-Themen 5
B Werte der Variable aus Klasse JTextArea in einer Datei der Klasse RandomAcessFile speichern Java Basics - Anfänger-Themen 10
S JTextArea mit LineWrap true viel zu groß! Java Basics - Anfänger-Themen 2
D Object auf JTextpane / jTextArea casten? Java Basics - Anfänger-Themen 3
N ein Array auf eine JTextArea ausgeben Java Basics - Anfänger-Themen 2
B JTextArea Farbe und Schrift aendern Java Basics - Anfänger-Themen 2
R JTextArea append Java Basics - Anfänger-Themen 2
c_sidi90 jTextarea kein Zeilenumbruch erlauben Java Basics - Anfänger-Themen 4
M JTextArea Zeichen Beschränken Java Basics - Anfänger-Themen 11
R JScrollPane in JTextArea benutzen Java Basics - Anfänger-Themen 10
N Dateiinhalt zu jTextArea hinzufügen Java Basics - Anfänger-Themen 2
StrikeTom JTextArea mit txt-dateiinhalt füllen Java Basics - Anfänger-Themen 11
StrikeTom Quelltext einer Internetseite auf JTextArea anzeigen Java Basics - Anfänger-Themen 4
Benji0815 Inputstream aus Konsole in JTextArea Java Basics - Anfänger-Themen 14
K Text aus einem Datei lesen , und im JTextArea ausgeben. Java Basics - Anfänger-Themen 3
manunana89 Farbiger Textteile in JTextArea oder ähnlichem! Java Basics - Anfänger-Themen 5
B aktuelle Position einer JTextArea ermitteln Java Basics - Anfänger-Themen 6
Developer_X Strings in JTextarea suchen Java Basics - Anfänger-Themen 15
J Java JTextArea und ActionListener Probleme Java Basics - Anfänger-Themen 6
G JTextArea & Zeichenbegrenzung Java Basics - Anfänger-Themen 4
G Mit Tab aus der JTextArea? Java Basics - Anfänger-Themen 2
G JTextArea - farbige Schrift Java Basics - Anfänger-Themen 5
hdi Alternative zu JTextArea? Java Basics - Anfänger-Themen 3
T Text Rechtsbündig in jTextArea Java Basics - Anfänger-Themen 4
T Dynamischer JTabbedPane Probleme mit JTextArea Java Basics - Anfänger-Themen 2
I Schriftart für einzelnes Wort in der JTextArea auswählen Java Basics - Anfänger-Themen 3
B jTextArea Neuzeichnung erzwingen Java Basics - Anfänger-Themen 3
L JTextArea große setzen Java Basics - Anfänger-Themen 5
G in einer JTextArea ROTE SCHRIFT ausgeben Java Basics - Anfänger-Themen 11
H JTextarea mit automatischem Scrolling Java Basics - Anfänger-Themen 6
W Zeilenposition in JTextArea feststellen(ohne Caret) Java Basics - Anfänger-Themen 7
G Ausgababeumlenkung in JTextArea Java Basics - Anfänger-Themen 4
S Ausrichtung des Textes in einer JTextArea Java Basics - Anfänger-Themen 12
C JTextArea + Zeilennummerierung Java Basics - Anfänger-Themen 3
D Eine ganze Textdatei in einer jTextArea anzeigen Java Basics - Anfänger-Themen 4
D JTextarea mit Zeilenumbruchs Problem Java Basics - Anfänger-Themen 10
R JTextArea +Leerzeilen Java Basics - Anfänger-Themen 3
M String aus externer Klasse in JTextArea schreiben Java Basics - Anfänger-Themen 4
G JTextArea mit Daten aus Datenbank ( im Wert Sring ) befüllen Java Basics - Anfänger-Themen 3
I JtextArea zeigt nichts an! Java Basics - Anfänger-Themen 3
B JTextArea mit verschiedenen Fonts Java Basics - Anfänger-Themen 4
I JTextArea insert Methode Java Basics - Anfänger-Themen 5
G JTextArea: Anlegen, Text löschen, überschreiben Java Basics - Anfänger-Themen 4
G Zählen der Zeichen in JTextArea? Java Basics - Anfänger-Themen 4
G JTextArea Java Basics - Anfänger-Themen 7
E Bild in JTextArea einfügen Java Basics - Anfänger-Themen 16
E Automatischer Zeilen-Umbruch bei JTextArea Java Basics - Anfänger-Themen 4
N JPanel / JTextArea vergrößern Java Basics - Anfänger-Themen 6
H Zeilennummern in JTextArea Java Basics - Anfänger-Themen 3
S JTextArea Java Basics - Anfänger-Themen 6
G JTextArea: insertUpdate() und writeLock() Java Basics - Anfänger-Themen 3
P In JTextArea soll automisch an einen bestimmte Scrollbar pos Java Basics - Anfänger-Themen 14
J schleife unterbrechen JTextArea aktualisieren Java Basics - Anfänger-Themen 8
M Textfile in einer JTextArea anzeigen Java Basics - Anfänger-Themen 3
D Mehrfarbige Zeilen in JTextArea Java Basics - Anfänger-Themen 4
D Text aus JTextArea löschen ? Java Basics - Anfänger-Themen 10
G Aktion bei Änderung in JTextArea starten Java Basics - Anfänger-Themen 2
C Markierten Text im JTextArea bearbeiten? Java Basics - Anfänger-Themen 2
D JTextArea Probleme !!! Brauche eure Hilfe Java Basics - Anfänger-Themen 2
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
O Jtextarea bzw jtextpane rechtsbündig oder blocksatz Java Basics - Anfänger-Themen 6
M Prob bei JTextArea auf .setEditable(false) setzen Java Basics - Anfänger-Themen 2
S JTextArea.ReplaceAll() schneidet Zeichen weg Java Basics - Anfänger-Themen 3
S JTextArea Problem mit Anzeige Java Basics - Anfänger-Themen 2
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
T JTextArea mit allen Formatierungen in eine Datei schreiben Java Basics - Anfänger-Themen 15
M Border um JTextArea? Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben