TextArea und ScrollBar

addamain

Mitglied
Hallo zusammen,

ich habe leider ein kleines Problem, aber ich hoffe dass mir jm von euch Helfen kann...

Ich habe eine TextArea bei der der Textinhalt weiter nach unten hinausgeht - daher brauche ich einen Scrollbalken - google hat mir JScrollBar geliefert.

Meine TextArea sieht so aus:

Java:
private JTextArea taPositionen = null;
jContentPane.add(getTaPositionen(), null);

private JTextArea getTaPositionen() {
	if (taPositionen == null) {
	taPositionen = new JTextArea();
	taPositionen.setBounds(new Rectangle(15, 305, 450, 160));
	}
	return taPositionen;
}

Wie bzw. Was muss ich machen, damit ich rechts neben der TextArea einen Scrollbalken bekommen, mit dem man nach unten Scrollen kann?

Ich bedanke mich schonmal ganz Herzlich bei allen Helfenden ;)

Liebe Grüße, Addamain
 

addamain

Mitglied
Ok, habe vergessen den Code von der ScrollBar einzusetzen:

Java:
private JScrollBar jScrollBar = new JScrollBar();
jContentPane.add(getJScrollBar(), null);

private JScrollBar getJScrollBar() {
	if (jScrollBar == null) {
		jScrollBar = new JScrollBar();
		jScrollBar.setBounds(new Rectangle(446, 270, 33, 113));
	}
	return jScrollBar;
}

Habe jetzt gemacht was du geschrieben hast, aber wie muss ich nun vorgehen? Irgendwie komme ich mit den Beispielen ned weiter, die mir Google liefert...

Danke dir aber schonmal vielmals für die schnelle Hilfe.

Grüße, Addamain
 

Miness

Mitglied
Du hast jetzt deinen ganzen Code für JScrollBar angepasst, aber du musst nur Zeile 2 so ergänzen, wie es Runtime beschrieben hat (Achtung: mit JScrollPane, nicht JScrollBar):

Java:
private JTextArea taPositionen = null;
jContentPane.add(new JScrollPane(getTaPositionen()), null);
 
private JTextArea getTaPositionen() {
    if (taPositionen == null) {
    taPositionen = new JTextArea();
    taPositionen.setBounds(new Rectangle(15, 305, 450, 160));
    }
    return taPositionen;
}

Du übergibst also deine JTextArea dem Konstruktor von JScrollPane, und schon hat die TextArea einen Scrollbalken! ;)
 
Zuletzt bearbeitet:

addamain

Mitglied
Wenn ich

Java:
jContentPane.add(getTaPositionen(), null);

in

Java:
jContentPane.add(new JScrollPane(getTaPositionen()), null);

ändere, dann verschwindet die TextArea - sie wird mir nicht mehr im GUI Editor sowie auch in der Compilierten Form angezeigt...

Habe ich was übersehen?

Danke euch beiden.

Grüße, Addamain
 

addamain

Mitglied
Java:
package paketAuftrag;

import java.awt.BorderLayout;
import javax.swing.JPanel;
import javax.swing.JFrame;
import javax.swing.JButton;
import java.awt.Rectangle;
import javax.swing.JLabel;
import javax.swing.JTextField;
import javax.swing.JTextArea;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JScrollBar;
import javax.swing.ScrollPaneConstants;
import java.awt.Font;

public class Hauptfenster extends JFrame {

