Adattare una JtextArea

di il
3 risposte

Adattare una JtextArea

Salve a tutti, sto scrivendo un programma usando la libreria swing e awt ma ho un problema. il programma si suddivide in due panel, uno dove ce un jtextfield e un button e un altro dove ce situata una textarea che stampa i log dell'esecuzione. il problema è che quando stampo i log quando si fanno cospicui, cè il bisogno di resizare la finestra per leggerli. quando vado a espandere la finestra però ovviamente la textarea mantiene le sue proporzioni. come posso fare per adattare la jtext area al resize della finestra? vi posto il codice. nel metodo initComponents ovviamente ci sono tutte le inizializzazioni dei componenti
public SqlCrawler()
{
	super();
	initComponents();
	setTitle(PROGRAM_TITLE);
	setSize(400,400);
	setResizable(true);
	setDefaultCloseOperation(EXIT_ON_CLOSE);
	getContentPane().setBackground(Color.BLACK);
	getContentPane().setLayout(new BorderLayout());
	add(jtext,BorderLayout.NORTH);
	add(jconsole,BorderLayout.CENTER);
	/*
	 * IMPOSTO IL CONTENUTO DEL PANEL INIT 
	 */
	jtext.setBackground(Color.black);
	jtext.setSize(100,300);
	jtext.setLayout(new FlowLayout());
	jtext.add(url);
	jtext.add(startCrawler);
	//-----------------------> Fine dichiarazione Jtext Panel 
	
	/*
	 * IMPOSTO IL CONTENUTO DEL PANEL CONSOLE
	 */
	jconsole.setBackground(Color.BLUE);
	jconsole.add(scroll);
	//------------------>>  fine dichiarazione jconsole Panel 
	
	/*
	 * IMPOSTO LE OPERAZIONI CON I BOTTONI E I VARI LISTENER 
	 */
		startCrawler.addActionListener(new CrawlerService(this));
		
     //--------------------> fine dichiarazione operazione bottoni 
		
	/*
	 *  IMPOSTO LE OPERAZIONI DELLA CONSOLE TEXT AREA 
	 */
		output.setLineWrap(true);
		
		
	setVisible(true);
}

3 Risposte

  • Re: Adattare una JtextArea

    Shoto ha scritto:


    il problema è che quando stampo i log quando si fanno cospicui, cè il bisogno di resizare la finestra per leggerli.
    Il codice che hai postato è un po' vago, soprattutto perché l'hai postato molto parziale.

    JTextArea (come gli altri componenti che sono potenzialmente "grandi", es. JTable, JList) si mette generalmente come view in JScrollPane. Ed è poi quest'ultimo che devi inserire nel tuo layout.

    Comunque cosa è 'jtext' nel tuo codice? Un JTextField? Se sì, non lo si usa di norma come "contenitore" di altri componenti.
  • Re: Adattare una JtextArea

    andbin ha scritto:


    Shoto ha scritto:


    il problema è che quando stampo i log quando si fanno cospicui, cè il bisogno di resizare la finestra per leggerli.
    Il codice che hai postato è un po' vago, soprattutto perché l'hai postato molto parziale.

    JTextArea (come gli altri componenti che sono potenzialmente "grandi", es. JTable, JList) si mette generalmente come view in JScrollPane. Ed è poi quest'ultimo che devi inserire nel tuo layout.

    Comunque cosa è 'jtext' nel tuo codice? Un JTextField? Se sì, non lo si usa di norma come "contenitore" di altri componenti.
    il jtext è il panel che contiene il jtextfield e il button.
    jconsole è il panel che contiene la jtextarea che vorrei ancorare ai bordi del frame

    quind come mi consigli di dividerli? la gui è semplice, due panel uno sopra l'altro uno contenente jtextfield e button(jtext), e l'altro la jtextarea (jconsole) che funge da console per inviare alcuni messaggi all'utente sullo stato.
  • Re: Adattare una JtextArea

    Shoto ha scritto:


    il jtext è il panel che contiene il jtextfield e il button.
    Sì scusa ... avevo guardato velocemente il codice.

    Shoto ha scritto:


    jconsole è il panel che contiene la jtextarea che vorrei ancorare ai bordi del frame

    quind come mi consigli di dividerli? la gui è semplice, due panel uno sopra l'altro uno contenente jtextfield e button(jtext), e l'altro la jtextarea (jconsole) che funge da console per inviare alcuni messaggi all'utente sullo stato.
    Se in CENTER (del contentPane) hai un JPanel che contiene il JScrollPane che ha come view JTextArea, allora assicurati che JScrollPane possa occupare tutto il JPanel e questo puoi farlo banalmente mettendo un BorderLayout al JPanel e mettendo JScrollPane in CENTER.

    Altrimenti, se non ci sono altri motivi, nel CENTER del contentPane puoi mettere direttamente JScrollPane invece che un JPanel.
Devi accedere o registrarti per scrivere nel forum
3 risposte