Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Aggiungere jtextarea a jpanel

    Ciao a tutti! Ho un primo frame in cui chiedo il numero di partecipanti e vorrei che una volta inserito il numero, dopo aver cliccato su un jbutton, si apra un nuovo jframe (che rendo visibile dopo l'evento del button) in cui ci siano tante text area quante ha digitato prima l'utente dicendo il numero dei partecipanti. Poi in queste text aree ci saranno i nomi dei partecipanti. Idee su come possa fare? Avevo pensato ad un for peró non saprei come metterlo giu...grazie in anticipo

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Usare un ciclo in questo caso è obbligatorio, ma penso che questo sia il minore dei problemi...
    Esempio: se non sai a prescindere il numero dei partecipanti (se non hai fissato un massimo) non puoi sapere quanti campi dovrai aggiungere, quindi faresti bene ad usare uno scrollPane per poter visualizzare tutti i partecipanti.
    Poi dovresti pensare a che tipo di layout usare etc.

    Se ho capito le tue intenzioni poi vorresti avere dei campi vuoti dove si possano inserire i nomi dei partecipanti.
    Per questo puoi usare dei JTextField al posto delle text areas, a meno di non voler avere più righe per partecipante, e non sembra questo il caso...

    Intanto chiarisci questi punti e posta quello che hai fatto

  3. #3
    Ciao, si (mettiamo n il numero di partecipanti) in questa schermata a me basta che ci siano n textfield una sotto l'altra in cui l'utente possa scrivede i vari nomi delle squadre. A livello di codice ti potrei postare quello del frame precedente che peró é inutile! del nuovo frame non ho nulla..perché a parte qualche piccolo particolare, l'idea é di lasciare solo i nomi delle squadre che é proprio il mio problema. Spero di essermi spiegato meglio, grazie

  4. #4
    Utente di HTML.it
    Registrato dal
    Oct 2014
    residenza
    Padova
    Messaggi
    361
    Ok pensavo avessi già provato ad aggiungere qualche JTextField (aggiungere i componenti in un ciclo è banale di per sè) e avessi qualche problema specifico, ad esempio il frame ti mostra solo alcuni textfield (come dovrebbe se usi un flowlayout)o non riesci a metterli come vorresti etc.

    Se non sai da dove partire io ti consiglierei di usare un BoxLayout verticale per il pannello in cui vuoi visualizzare i textfield.
    Il BoxLayout è abbastanza semplice da usare ma ti permette di disporre i componenti con molta precisione, basta infatti creare delle aree rigide se vuoi dello spazio tra due componenti.

    Potresti quindi fare un ciclo in cui per ogni partecipante crei una box a cui aggiungi solo il textField, poi aggiungi la box al pannello.
    Se usi l'orientamento verticale le box saranno automaticamente una sotto all'altra.

    Poi crei uno JScrollPane a cui passi il pannello che contiene le box,perchè non puoi sapere a prescindere il numero di box che dovrai creare e hai bosogno di poter scrollare il pannello per non far uscire la roba.

    Questo è un esempio di codice che potresti utilizzare per creare il pannello e aggiungere le box, (purtroppo ora sono all'estero e su questo pc non ho il compilatore, quindi non posso vedere se funziona come immagino):

    codice:
    import javax.swing.*;
    import javax.swing.border.*; import java.awt.*; .................................
    JPanel p=new JPanel();
    p.setLayout(new BoxLayout(p,BoxLayout.Y_AXIS));
    lista=new JScrollPane(p); lista.setPreferredSize(new Dimension(300,300)); lista.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER); lista.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_AS_NEEDED); for(int i=0;i<n;i++) //n num.partecipanti
    {
    Box b=Box.createHorizontalBox(); b.setAlignmentX((int)Component.LEFT_ALIGNMENT); b.setBorder(BorderFactory.createEmptyBorder(10,0,0,0)); JTextField nome=new JTextField(30); nome.setMaximumSize(new Dimension(270,nome.getPreferredSize().height)); b.add(nome);
    p.add(b);
    }
    frame.getContentPane().add(lista,BorderLayout.CENTER); // devi aggiungere al frame lo ScrollPane, non il JPanel ...........................
    Ho riadattato un mio pezzetto di codice e come detto non lo posso provare quindi non sono sicuro vada bene

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.