TextArea Größe festlegen

Status
Nicht offen für weitere Antworten.

Zaphi67

Mitglied
Wie kann ich meiner TextArea eine feste Größe zuordenen?
mit set.Size gehts irgenwie nicht.
[HIGHLIGHT="Java"]import javax.swing.*;
import java.awt.*;

public class Startscreen {

/**
* @param args
*/
public static void main(String[] args) {
String ls = System.getProperty("line.separator");
String text = "Bitte lesen sie sich die Nuzungbedingungen durch"+ls+ls+
"Hier stehen dieNuzungbedingungen";
JFrame start = new JFrame("Marko`s Java Quiz");
start.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
start.setSize(500, 300);
start.setLocationRelativeTo(null);
start.setResizable(false);
start.getContentPane().setLayout(new FlowLayout());

JTextArea terms = new JTextArea(text);
terms.setSize(450,200);
start.add(terms);
JCheckBox check = new JCheckBox("ich akzeptiere die Lizensbedingungen");
start.add(check);
JButton ok = new JButton("OK");
start.add(ok);


start.setVisible(true);

}

}
[/HIGHLIGHT]
 

Developer_X

Top Contributor
weißt du wieso?
Weil du Layouts benutzt!
Und wie ich immer sage, bounds sind am besten, so sollte es gehen:
[highlight=Java]
import javax.swing.*;
import java.awt.*;

public class Startscreen {

/**
* @param args
*/
public static void main(String[] args) {
String ls = System.getProperty("line.separator");
String text = "Bitte lesen sie sich die Nuzungbedingungen durch"+ls+ls+
"Hier stehen dieNuzungbedingungen";
JFrame start = new JFrame("Marko`s Java Quiz");
start.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
start.setSize(500, 300);
start.setLocationRelativeTo(null);
start.setResizable(false);

JTextArea terms = new JTextArea(text);
terms.setBounds(0,0,/*X*/,/*Y*/);
start.add(terms);
JCheckBox check = new JCheckBox("ich akzeptiere die Lizensbedingungen");
check.setBounds(0,0,/*X*/,/*Y*/);
start.add(check);
JButton ok = new JButton("OK");
start.add(ok);


start.setLayout(null);
start.setVisible(true);

}

}
[/highlight]

ALSO IMMER DRAN DENKEN!!!
MIT BOUNDS KANN MAN DIE GENAUE POSITION UND GRÖßE ALLER OBJEKTE, IN EINER SICHTBAREN APPLIKATION FESTHALTEN!
 
S

SlaterB

Gast
nicht drauf hören,
bei Layouts heißt das
terms.setPreferredSize(new Dimension(450, 200));
 

tfa

Top Contributor
Hör bloß nicht auf diesen Unsinn. Verwende einen vernünftigen Layoutmanager und versuche nicht, absolute Pixelgrößen festzulegen.
 

Zaphi67

Mitglied
weißt du wieso?
Weil du Layouts benutzt!
Und wie ich immer sage, bounds sind am besten, so sollte es gehen:
Hmmm..bei meinem letztenProjekt wurde mir strickt abgeraten mit Bounds zu arbeiten und eben diese Layoutmaneger zu nutzen. Obwohl ich mit den Bound eigentlich ganz gut zurecht kam.
Na mal abwarten. Vieleicht kommen ja noch mehr Beiträge.
Trotzdem schonmal Danke :)
 

Developer_X

Top Contributor
ich versteh zwar dass ihr alle diese Layouts besser findet, aber bei setBounds ist es so, dass man ja mit der Funktion eines Toolkits spielen kann, also getScreenSize diese kann man dann dividieren, addieren, multiplizieren, subrathiere etc...
 
S

SlaterB

Gast
die Layouts wurden bewußt eingeführt um genau das nicht mehr machen zu müssen ;)

es ist gut, damit zu experimentieren, das kennenzulernen,
aber spätestens wenn du zum dritten Mal eine Menge von x Buttons ordentlich in eine Reihe anordnen musst,
willst du das nicht mehr Pixel für Pixel für jeden Button machen

du kannst nun sagen, dass man sich dafür eine Schleife schreiben kann,
Bounds von Button n = Bounds von vorherigen Button +10

tja, und GENAU DAS sind dann die Layouts ;)
 

Developer_X

Top Contributor
naja, vielleicht schreibe ich mal mein eigenes Layout, wenn es nicht zu viel Arbeit seien sollte,
ich trau mir das aber noch nicht zu
 

Schandro

