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

    Aggiornamento scorretto JPanel

    Salve a tutti,
    come da titolo devo aggiornare un JPanel per visualizzare un catalogo.
    Ho utilizzato il seguente metodo

    codice:
    public JPanel createVisualizzaPanel()
        {
         prodottiArea = new JTextArea(15);
         refreshPanel.removeAll(); 
         refreshPanel.add(prodottiArea); 
         add(refreshPanel);
         refreshPanel.repaint();
         refreshPanel.validate();
         pack();
    L'aggiornamento mi funziona e in prodottiArea ci va l'ArrayList con i prodotti.
    Il problema è che la JTextArea mi si vede solo a meta e devo aggiornare due volte per farla visualizzare intera... Ho usato lo stesso codice anche per altri scopi e mi funziona perfettamente il problema me lo da solo in questo caso...

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Quote Originariamente inviata da Cyber-X91! Visualizza il messaggio
    codice:
    public JPanel createVisualizzaPanel()
        {
         prodottiArea = new JTextArea(15);
         refreshPanel.removeAll(); 
         refreshPanel.add(prodottiArea); 
         add(refreshPanel);
         refreshPanel.repaint();
         refreshPanel.validate();
         pack();
    No alt ... qui c'è un po' troppa roba.
    Innanzitutto refreshPanel che layout manager ha? (se ne ha uno). Se ne ha uno (almeno di quelli più semplici) basta generalmente validate(). Se non ha layout manager (=posizionamento "assoluto") serve repaint(). O l'uno o l'altro. Entrambi insieme non servono.

    E perché aggiungi refreshPanel? (che non crei qui, quindi è già creato? e magari già aggiunto?)


    P.S. Non esiste un costruttore di JTextArea che riceve 1 solo int. Quindi che roba è?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    no scusa ho sbagliato a postare il codice non considerare l'int in JTextArea hai ragione.
    Comunque in risposta a tutte le tue domande refreshPanel utilizza un FlowLayout, e se non metto validate e repaint insieme e non aggiungo il pannello non mi viene visualizzato niente... Se cambio qualcosa di quello che mi hai detto tu poi non mi si aggiorna piu niente ho gia provato tutti i modi... non so il motivo ma comuque facendo in questo modo mi funziona tutto perfettamente. Ci ho perso una giornata a vedere come fare un refresh di un pannello e questo è l unico metodo che mi funziona...

  4. #4
    Allora ho eliminato add(refreshPanel); e refreshPanel.validate(); e mi funziona stranamente perche lo avevio gia provato qualhe giorno fa. Però mi funziona sempre allo stesso modo.
    Appena avvio il programma e visualizzo il catalogo da me creato me lo visualizza correttamente, ma se aggiungo un oggetto e poi rivisualizzo il catalogo mi da la JTextArea a metà... -.-"

    Catalogo Visualizzato prima di aggiungere l'oggetto:

    SnapCrab_NoName_2014-2-26_14-55-18_No-00.jpg

    Catalogo visualizzato dopo aver aggiunto un oggetto al catalogo:

    SnapCrab_NoName_2014-2-26_14-56-40_No-00.jpg

    ah da notare che il pack funziona da schifo xk mi ingrandisce la finestra.

    Se rivisualizzo il catalogo ecco il risultato:

    SnapCrab_NoName_2014-2-26_14-58-3_No-00.jpg

    La finestra se ne va sopra...
    Ultima modifica di Cyber-X91!; 26-02-2014 a 15:58

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.