JScrollPane in JTextArea benutzen

REC

Bekanntes Mitglied
Ich habe eine JTextArea ,da ich nicht weiss wie lange die Ausgabe sein wird,würde ich gerne Scrollbalken horizontal und vertikal einbauen.

Ich habe im Web eigentlich ein gutes Beispiel gefunden.
Aber wenn ich es so mache,wird das Fenster entweder "weiss" oder der Text hat rundherum einen grauen Balken.

Wo liegt der Fehler?

Java:
import java.awt.Color;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;

/**
 * Dieses einfache Ausgabe Fenster gibt zeigt alle Karten an welche sich in den
 * 5 verschiedenen Karteien befinden
 * 
 * @author 
 * @version 18.8.2010
 * 
 */
public class AusgabeFenster extends JFrame{


	private JFrame mainFrame;
	private JPanel mainPanel;
    private JScrollPane x;
    private JScrollPane y;
	
	private JTextArea textFeld;

	public AusgabeFenster() {

		mainFrame = new JFrame("Listen Ausgabe");
		mainPanel = new JPanel();
		textFeld = new JTextArea();
	
		x = new JScrollPane(textFeld);
		
		
		paint();
	}

	/**
	 * Zeichnet das Fenster,da ich jetz noch nicht genau weiss wie dieses
	 * aussieht muss ich das hier später noch beschreiben
	 */
	public void paint() {

		// Main Frame Einstellungen
		mainFrame.setLayout(new FlowLayout());
		mainFrame.setResizable(false);
		mainFrame.setSize(400, 800);
		mainFrame.setLocationRelativeTo(null);
		mainFrame.getContentPane().setBackground(Color.white);

		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		

		// textFeld Einstellungen
		textFeld.setBackground(Color.white);
		textFeld.setEditable(false);
		
		//Zusammen setzten der Elemente
		
		mainPanel.add(textFeld);
		mainFrame.add(mainPanel);
		
		mainFrame.setVisible(true);
		
		//setContentPane(mainPanel);
		
		
	}

	public void karteAusgeben(Karte karte, int index) {

		textFeld.append("Position " + index + ":  " + karte.getWort1() + " = " + karte.getWort2() + "\n");

	}
	
	public void karteinummer(int kartei){
		textFeld.append("\n");
		textFeld.append("Kartei " + kartei +" " + "\n" + "\n");
	}

}
 

REC

Bekanntes Mitglied
Hey danke, ich kann jetzt mal scrollen.

Aber irgendwie macht das Fenster nach jedem Neustart komische Sachen.
Manchmal sehe 2 Scrollbars also vertikal und horizontal und machmal sehe ich gar nichts?Ich habe 100 Zeile ausgabe aber ich kann nur bis Zeile 27 runterscrollen?

Habe nun mal das Layout auf Border gewechslet ,nun kann ich alles schön scrollen aber das Fenster ist ziemlich klein,wie kann ich das wieder auf die gleiche Grösse mache wie das JFrame?


Mann ich habe nach wie vor komische Fehler???:L
Jedesmal wenn ich es ausführe wird das Fenster anders?
 
Zuletzt bearbeitet:

Haave

Top Contributor
Vielleicht kannst du mit den Methoden
Code:
setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS)
und
Code:
setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS)
dafür sorgen, dass du auf jeden Fall immer eine ScrollBar siehst.
 

REC

Bekanntes Mitglied
Ok versuche ich das mal.Aber diese Fehler die entstehen sind sehr komisch.
Manchmal kann ich sind beide Scrollbars da,manchmal keiner.

Ich im Internet was gelesen von EDT? Aber ich habe NULL ahnung was das sein soll.