	private static final long serialVersionUID = 1L;
	private JPanel jContentPane = null;
	private Auftrag aktAuftrag = new Auftrag();  //  @jve:decl-index=0:
	private JButton btEnde = null;
	private JLabel jLabel = null;
	private JTextField tfAuftrNr = null;
	private JLabel jLabel1 = null;
	private JLabel jLabel2 = null;
	private JLabel jLabel3 = null;
	private JLabel jLabel4 = null;
	private JLabel lbKdNr = null;
	private JLabel lbAuftrDat = null;
	private JLabel lbKdName = null;
	private JLabel lbAuftrTermin = null;
	private JLabel jLabel5 = null;
	private JLabel jLabel6 = null;
	private JLabel jLabel7 = null;
	private JLabel jLabel8 = null;
	private JLabel lbGesammtWert = null;
	private JButton btNeueSuche = null;
	private JTextArea taPositionen = null;
	private JScrollBar jScrollBar = null;
	private JLabel jLabel9 = null;
	public Hauptfenster() {
		super();
		initialize();
		lbAuftrDat.setVisible(false);
		lbAuftrTermin.setVisible(false);
		lbKdName.setVisible(false);
		lbKdNr.setVisible(false);
		jLabel1.setVisible(false);
		jLabel2.setVisible(false);
		jLabel3.setVisible(false);
		jLabel4.setVisible(false);
		jLabel7.setVisible(false);
		jLabel8.setVisible(false);
		lbGesammtWert.setVisible(false);
		btNeueSuche.setVisible(false);
		taPositionen.setVisible(false);
		jScrollBar.setVisible(false);
	}

	private void initialize() {
		this.setSize(500, 635);
		this.setContentPane(getJContentPane());
		this.setTitle("Auftragverwaltung");
	}

	private JPanel getJContentPane() {
		if (jContentPane == null) {
			jLabel9 = new JLabel();
			jLabel9.setBounds(new Rectangle(70, 9, 342, 47));
			jLabel9.setFont(new Font("Dialog", Font.BOLD, 36));
			jLabel9.setText("Auftragsverwaltung");
			lbGesammtWert = new JLabel();
			lbGesammtWert.setBounds(new Rectangle(110, 470, 355, 20));
			lbGesammtWert.setText("lbGesammtWert");
			jLabel8 = new JLabel();
			jLabel8.setBounds(new Rectangle(15, 470, 90, 20));
			jLabel8.setText("Gesammtwert:");
			jLabel7 = new JLabel();
			jLabel7.setBounds(new Rectangle(15, 280, 450, 20));
			jLabel7.setText("Folgende Positionen sind in dem Auftrag enthalten:");
			jLabel6 = new JLabel();
			jLabel6.setBounds(new Rectangle(15, 120, 450, 20));
			jLabel6.setText("Eingabe mit der Entertaste.");
			jLabel5 = new JLabel();
			jLabel5.setBounds(new Rectangle(15, 100, 450, 20));
			jLabel5.setText("Bitte geben Sie eine Auftragsnummer ein und bestätigen Sie Ihre");
			lbAuftrTermin = new JLabel();
			lbAuftrTermin.setBounds(new Rectangle(115, 240, 350, 20));
			lbAuftrTermin.setText("lbAuftrTermin");
			lbKdName = new JLabel();
			lbKdName.setBounds(new Rectangle(115, 180, 350, 20));
			lbKdName.setText("lbKdName");
			lbAuftrDat = new JLabel();
			lbAuftrDat.setBounds(new Rectangle(115, 210, 350, 20));
			lbAuftrDat.setText("lbAuftrDat");
			lbKdNr = new JLabel();
			lbKdNr.setBounds(new Rectangle(115, 150, 350, 20));
			lbKdNr.setText("lbKdNr");
			jLabel4 = new JLabel();
			jLabel4.setBounds(new Rectangle(15, 240, 100, 20));
			jLabel4.setText("Auftragstermin:");
			jLabel3 = new JLabel();
			jLabel3.setBounds(new Rectangle(15, 210, 100, 20));
			jLabel3.setText("Auftragsdatum:");
			jLabel2 = new JLabel();
			jLabel2.setBounds(new Rectangle(15, 180, 100, 20));
			jLabel2.setText("Kundenname:");
			jLabel1 = new JLabel();
			jLabel1.setBounds(new Rectangle(15, 150, 100, 20));
			jLabel1.setText("Kundennummer:");
			jLabel = new JLabel();
			jLabel.setBounds(new Rectangle(15, 60, 180, 25));
			jLabel.setText("Auftragsnummer:");
			jContentPane = new JPanel();
			jContentPane.setLayout(null);
			jContentPane.add(getBtEnde(), null);
			jContentPane.add(jLabel, null);
			jContentPane.add(getTfAuftrNr(), null);
			jContentPane.add(jLabel1, null);
			jContentPane.add(jLabel2, null);
			jContentPane.add(jLabel3, null);
			jContentPane.add(jLabel4, null);
			jContentPane.add(lbKdNr, null);
			jContentPane.add(lbAuftrDat, null);
			jContentPane.add(lbKdName, null);
			jContentPane.add(lbAuftrTermin, null);
			jContentPane.add(jLabel5, null);
			jContentPane.add(jLabel6, null);
			jContentPane.add(jLabel7, null);
			jContentPane.add(jLabel8, null);
			jContentPane.add(lbGesammtWert, null);
			jContentPane.add(getBtNeueSuche(), null);
			jContentPane.add(getTaPositionen(), null);
			jContentPane.add(getJScrollBar(), null);
			jContentPane.add(jLabel9, null);
		}
		return jContentPane;
	}