Top Contributor
naja, vielleicht schreibe ich mal mein eigenes Layout, wenn es nicht zu viel Arbeit seien sollte,
ich trau mir das aber noch nicht zu
Das heißt du glaubst jetzt doch daran, das LayoutManager besser sind, willst dich aber nicht in einen bereits exisiterenden hineinarbeiten sondern lieber einen eigenen schreiben?
0,5 *:applaus:
 

icarus2

Top Contributor
Ämm, also ich bin ein absoluter Fan von GridBagLayout für kompliziertere grafische Oberflächen. Es ist das erste mal etwas mühsam sich damit zurecht zu finden, aber mit der Zeit geht es schon.

Damit man etwas ProgrammCode sparen kann schreibe ich jeweils eine Methode, die das GridBagConstraints-Objekt zurückgibt. Innerhalb der Methode wird das, was alle Komponenten gemeinsam haben zugeordnet.

Das sieht dann etwas so aus:

Im Konstruktor z.B.:
Code:
....

GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
c.setLayout(gbl);

einAusgabePanel = new JPanel();
einAusgabePanel.setLayout(new GridLayout(1,0));
gbc = makeContainerGbc(0,0,1,1);
gbc.weightx = 1;
gbc.weighty = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
 bl.setConstraints(einAusgabePanel, gbc);

....

Dazu die Methode:

Code:
public GridBagConstraints makeContainerGbc(int x, int y, int width, int height){
    GridBagConstraints gbc = new GridBagConstraints();
    gbc.gridx = x;
    gbc.gridy = y;
    gbc.gridwidth = width;
    gbc.gridheight = height;
    gbc.insets = new Insets(3,3,3,3);
    
    return gbc;
  }

Nur so als kleine Idee.

Ist ein älteres Projekt... man sollte den Code natürlich nicht in Denglisch haben, sollte nur ein Beispiel sein, wie man eine Methode dazu schreiben kann ;-)

Hoffe mal, das hat seine Richtigkeit ^^
 
S

SlaterB

Gast
ich habe auch im GridBagLayout in einer neue BasisKlasse die von JPanel erbt und dann Methoden zur Verfügung stellt wie
addFillLine(y,JComponent);
addEast(x,y,String); // erstellt automatisch ein JLabel

da kann man wirklich eine Menge Code sparen,
aber das spricht nicht gegen andere Layouts wie TableLayout,

man muss immer schauen, ob man nicht selber gerade die Möglichkeiten des anderen Layouts nachbaut ;)
 

icarus2

Top Contributor
Nur kurz zu deiner eigenen Klasse Slater...

du leitest dann deine Klasse, die du für das Programm hast von deiner eigenen Klasse ab. Da diese (deine selber zuvor erstellte Klasse) von JPanel erbt steht dann in deinem Projekt trotzdem alles von JPanel zur Verfügung oder?

Ist natürlich ne schicke sache ne eigene Klasse, hab ich mich bis jetzt noch nicht rangetraut ;-)
 

Zaphi67

Mitglied
nicht drauf hören,
bei Layouts heißt das
terms.setPreferredSize(new Dimension(450, 200));
Ich hab mich dafüretschieden.Da funzt super.
Danke.
Vieleicht hat noch jemand nen Tip wie ich die CheckBox linksbündig unter die TextArea bekomme und den OkButton rechtsbündig. Ich meine ohne viel Tamtam. Wenns nicht anders geht dannmach ich mir nen Panel mit BorderLayout.Geht aber bestimmt auch einfacher.
 
S

SlaterB

Gast
> steht dann in deinem Projekt trotzdem alles von JPanel zur Verfügung oder?

so ist das bei Vererbung

-------

@Zaphi67
ohne GridBagLayout bzw. äquivalentes fällt mir dazu nix ein, du willst ja sicher nicht hier auch Breite angeben
(CheckBox 250, Button 200 bzw. CheckBox 50, 350 leer, Button 50), das wäre dann ja fast schon setBounds ;)
 

icarus2

Top Contributor
Gut, hab ich mir gedacht... wollte jedoch nur sicher sein ;-)

Ich glaub ich mach auch ma sowas zum Teste, hatte die Idee selber noch nie, aber finde sie sehr gut :)
 

Zaphi67

Mitglied
> steht dann in deinem Projekt trotzdem alles von JPanel zur Verfügung oder?

so ist das bei Vererbung

-------