Also das bringt auch nichts:(
Mann ich müsste nur noch das hinbekommen, das ich scrollen kann,dann könnte ich in meinem Projekt weitermachen.
 
Zuletzt bearbeitet:

XHelp

Top Contributor
Bist du sicher, dass der Code den du gepostet hast auch wirklich vollständig ist und du da nichts unterschlagen hast?
 

REC

Bekanntes Mitglied
Guten Morgen,

Ich würde mir wirklich wünschen das ich was unterschlagen hätte,und irgendwo eine fetter Fehler liegen würde,aber leider habe ich alles gepostet.

Aber ich setzte hier mal beide Klassen rein.DIe Klasse "AusgabeFenster" und die Klasse "Datenbank",jene die AusgabeFenster benutzt.

Gibt es denn keine Möglichkeit dieses Fenster ganz anders zu machen? Es geht ja grundsätzlich darum,das wenn jemand 100 Wörter hät das dieses alle angezeigt werden können.

Klasse Datenbank

Java:
import java.util.ArrayList;
import java.util.Iterator;

import javax.swing.JOptionPane;



public class Datenbank {


	private ArrayList<Karte> kartei1;
	private ArrayList<Karte> kartei2;
	private ArrayList<Karte> kartei3;
	private ArrayList<Karte> kartei4;
	private ArrayList<Karte> kartei5;
	private ArrayList[] alleKarteien;
        
private Karte aktuelleKarte;

    
	//private Fenster gui;

	public Datenbank() {

		kartei1 = new ArrayList<Karte>();
		kartei2 = new ArrayList<Karte>();
		kartei3 = new ArrayList<Karte>();
		kartei4 = new ArrayList<Karte>();
		kartei5 = new ArrayList<Karte>();
		alleKarteien = new ArrayList[5];
		
                alleKarteien[0] = kartei1;
		alleKarteien[1] = kartei2;
		alleKarteien[2] = kartei3;
		alleKarteien[3] = kartei4;
		alleKarteien[4] = kartei5;
		
		
		for(int i = 0;i < 100;i++){
			kartei4.add(new Karte("Was","geht"));
		}
		

		
	}

	/**
	 * Gibt alle 5 Karteien mit deren Karten aus und beschriftet diese seperat
	 * in einen anderen Fenster aus.
	 * 
	 * Die Methode funktionert so,das sie eine Liste durchgeht in der die
	 * Karteien gespeichert sind.Die einzelne Kartei wird dann herausgenommen
	 * und wieder durchgenommen,und die Karte an die Klasse "AusgabeFenster"
	 * geschickt
	 */

	public void listeAusgeben() {

		AusgabeFenster ausgabe = new AusgabeFenster();

		int karteizähler = 1;

		for (ArrayList<Karte> element : alleKarteien) {
			ArrayList<Karte> aktuelleKartei = element;

			int index = 0;
			while (index < aktuelleKartei.size()) {

				ausgabe.karteinummer(karteizähler);

				Iterator<Karte> it = aktuelleKartei.iterator();
				while (it.hasNext()) {
					Karte temp = it.next();
					aktuelleKarte = temp;
					ausgabe.karteAusgeben(temp, index);
					index++;
				}

			}
			karteizähler++;
		}
	}

	// Diese Methode dient dazu die aktuelle Karte zu verwenden
	public Karte getAktuelleKarte() {
		return kartei1.get(0);
	}

	// Löscht eine Karte aus einem gewählten Array
	public void karteLöschen(int array, int position) {

		if (array == 1) {
			if (position < 0 || position >= kartei1.size()) {
				JOptionPane.showMessageDialog(null,
						"Diese Position ist ungültig!");
			} else {
				kartei1.remove(position);
			}
		} else if (array == 2) {
			if (position < 0 || position >= kartei2.size()) {
				JOptionPane.showMessageDialog(null,
						"Diese Position ist ungültig!");
			} else {
				kartei2.remove(position);
			}

		} else if (array == 3) {
			if (position < 0 || position >= kartei3.size()) {
				JOptionPane.showMessageDialog(null,
						"Diese Position ist ungültig!");
			} else {
				kartei3.remove(position);
			}
		} else if (array == 4) {
			if (position < 0 || position >= kartei4.size()) {
				JOptionPane.showMessageDialog(null,
						"Diese Position ist ungültig!");
			} else {
				kartei4.remove(position);
			}
		} else if (array == 5) {
			if (position < 0 || position >= kartei5.size()) {
				JOptionPane.showMessageDialog(null,
						"Diese Position ist ungültig!");
			} else {
				kartei5.remove(position);
			}
		} else {
			JOptionPane.showMessageDialog(null,
					"Es gibt nur Karteien von 1 bis 5");

		}
	}
}


Klasse AusgabeFenster

Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;

import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;

/**
 * Dieses einfache Ausgabe Fenster gibt zeigt alle Karten an welche sich in den
 * 5 verschiedenen Karteien befinden
 * 
 * @author 
 * @version 18.8.2010
 * 
 */
public class AusgabeFenster {


	private JFrame mainFrame;
	private JPanel mainPanel;
    private JScrollPane x;
    //private JScrollPane y;
	
	private JTextArea textFeld;

	public AusgabeFenster() {

		mainFrame = new JFrame("Listen Ausgabe");
		mainPanel = new JPanel();
		textFeld = new JTextArea();
		//textFeld.setPreferredSize(new Dimension(800, -1));
	
		x = new JScrollPane(textFeld);
		
		
		
		paint();
	}

	/**
	 * Zeichnet das Fenster,da ich jetz noch nicht genau weiss wie dieses
	 * aussieht muss ich das hier später noch beschreiben
	 */
	public void paint() {

		// Main Frame Einstellungen
		mainFrame.setLayout(new BorderLayout());
		mainFrame.setResizable(false);
		mainFrame.setSize(400, 800);
		mainFrame.setLocationRelativeTo(null);
		mainFrame.getContentPane().setBackground(Color.white);

		mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		

		// textFeld Einstellungen
		textFeld.setBackground(Color.white);
		textFeld.setEditable(false);
		
		//Zusammen setzten der Elemente
		
		mainPanel.add(x);
		mainFrame.add(mainPanel,BorderLayout.CENTER);
		
		mainFrame.setVisible(true);
	
		
		//setContentPane(mainPanel);
		
		
	}

	public void karteAusgeben(Karte karte, int index) {

		textFeld.append("Position " + index + ":  " + karte.getWort1() + " = " + karte.getWort2() + "\n");

	}
	
	public void karteinummer(int kartei){
		textFeld.append("\n");
		textFeld.append("Kartei " + kartei +" " + "\n" + "\n");
	}

}

So ich hoffe das jemand mein Fehler findet???:L
 

REC

Bekanntes Mitglied
Also du meinst ich brauche keine mainPanel?
Ok ich werde das mal so versuchen.
Ich dachte eben man sollte eben nie etwas direkt auf das mainFrame draufmachen.
 

Michael...

Top Contributor
Du kannst Da auch ein Panel zwischenschalten, aber dem solltest Du dann ein passendes Layout verpassen. Standardmässig hat das - glaube ich - ein FlowLayout, was in dem Fall eventuell nicht so geeignet ist.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C JScrollPane + JTextArea scrollt nicht Java Basics - Anfänger-Themen 2
N JScrollPane mit JTextArea Java Basics - Anfänger-Themen 4
P JScrollPane an JTextArea anhängen Java Basics - Anfänger-Themen 3
richis-fragen GlassPane über JScrollPane legen Java Basics - Anfänger-Themen 6
B Scrollbares Fenster (JScrollPane) mit JPanel scrollt nicht Java Basics - Anfänger-Themen 3
L JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 10
G Frage zu JScrollPane Java Basics - Anfänger-Themen 12
M JScrollPane scrollt nicht Java Basics - Anfänger-Themen 2
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
N JList + DefaultListModel + JScrollPane --> ensureIndexIsVisible funktioniert nicht immer Java Basics - Anfänger-Themen 1
T JScrollPane in den Code einbauen Java Basics - Anfänger-Themen 5
O JScrollPane zu gross für JTable Java Basics - Anfänger-Themen 2
A JScrollPane nicht sichtbar Java Basics - Anfänger-Themen 5
S JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 6
N jScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 13
L Jscrollpane nach zoomen anpassen Java Basics - Anfänger-Themen 20
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
T JScrollPane: Slider programmgesteuert verschieben? Java Basics - Anfänger-Themen 4
Kenan89 JScrollPane, aber kein Scrollbalken Java Basics - Anfänger-Themen 4
T JScrollPane funktioniert nicht Java Basics - Anfänger-Themen 7
D jScrollPane Problem Java Basics - Anfänger-Themen 16
JStickman JTree, JScrollPane, Liste mit graphischer Suchleiste - Dateimanager Java Basics - Anfänger-Themen 10
A Button das JScrollPane aktualisiert Java Basics - Anfänger-Themen 11
S JScrollPane verhält sich nicht so wie gedacht Java Basics - Anfänger-Themen 2
T JScrollPane ganz runter Scrollen Java Basics - Anfänger-Themen 4
T JScrollPane resized nicht richtig... Java Basics - Anfänger-Themen 4
Z Label verschwindet in JScrollPane Java Basics - Anfänger-Themen 7
N JScrollPane repaint(); geht nicht Java Basics - Anfänger-Themen 4
L JPanel vergrößern bis JScrollPane nicht mehr zu sehen Java Basics - Anfänger-Themen 7
O JScrollPane , JScrollBar Java Basics - Anfänger-Themen 3
Z JScrollPane zeigt Zeit als Datum Java Basics - Anfänger-Themen 5
E Breite des Schiebers in JscrollPane verändern Java Basics - Anfänger-Themen 2
T JScrollPane soll rechts gescrollt gezeichnet werden Java Basics - Anfänger-Themen 5
P JScrollPane Java Basics - Anfänger-Themen 18
J JScrollPane, Regler-Problem Java Basics - Anfänger-Themen 3
J JScrollPane swing Java Basics - Anfänger-Themen 8
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H2SO3- JScrollPane will nicht scrollen Java Basics - Anfänger-Themen 3
_deleted Mehrere Panels untereinander im JScrollPane Java Basics - Anfänger-Themen 4
J JScrollPane wird nicht angezeigt Java Basics - Anfänger-Themen 4
A JScrollPane aktualisiert nicht Java Basics - Anfänger-Themen 2
7 Java Swing: Wie JScrollPane zur JList hinzufügen? Java Basics - Anfänger-Themen 12
C jTabbedPane JScrollPane und jPanel Java Basics - Anfänger-Themen 3
S JScrollPane und JPanel Java Basics - Anfänger-Themen 2
J JScrollBar JScrollPane Java Basics - Anfänger-Themen 9
Q Anwendung eines JScrollPane Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 7
M Probleme mit JScrollPane Java Basics - Anfänger-Themen 5
G JScrollPane Java Basics - Anfänger-Themen 5
S JScrollPane: Scrollbalken werden nicht angezeigt Java Basics - Anfänger-Themen 4
P Brauche Hilfe für JPanel im JScrollPane und Abstände Java Basics - Anfänger-Themen 2
M VisualEditor, Jlist und JScrollPane Java Basics - Anfänger-Themen 9
M JScrollPane soll inhalt zentrieren Java Basics - Anfänger-Themen 3
C Automatischer Umbruch bei JScrollPane? Java Basics - Anfänger-Themen 5
G JScrollPane + JTable + Autoscroll uvm. Java Basics - Anfänger-Themen 5
I Autoscrolling im JScrollPane Java Basics - Anfänger-Themen 3
H JScrollPane -> Problem bei ScrollBar Java Basics - Anfänger-Themen 3
lin JScrollPane & OutOfMemoryError Java Basics - Anfänger-Themen 6
G JScrollPane in der Größe bestimmen Java Basics - Anfänger-Themen 11
R JScrollpane problem Java Basics - Anfänger-Themen 21
C JScrollPane ohne Rahmen? Java Basics - Anfänger-Themen 2
M JScrollPane Java Basics - Anfänger-Themen 4
G Probleme mit JScrollPane Java Basics - Anfänger-Themen 3
M JScrollPane: Autoscroll Java Basics - Anfänger-Themen 14
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
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

Ähnliche Java Themen


Oben