	private JButton getBtEnde() {
		if (btEnde == null) {
			btEnde = new JButton();
			btEnde.setBounds(new Rectangle(9, 515, 465, 30));
			btEnde.setText("beenden");
			btEnde.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					System.exit(1);
				}
			});
		}
		return btEnde;
	}

	private JTextField getTfAuftrNr() {
		if (tfAuftrNr == null) {
			tfAuftrNr = new JTextField();
			tfAuftrNr.setBounds(new Rectangle(200, 60, 100, 25));
			tfAuftrNr.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					jLabel6.setVisible(false);
					jLabel5.setVisible(false);
					jLabel1.setVisible(true);
					jLabel2.setVisible(true);
					jLabel3.setVisible(true);
					jLabel4.setVisible(true);
					lbAuftrDat.setVisible(true);
					jLabel7.setVisible(true);
					jLabel8.setVisible(true);
					lbGesammtWert.setVisible(true);
					lbAuftrTermin.setVisible(true);
					lbKdName.setVisible(true);
					lbKdNr.setVisible(true);
					btNeueSuche.setVisible(true);
					taPositionen.setVisible(true);
					jScrollBar.setVisible(true);
					taPositionen.setText("");
					lbAuftrDat.setText("");
					lbAuftrTermin.setText("");
					lbKdName.setText("");
					lbKdNr.setText("");
					lbGesammtWert.setText("");
					taPositionen.setText("");
					aktAuftrag.setAuftrNr(tfAuftrNr.getText());
					aktAuftrag.datenHolen();
					aktAuftrag.kundenName();
					aktAuftrag.positionenDaten();
					int mAnzahl = aktAuftrag.positionenHolen();
					if(mAnzahl!=0)
					{
					lbKdNr.setText(aktAuftrag.getKunden().getKdnr());
					lbKdName.setText(aktAuftrag.getKunden().getKdName());
					lbAuftrDat.setText(aktAuftrag.getAuftrDat());
					lbAuftrTermin.setText(aktAuftrag.getAuftrTermin());
					double mGesamt=0;

					for(int i=0; i<mAnzahl; i++)
					{
						mGesamt=mGesamt+aktAuftrag.getPositionen(i).berechnePosition();
						taPositionen.append(aktAuftrag.getPositionen(i).getArtNr() + "   ");
						taPositionen.append(aktAuftrag.getPositionen(i).getBez() + "   ");
						taPositionen.append(aktAuftrag.getPositionen(i).getMenge() + "x   ");
						taPositionen.append(String.valueOf(aktAuftrag.getPositionen(i).berechnePosition()));
						taPositionen.append("\n");
					}
					lbGesammtWert.setText(String.valueOf(mGesamt) + " €");
					
					}
				}
			});
		}
		return tfAuftrNr;
	}

	private JButton getBtNeueSuche() {
		if (btNeueSuche == null) {
			btNeueSuche = new JButton();
			btNeueSuche.setBounds(new Rectangle(9, 555, 465, 30));
			btNeueSuche.setText("neue Eingabe");
			btNeueSuche.addActionListener(new java.awt.event.ActionListener() {
				public void actionPerformed(java.awt.event.ActionEvent e) {
					lbAuftrDat.setVisible(false);
					lbAuftrTermin.setVisible(false);
					lbKdName.setVisible(false);
					lbKdNr.setVisible(false);
					jLabel1.setVisible(false);
					jLabel2.setVisible(false);
					jLabel3.setVisible(false);
					jLabel4.setVisible(false);
					jLabel7.setVisible(false);
					jLabel8.setVisible(false);
					lbGesammtWert.setVisible(false);
					btNeueSuche.setVisible(false);
					jLabel5.setVisible(true);
					jLabel6.setVisible(true);
					taPositionen.setVisible(false);
					jScrollBar.setVisible(false);
					lbAuftrDat.setText("");
					lbAuftrTermin.setText("");
					lbKdName.setText("");
					lbKdNr.setText("");
					lbGesammtWert.setText("");
					taPositionen.setText("");
				}
			});
		}
		return btNeueSuche;
	}

	private JTextArea getTaPositionen() {
		if (taPositionen == null) {
			taPositionen = new JTextArea();
			taPositionen.setBounds(new Rectangle(15, 305, 425, 155));
		}
		return taPositionen;
	}

	private JScrollBar getJScrollBar() {
		if (jScrollBar == null) {
			jScrollBar = new JScrollBar();
			jScrollBar.setBounds(new Rectangle(440, 305, 20, 155));
		}
		return jScrollBar;
	}


}

