Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    45

    inserire n stringhe in JTextArea

    All'interno di un Jframe ho una JTextArea in cui devo infilare delle stringhe.
    Il problema è che mi servirebbe metterle man mano una alla volta aggiungendo ogni volta la nuova stringa alle altre.
    L'unico metodo x inserire stringhe che ho trovato è ta_alpha.setText() ma così facendo ogni nuova stringa va sostituire quella precedentemente messa nella jtextArea.
    Qualcuno può aiutarmi?
    Grazie in anticipo...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: inserire n stringhe in JTextArea

    Originariamente inviato da a_riz
    L'unico metodo x inserire stringhe che ho trovato è ta_alpha.setText()
    Probabilmente non hai notato che ha il metodo append().
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    45
    Scusami hai ragione non avevo visto il metodo...
    Adesso invece ho il seguente problema:
    mi serve fare una textarea che aumenti di dimensione quando raggiungo il limite dello spazio, possibilmente non ingrandendo l'area ma creando 1 barra laterale in modo
    da far scorrere la textarea e vedere lo spazio in +... Io attualmente sono riuscito a crearla solo con dimensioni fisse
    Grazie in anticipo...

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da a_riz
    Adesso invece ho il seguente problema:
    mi serve fare una textarea che aumenti di dimensione quando raggiungo il limite dello spazio, possibilmente non ingrandendo l'area ma creando 1 barra laterale in modo
    da far scorrere la textarea e vedere lo spazio in +...
    I componenti come JTextArea, JTable, JTree e altri che potenzialmente possono avere un contenuto con dimensione molto estesa, li si mette generalmente dentro un JScrollPane.

    JScrollPane scrollPane = new JScrollPane (tuaTextArea);

    Puoi anche impostare le "policy" di visualizzazione delle barre, vedi gli altri costruttori di JScrollPane.

    E nota finale molto importante: quello che poi inserisci nel tuo layout deve essere lo scroll pane, non il componente. Quindi: contenitore.add (scrollPane)
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    45
    Ma se io ho 1 frame con dentro dei panel, e la textarea è in uno dei panel, il contenitore dello scrollpane deve essere il frame o il panel in cui si trova la textarea? Te lo chiedo xkè in teoria cercando scrollpane ho trovato l'esempio che serviva a me ma applicato al mio codice nn riesco a farlo andare..

  6. #6
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da a_riz
    Ma se io ho 1 frame con dentro dei panel, e la textarea è in uno dei panel, il contenitore dello scrollpane deve essere il frame o il panel in cui si trova la textarea?
    Il frame contiene il panel, il panel contiene lo scroll pane, lo scroll pane contiene la text area.

    Per dirla in altro modo:

    panel.add (scrollPane);

    non devi più aggiungere la text area al panel!!
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    45
    Dunque, premesso che senza scrollbar il programma funziona, non riesco assolutamente a far andare la scrollbar..
    Addirittura se aggiungo la scrollbar al panel e non aggiungo la textarea al panel, la textarea non compare per niente.
    Ho fatto 1 classe di prova in cui chiamo le sole variabili strettamente essenziali ma non ne vengo fuori, vi allego il codice:

    public class provaScroll extends JFrame{
    {
    private static final long serialVersionUID = 1L;
    JFrame frame = new JFrame();

    //////////////////////////////////////////////////////
    //dichiarazione oggetti (pulsanti, label textfield,panel)
    //////////////////////////////////////////////////////

    //textarea
    JTextArea ta_alpha = new JTextArea();

    //panel
    JPanel panel_output = new JPanel();

    //scrollbar
    JScrollPane scrollPane = new JScrollPane(ta_alpha);


    public provaScroll ( String titolo ){ //viene visualizzato come titolo della finestra


    super( titolo );
    getContentPane( ).setLayout( null );

    Dimension screenSize = Toolkit.getDefaultToolkit( ).getScreenSize( );

    //definisco titolo dei pannelli
    panel_output.setBorder(BorderFactory.createTitledB order("output"));
    panel_output.setLayout(null);

    //textarea
    ta_alpha.setBounds(15,40,670,150);
    ta_alpha.setBorder(BorderFactory.createBevelBorder (1));

    //scrollpane
    scrollPane.setVerticalScrollBarPolicy(JScrollPane. VERTICAL_SCROLLBAR_ALWAYS);

    //////////////////////////////////////////////////////
    //metto quello che voglio sia disegnato nel jpanel
    /////////////////////////////////////////////////////

    //definizione dim pannelli + aggiunta nel frame
    panel_output.setBounds( 20, 150, 700, 400 );
    panel_output.add(scrollPane);

    getContentPane( ).add( panel_output ); // viene aggiunto al frame il pannello

    setResizable( false );
    setBounds(100,100,800,650);
    setVisible( true );
    }
    //fine costruttore
    public static void main( String [] args ){
    new provaScroll( "Progetto" ).setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    }

    Così come è mi disegna il frame e il pannello, nessuna traccia di scrollbar nè di textarea. Mi viene da pensare che dipenda dall'ordine in cui inserisco gli oggetti, o che all'interno di un costruttore debba aggiungere la scrollbar in modo diverso...

    Se qualcuno mi sa dare una mano gliene sarò grato. Thx

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da a_riz
    nessuna traccia di scrollbar nè di textarea.
    Già .... ma c'è un motivo. Hai tolto il layout manager (e già qui si potrebbe discutere) e hai fatto il setBounds solo sulla text area. No! il setBounds lo devi fare sullo scroll pane perché è quello che inserisci nel contenitore (nel tuo caso panel_output). Come lo scroll pane gestirà il suo "contenuto" a livello di posizione/dimensione tipicamente non dovrebbe interessare al programmatore (se non, ovviamente, casi specifici che ora non mi vengono in mente ma è possibile che ce ne siano).

    Non avendo fatto il setBounds sullo scroll pane .... beh, non ha posizione/dimensione quindi semplicemente non c'è.

    Cerca di usare, possibilmente, i layout manager. Ah, all'inizio c'è un JFrame frame = new JFrame(); che non mi sembra che serva affatto.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    45
    Grazie mi hai salvato adesso funziona tutto

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.