Ciao a tutti..
Volevo una consulenza in merito a un'opzione per la costruzione di GUI con Java.
Ho una textArea in un panel dentro un Frame.Allargando il Frame voglio che la TextArea si allarghi insieme al pannello e al Frame.
Come posso fare?
Ciao a tutti..
Volevo una consulenza in merito a un'opzione per la costruzione di GUI con Java.
Ho una textArea in un panel dentro un Frame.Allargando il Frame voglio che la TextArea si allarghi insieme al pannello e al Frame.
Come posso fare?
JTextArea dentro il CENTER di un JPanel con BorderLayout. Panel dentro il CENTER del JFrame.
al volante son nervoso
Codice PHP:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI() {
JPanel p1 = new JPanel(); //creo il pannello
p1.setLayout (new FlowLayout()); //gli do il layout
JTextArea t1 = new JTextArea ("HELLO", 20 , 20); //creo una textarea
p1.add (t1, BorderLayout.CENTER);//aggiungo l'area di testo al pannello al centro
add (p2, BorderLayout.CENTER); //aggiungo il pannello al centro della finestra
setSize(600,600); //setto la larghezza a caso
setVisible(true); //la rendo visibile
//la rendo chiudubile
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.out.println("Window Closing");
System.exit(0);
}
});
}
}
Però comunque non si allarga la textarea se allargo la finestra(frame)!
Come faccio?
Originariamente inviato da OvettoKinder
Codice PHP:import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUI extends JFrame {
public GUI() {
JPanel p1 = new JPanel(); //creo il pannello
p1.setLayout (new FlowLayout()); //gli do il layout
JTextArea t1 = new JTextArea ("HELLO", 20 , 20); //creo una textarea
p1.add (t1, BorderLayout.CENTER);//aggiungo l'area di testo al pannello al centro
add (p2, BorderLayout.CENTER); //aggiungo il pannello al centro della finestra
setSize(600,600); //setto la larghezza a caso
setVisible(true); //la rendo visibile
//la rendo chiudubile
addWindowListener( new WindowAdapter() {
public void windowClosing(WindowEvent e){
System.out.println("Window Closing");
System.exit(0);
}
});
}
}
Però comunque non si allarga la textarea se allargo la finestra(frame)!
Come faccio?
p1 nasce con FlowLayout e poi lo tratti come se avesse un BorderLayout...
p2 non capisco dove lo crei...
al volante son nervoso
Innanzitutto un JTextArea si mette tipicamente come "view" di un JScrollPane.Originariamente inviato da OvettoKinder
Però comunque non si allarga la textarea se allargo la finestra(frame)!
Come faccio?
Poi comunque no, non è FlowLayout che ti serve. Se vuoi che il JTextArea (meglio dire il JScrollPane se metti il JTextArea come sua view) si adatti alla dimensione del frame, devi metterlo in un certo layout e in modo particolare in una certa area del layout tale per cui occupi tutto lo spazio disponibile.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
p2 l'abbiamo scritto per sbaglio scusa.
Comunque è vero mettendo BorderLayout funziona ma solo allungando "l'altezza" in larghezza non si modifica.
-Go big or go home-
-take it as it is-
Ma dipende in quale area l'hai messo ... e quale è il contenitore che ha il BorderLayout (il content pane?).Originariamente inviato da KinderCereali
Comunque è vero mettendo BorderLayout funziona ma solo allungando "l'altezza" in larghezza non si modifica.
Il content pane di un JFrame ha un BorderLayout. Se metti un JTextArea o meglio un JScrollPane (che ha come "view" il JTextArea) nella parte CENTER, allora occupa tutto lo spazio disponibile in CENTER e quindi, transitivamente, tutto lo spazio disponibile del JFrame. A meno ovviamente ciò che è magari presente nelle altre 4 aree.
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
in realtà quello a cui punteremmo sarebbe avere due TextArea una a destra e una a sinistra e quando si allarga il Frame queste si allargano equamente espandendosi e occupando metà spazio a testa
-Go big or go home-
-take it as it is-
Allora niente BorderLayout!! Ma bensì un GridLayout di 1 riga per 2 colonne. In un GridLayout le celle sono tutte della stessa dimensione. Quindi nel tuo caso i due componenti verrebbero dimensionati allo stesso modo spartendosi equamente larghezza del contenitore (quello che ha il GridLayout).Originariamente inviato da KinderCereali
avere due TextArea una a destra e una a sinistra e quando si allarga il Frame queste si allargano equamente
Andrea, andbin.dev – Senior Java developer – SCJP 5 (91%) • SCWCD 5 (94%)
java.util.function Interfaces Cheat Sheet — Java Versions Cheat Sheet
Quindi faccio un Frame nel Frame metto un Panel con GridLayout(1,2) e poi si possono inserire le TextArea nel Grid??
-Go big or go home-
-take it as it is-