TextArray Scrollbar gehen nicht und finde den Fehler nicht

Eklaf

Mitglied
Hallo alle gutes neues Jahr noch :D

Ich habe in dem Code ein TextArea an das von außen Werte übergeben werden.
wenn die 20 Zeilen voll sind sollte die Scrollbar erscheinen oder von anfang an da sein,
allerdings erweitert er das Textarea immer weiter so das der Frame den Rahmen sprengt und es nicht mehr alles angezeigt werden kann.
Wenn jemand nen Fehler sieht ich bin für jede Hilfe dankbar.

Code:
package Oberfaechen;

import java.awt.BorderLayout;
import java.awt.Dimension;
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.JLabel;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.JTextArea;
import javax.swing.JTextField;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;

public class OberflaecheAuswertung implements ActionListener
{
	double dBrennweite;
	
	private final static String neueZeile = "\n";
	
	private JFrame mainFrameAus;
	private JPanel pnlMainAnordnung,pnlBrennweite;
	private JLabel lblKor,lblBrennweite;
	private JButton btnBrennweiteSpeichern;
	private JTextField eingabeBrennweite;
	private JTextArea txtareaAusgabe;
	
	JScrollPane areaScrollPane;
		
	public void los() 
	{
		//try{
		
			mainFrameAus=new JFrame("Auswertung");
			mainFrameAus.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
			
				pnlMainAnordnung=new JPanel();
				pnlMainAnordnung.setLayout(new BoxLayout(pnlMainAnordnung, BoxLayout.Y_AXIS));
								
					txtareaAusgabe=new JTextArea();
					txtareaAusgabe.setWrapStyleWord(true);
					txtareaAusgabe.setColumns(20);
			        txtareaAusgabe.setLineWrap(true);
			        txtareaAusgabe.setRows(20);

					areaScrollPane = new JScrollPane(txtareaAusgabe); 					
					areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
					areaScrollPane.setPreferredSize(new Dimension(20, 20));
					txtareaAusgabe.setEditable(false);
					pnlMainAnordnung.add(txtareaAusgabe);		
					
					pnlBrennweite=new JPanel();
					pnlBrennweite.setLayout(new BoxLayout(pnlBrennweite, BoxLayout.X_AXIS));
				
						lblBrennweite = new JLabel("F= "+dBrennweite+" mm");
						pnlBrennweite.add(lblBrennweite);
						
						eingabeBrennweite = new JTextField(10);
						pnlBrennweite.add(eingabeBrennweite);
					
						btnBrennweiteSpeichern = new JButton("Brennweite speichern");
						pnlBrennweite.add(btnBrennweiteSpeichern);
						btnBrennweiteSpeichern.addActionListener(this);
						
					pnlMainAnordnung.add(pnlBrennweite);
				
					lblKor = new JLabel("Koordinaten:");
					pnlMainAnordnung.add(lblKor);
				
					//Tabelle
			
			mainFrameAus.getContentPane().add(BorderLayout.CENTER,pnlMainAnordnung);
			mainFrameAus.setSize(700, 700);
			mainFrameAus.setVisible(true);
		/**}
		catch(Exception e)
		{
			System.out.println("Fehler: "+e.getMessage());
		}*/
	}	
			
		public void actionPerformed(ActionEvent e)
		{
			if (e.getSource()== btnBrennweiteSpeichern)
			{
										
			}
		}
		
		public void addTxtaAusgabe(String inhalt)
		{
			txtareaAusgabe.append(inhalt+neueZeile);
		}
}

Ich bedanke mich schon mal
 

HonniCilest

Erfahrenes Mitglied
Java:
pnlMainAnordnung.add(txtareaAusgabe);

Adde mal hier die ScrollPane und nicht die TextArea, die TextArea ist ja schon in der ScrollPane :)
 

Eklaf

Mitglied
Das Programm hat ja vorher schon die Textarea eingefügt nur hat es wenn man mehr als 20 zeilen einfügte nicht die scrollbar aktiviert sonder einfach das Feld vergrößert, so das es am ende bis zu 80 zeilen groß war.

Hab trotzdem mal deinen Vorschlag getestet dann is nur noch eine Zeile da die hat dann zwar den scrollbar aber es wird eben nur eine Zeile gezeigt was auch doof ist.

Ich steh gerade voll auf dem schlauch sry ^^
 

HonniCilest

Erfahrenes Mitglied
Du sagst deiner ScrollPane ja auch, dass sie bevorzugt die Maße 20x20 haben soll.
Vielleicht ist für deine pnlMainAnordnung auch ein BorderLayout besser geeignet (areaScrollPane --> Center, pnlBrennweite --> Bottom)
 
Zuletzt bearbeitet:

Eklaf

Mitglied
Code:
pnlMainAnordnung=new JPanel();
				pnlMainAnordnung.setLayout(new BoxLayout(pnlMainAnordnung, BoxLayout.Y_AXIS));
								
					txtareaAusgabe=new JTextArea("",20,20);
					txtareaAusgabe.setWrapStyleWord(true);
			        txtareaAusgabe.setLineWrap(true);

					areaScrollPane = new JScrollPane(txtareaAusgabe); 					
					areaScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
					txtareaAusgabe.setEditable(false);
					pnlMainAnordnung.add(areaScrollPane);

So geht es jetzt danke für die Hilfe schliese das Thema:D