Gerne, wenn ihr damit mehr anfangen könnt ;)

Danke für eure Hilfe ;)
 

Runtime

Top Contributor
Java:
jContentPane.add(getTaPositionen(), null);
jContentPane.add(getJScrollBar(), null);
Du hast ja immer noch die JScrollBar. Die kannst du wegschmeissen und
Java:
jContentPane.add(getTaPositionen(), null);
in
Java:
jContentPane.add(new JScrollPane(getTaPositionen()), null);
ändern.
 

addamain

Mitglied
Ist das so richtig:

Java:
//jContentPane.add(getTaPositionen(), null);
			//jContentPane.add(getJScrollBar(), null);
			jContentPane.add(new JScrollPane(getTaPositionen()), null);

Wenn ich das so drin stehen habe, dann verschwindet die TextArea und der Scroll Balken...
 

L-ectron-X

Gesperrter Benutzer
Gib mal die Grösse der JTextArea und des JScrollPanes aus.

Probiere mal
Java:
System.out.println("JTextArea - preferred size: "+textArea.getPreferredSize().width+" x "+textArea.getPreferredSize().height);
System.out.println("JTextArea - size: "+textArea.getSize().width+" x "+textArea.getSize().height);
System.out.println("JScrollPane - preferred size: "+scrollPane.getPreferredSize().width+" x "+scrollPane.getPreferredSize().height);
System.out.println("JScrollPane - size: "+scrollPane.getSize().width+" x "+scrollPane.getSize().height);
Du brauchst dazu aber eine Referenz auf deine JScrollpane.
 

Runtime

Top Contributor
Ich hab grad gemerkt, dass du das Null-Layout nimmst - NULL LAYOUTS SIND BÖSE!
Wie du ein richtiges Layout benutzt findest du hier.
In der FAQ gibts ebenfalls Beiträge zu LayoutManagern.

Du kannst auch einen GUI Builder verwenden, wenns dir zu mühsam wird.
 

addamain

Mitglied
Du kannst auch einen GUI Builder verwenden, wenns dir zu mühsam wird.

Ich benutze Eclipse zum Coden, da ist n Visual Editor mit dabei, weiß jetzt grad ned mehr welcher das ist... Der legt halt die "null" Sachen so an wie sie da sind...

Warum ist das Null Layout ned so gut?

Wie komme ich jetzt mit meinem Scrollbalken weiter?

Danke für eure Hilfe ;)