@Zaphi67
ohne GridBagLayout bzw. äquivalentes fällt mir dazu nix ein, du willst ja sicher nicht hier auch Breite angeben
(CheckBox 250, Button 200 bzw. CheckBox 50, 350 leer, Button 50), das wäre dann ja fast schon setBounds ;)

Kann man da nicht was mit get.position und set.Position machen?
Also so ungefähr:
get.Position(textArea)
checkBox.set.Position(linksbündigTextarea)
oder so???
Sorry..bin voll der Anfänger.Ich wurschtel mich da so durch.
 

Ebenius

Top Contributor
Ein bisschen off topic: Woher kommen diese Punkte "get.Position", "set.Position"? Sieht sonderbar aus.

Ebenius
 

Schandro

Top Contributor
Damit man etwas ProgrammCode sparen kann schreibe ich jeweils eine Methode, die das GridBagConstraints-Objekt zurückgibt. Innerhalb der Methode wird das, was alle Komponenten gemeinsam haben zugeordnet.
....

GridBagLayout gbl = new GridBagLayout();
GridBagConstraints gbc = new GridBagConstraints();
c.setLayout(gbl);

einAusgabePanel = new JPanel();
einAusgabePanel.setLayout(new GridLayout(1,0));
gbc = makeContainerGbc(0,0,1,1);
gbc.weightx = 1;
gbc.weighty = 0;
gbc.fill = GridBagConstraints.HORIZONTAL;
bl.setConstraints(einAusgabePanel, gbc);

....
Ich verstehs nicht wie man solchen Code schreiben kann. Da kommt man doch (bei noch en paar mehr Components) extrem schnell durcheinander, welche Attribute das gbc Object gerade hat. Und sobald man mal ein Wert ändern will, muss man gucken ob dieser auchnoch weiter unten im Code benutzt wird und dann gegebenfalls wieder zurückändern usw...
Imho Inkonsistent

Ich mach immer, wenn ich das GridBagLayout benutze, wenn überhaupt das hier:
[highlight=Java]

JLabel titleLabel = new JLabel("Create your new Account");
titleLabel.setHorizontalAlignment(JLabel.CENTER);
titleLabel.setFont(new Font("Lucida Blackletter",Font.ITALIC,16));
layout.setConstraints(titleLabel, new GridBagConstraints(0,0,2,1,0,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH,new Insets(0,0,5,0),0,0));
mainPanel.add(titleLabel);

newUsernameField = new JTextFieldDeluxe("Username",false);
layout.setConstraints(newUsernameField, new GridBagConstraints(0,1,2,1,50,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,8,0),0,0));
mainPanel.add(newUsernameField);

newPasswordField = new JTextFieldDeluxe("Password",true);
layout.setConstraints(newPasswordField, new GridBagConstraints(0,2,2,1,50,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,8,0),0,0));
mainPanel.add(newPasswordField);

newCommentField = new JTextFieldDeluxe("",false);
layout.setConstraints(newCommentField, new GridBagConstraints(0,3,2,1,50,0,GridBagConstraints.CENTER,GridBagConstraints.BOTH, new Insets(0,0,8,0),0,0));
mainPanel.add(newCommentField);[/highlight]

Sobald man einmal auswendig kann (bzw. man es sich von Eclipse anzeigen lässt) welcher Parameter für was steht, ist es viel übersichtlicher und sicherer, da alle Daten an einen Punkt sind und das adden der einzelnen Components komplett unnabhängig voneinander ist.
 

Ebenius

Top Contributor
Die Herangehensweise hängt sehr vom jeweiligen Problem ab. Ich benutze zum Beispiel auch gern mal eine Constraint-Instanz pro Spalte und habe dann den y-Wert auf GridBagConstraints.RELATIVE stehen. Das wird wesentlich übersichtlicher; besonders wenn man eine Zeile irgendwo einfügen muss.

Ebenius
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
B Größe der Textarea Java Basics - Anfänger-Themen 3
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
M TextArea scrollbar bei editable false Java Basics - Anfänger-Themen 5
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
A TextArea und ScrollBar Java Basics - Anfänger-Themen 17
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
M Scrollbar zu Textarea Java Basics - Anfänger-Themen 5
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
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
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 sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Seltsame Bytecode-Größe Java Basics - Anfänger-Themen 22
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
J JScrollePane größe anpassen Java Basics - Anfänger-Themen 4
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
E Array-Größe anpassen Java Basics - Anfänger-Themen 1
Z ArrayList direkt feste Größe mitgeben Java Basics - Anfänger-Themen 13
R Verschachtelte Arraylist und deren Größe auslesen Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben