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

    disegno finestra errato

    Salve, avrei un problema.....
    sto giusto toccando java per ingannare il tempo. Quando eseguo il programma, la finestra la disegna correttamente... ma appena clicco nella JTextArea, e scrivo un carattere, la textarea si ingrandice fino a occupare l'intera finestra come per magia. Sapete aiutarmi?
    codice:
      import java.awt.Color; 
    import javax.swing.*;   
    public class Main {
          private JFrame frame;
         private JTextArea text;
         private JButton pulsante;
         private JButton p2;
         private JScrollPane panel;
    
          public Main(){
             crea();
             disegna();
         }
          public void crea(){
             frame = new JFrame("Finestra");
             pulsante = new JButton("OK");
             p2 = new JButton("Chiudi");
             panel = new JScrollPane();
             text = new JTextArea();      
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                    }
          public void disegna(){
             frame.setSize(800,800);
             frame.setBackground(Color.darkGray);
             frame.setVisible(true);
              pulsante.setSize(60, 20);
             pulsante.setVisible(true);
             pulsante.setLocation(10, 310);
              p2.setSize(60, 20);
             p2.setVisible(true);
             p2.setLocation(100, 310);
              text.setVisible(true);
             text.setSize(300, 300);
              //panel.setViewportView(text);
                      frame.add(pulsante);
             frame.add(p2);
             frame.add(text);
         }
          /**      * @param args the command line arguments      */
         public static void main(String[] args) {
             new Main();
         }
      }
    ho notato che nel metodo disegna(), si ingrandisce a tutta finestra il componente che aggiungo al frame per ultimo, in questo caso è 'text', ma se peer ultimo aggiungo 'p2', si ingrandirà appunto 'p2'.
    Aiuti?
    w il ponte sullo stretto. uno, cento, mmmille ponti.......... :P

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Un JFrame ha come contenitore per gli oggetti il ContentPane, quindi per aggiungere qualcosa al JFrame devi fare:
    codice:
    frame.getContentPane().add(jTextField,...)
    I punti nel metodo: JFrame di default ha come layout manager il BorderLayout, il quale se ne infischia delle dimensioni minime, desiderate, massime, attuali, ma da all'oggetto aggiunto tutto lo spazio disponibile.
    Quale layout hai dato al content pane del JFrame?
    E alla fine dell'aggiunta dovresti richiamare il metodo pack() di JFrame, così che i layouts dei vari componenti possano "lavorare".

    Se vuoi aggiungere un qualcosa alla JFrame, aggiungi prima ad un JPanel con l'opportuno layout, e poi aggiungi questo panel alla parte centrale del ContentPane di JFrame.
    al volante son nervoso

  3. #3
    gentilmente, mi potresti postare un po il codice dell'esempio ke fai tu?
    adattando l'esempio al mio codice? Grazie
    w il ponte sullo stretto. uno, cento, mmmille ponti.......... :P

  4. #4
    Utente di HTML.it
    Registrato dal
    Feb 2009
    Messaggi
    502
    Originariamente inviato da infiltrato
    gentilmente, mi potresti postare un po il codice dell'esempio ke fai tu?
    adattando l'esempio al mio codice? Grazie
    Stai toccando Java da autodidatta? Stai seguendo una qualche guida?
    Se sei autodidatta e senza guida, ne trovi una qui sl sito, basta gugoli "guida java html.it" e ne trovi una (io ho iniziato così, andbin leggendo i miei post potrà rispondere che non c'ho capito un tubazzo )

    Poi, scriverti del codice e adattarlo al tuo esempio: dipende da quello che vuoi ottenere.
    I due pulsanti in basso, alto, destra, sinistra della JTextArea? La JTextArea al centro che si espande automaticamente con la JFrame oppure che rimane sempre della stessa dimensione? (ma se poi ingrandisci la JFrame a finestra intera, come deve comportarsi la JTextArea?)
    al volante son nervoso

  5. #5
    una cosa per volta
    w il ponte sullo stretto. uno, cento, mmmille ponti.......... :P

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.