Liebe Grüße, Addamain
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
M TextArea scrollbar bei editable false Java Basics - Anfänger-Themen 5
M Scrollbar zu Textarea Java Basics - Anfänger-Themen 5
JavaBeginner22 TextArea, ohne Zeilenumbruch? Java Basics - Anfänger-Themen 4
B Ausgabe in TextArea funktioniert nicht Java Basics - Anfänger-Themen 2
J Java TextArea Text bei hinzufügen makieren Java Basics - Anfänger-Themen 1
J Buchstaben aus textArea extrahieren Java Basics - Anfänger-Themen 4
O ScrollPane, TextArea Java Basics - Anfänger-Themen 1
J Ärger mit TextArea und Linesep. Java Basics - Anfänger-Themen 3
T Java FX TextArea Java Basics - Anfänger-Themen 3
D JScrollPane mit TextArea Java Basics - Anfänger-Themen 5
M Textarea auslesen und beschreiben Java Basics - Anfänger-Themen 8
T Datum wird auf der Konsole richtig ausgegeben, aber im Textarea kommt ERROR Java Basics - Anfänger-Themen 8
T Klassen JTextArea und TextArea Java Basics - Anfänger-Themen 8
S Erste Schritte Sprachermittler - Datei öffnen, Text in TextArea, Bereinigen, Auswerten Java Basics - Anfänger-Themen 14
P JavaFX TextArea.setText Java Basics - Anfänger-Themen 13
K Symmetrische Verschlüsselung von TextArea Java Basics - Anfänger-Themen 7
fLooojava Output in einer Textarea einfärben Java Basics - Anfänger-Themen 7
S import java.*; vs import java.awt.TextArea Java Basics - Anfänger-Themen 7
S TextArea, RandomAccessFile, Apend und andere Tricks... Java Basics - Anfänger-Themen 7
F TextArea auslesen und in Datei speichern Java Basics - Anfänger-Themen 4
G textarea action Java Basics - Anfänger-Themen 5
F Erste Schritte String von anderer Klasse auf TextArea von erster Klasse Java Basics - Anfänger-Themen 12
A Timer: textarea.getText() mit Variable vergleichen Java Basics - Anfänger-Themen 3
M TextArea hält Zeilengrenze nicht ein Java Basics - Anfänger-Themen 4
M Textarea auslesen Java Basics - Anfänger-Themen 6
H Input/Output Inhalt einer TextArea in Hex umwandeln Java Basics - Anfänger-Themen 10
P Textarea auslesen Java Basics - Anfänger-Themen 18
R Array in Textarea ausgeben Java Basics - Anfänger-Themen 3
Binary.Coder Bruch in Textarea Java Basics - Anfänger-Themen 5
0 String farbig in TextArea Java Basics - Anfänger-Themen 10
B ArrayList zu TextArea Java Basics - Anfänger-Themen 5
N leere JTextArea wird nicht angezeigt - TextArea aber schon? Java Basics - Anfänger-Themen 5
G Text aus TextArea in Zwischenablage kopieren Java Basics - Anfänger-Themen 6
S Texteingabe in Textarea sperren? Java Basics - Anfänger-Themen 3
Luk10 TextArea und Konsole ... Java Basics - Anfänger-Themen 3
C ArrayList In textarea ausgeben Java Basics - Anfänger-Themen 3
D TextArea clearen mit setText("") ? Java Basics - Anfänger-Themen 21
K In TextArea ausgeben ? Java Basics - Anfänger-Themen 4
M im Programm TextArea hinzufügen Java Basics - Anfänger-Themen 2
K Txt statt in TextArea in JTable einlesen und bearbeiten können Java Basics - Anfänger-Themen 4
S String repräsentation eines XML-Files für Textarea formatieren. Java Basics - Anfänger-Themen 2
Z Text aus externer Datei in TextArea einlesen Java Basics - Anfänger-Themen 5
Z TextArea Größe festlegen Java Basics - Anfänger-Themen 22
S Zeilenumbruch awt.textarea Java Basics - Anfänger-Themen 16
P Textarea aktualisieren, Referenz fehlt Java Basics - Anfänger-Themen 4
D Problem beim auslesen von TextArea Java Basics - Anfänger-Themen 3
J Multithreading mit einer TextArea Java Basics - Anfänger-Themen 29
S Konsole auf Textarea Java Basics - Anfänger-Themen 7
N String vom InputStream in TextArea übertragen Java Basics - Anfänger-Themen 6
E Probleme mit setText() bzw. append() bei TextArea Java Basics - Anfänger-Themen 13
D Probleme mit TextArea und Textfield Java Basics - Anfänger-Themen 27
M Scrollpane an Textarea anhängen Java Basics - Anfänger-Themen 3
W TextArea Probleme Java Basics - Anfänger-Themen 3
M String in textarea übernehmen klappt nicht Java Basics - Anfänger-Themen 13
P TextArea Problem Java Basics - Anfänger-Themen 8
G TextArea - Strings farbig Java Basics - Anfänger-Themen 2
D Button im Bezug auf TextArea Java Basics - Anfänger-Themen 17
Q TextArea - wie mache ich einen Absatz? Java Basics - Anfänger-Themen 9
H Textarea aktualisieren Java Basics - Anfänger-Themen 2
P aus Textarea bestimmte Zeile auslesen Java Basics - Anfänger-Themen 3
J Textarea (zeichen) in Zahlen umwandeln Java Basics - Anfänger-Themen 5
R Variable in Textarea auslesen Java Basics - Anfänger-Themen 7
G Bild hinter TextArea Java Basics - Anfänger-Themen 2
G Automatischer Zeilenumbruch bei einer TextArea Java Basics - Anfänger-Themen 16
D textarea in einer JSP Java Basics - Anfänger-Themen 3
M Inhalt einer TextArea in die Zwischenablage kopieren Java Basics - Anfänger-Themen 2
L Textformatierung ist TextArea Java Basics - Anfänger-Themen 7
N In der Textarea an einer bestimmten Positon weiterschreiben? Java Basics - Anfänger-Themen 6
L Strings von Datei lesen und in TextArea schieben Java Basics - Anfänger-Themen 3
7 TextArea Java Basics - Anfänger-Themen 3
O Konsolenausgabe auf TextArea umleiten Java Basics - Anfänger-Themen 4
C HTML in TextArea deaktivieren. Java Basics - Anfänger-Themen 2
V TextArea einlesen, zeichen verändern, ausgeben! Java Basics - Anfänger-Themen 2
U Cursorposition in Textarea rausfinden Java Basics - Anfänger-Themen 7
R in einer TextArea den Cursor gleich anzeigen lassen Java Basics - Anfänger-Themen 3
G wieso ist die TextArea im Fenster nicht sichtbar Java Basics - Anfänger-Themen 3
N Teilweiseausgabe eines Vectors in eine TextArea Java Basics - Anfänger-Themen 21
B Größe der Textarea Java Basics - Anfänger-Themen 3
N Inhalt einer TextArea überschreiben Java Basics - Anfänger-Themen 4
N Wert aus Coice auslesen und in textarea einfügen Java Basics - Anfänger-Themen 23
M JDialog mit TextArea Java Basics - Anfänger-Themen 2
J TextArea auf Anfang setzen Java Basics - Anfänger-Themen 3
L Frage zu TextArea! Java Basics - Anfänger-Themen 16
T ScrollBar TableView Java Basics - Anfänger-Themen 6
Franzi1001 ScrollBar lässt sich nicht bewegen Java Basics - Anfänger-Themen 4
B Wie kann man an ein JPanel eine Scrollbar anheften? Java Basics - Anfänger-Themen 8
DaCrazyJavaExpert JScollPane scrollbar unsichtbar machen Java Basics - Anfänger-Themen 2
G Darstellungsproblem beim Betätigen der Scrollbar in JTabe Java Basics - Anfänger-Themen 2
T JScrollPane nicht scrollbar (mit KSKB!) Java Basics - Anfänger-Themen 4
J Methoden Knopffarbe einer Scrollbar Java Basics - Anfänger-Themen 5
B JList mit Scrollbar? Java Basics - Anfänger-Themen 7
W Scrollbar HORIZONTAL Java Basics - Anfänger-Themen 2
C Scrollbar !? Java Basics - Anfänger-Themen 3
K Scrollbar - Bild - paint-Methode - zoom Java Basics - Anfänger-Themen 10
H JTable in JScrollPane: Scrollbar wird nicht angezeigt. Java Basics - Anfänger-Themen 2
H >>ScrollBar<< Java Basics - Anfänger-Themen 2
H ScrollBar inaktiv / Rekursive Methode Java Basics - Anfänger-Themen 4
A Scrollbar und Änderung Java Basics - Anfänger-Themen 3
L scrollbar auf double? Java Basics - Anfänger-Themen 6
Horst79 Scrollbar in einem jEditorPane Java Basics - Anfänger-Themen 2

Ähnliche Java Themen

Neue Themen


Oben