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

    [Swing] - Problema nella visualizzazione di un frame

    Probabilmente è un problema stupido, ma mi sta facendo impazzire!
    Ho questo codice molto semplice:

    Codice PHP:
    void buildGUI() {
            
    frame = new JFrame();
            
    frame.setTitle("EuroConverter 1.0");
            
    frame.setSize(600400);
            
            
    frame.setVisible(true);
            
    frame.setResizable(true);
            
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            
            
    menubar = new JMenuBar();        
            
    menu = new JMenu("File");        
            exit = new 
    JMenuItem("Exit");
            
            
    mainpanel = new JPanel(new BorderLayout());
            
    mainpanel.setBackground(Color.WHITE);
            
            
    // Adding elements to components
            
            
    menu.add(exit);
            
    menubar.add(menu);
            
    mainpanel.add(menubarBorderLayout.NORTH);
            
    frame.add(mainpanel);
        } 
    Non deve fare altro che visualizzare una finestra di 600 x 400 pixel dallo sfondo bianco e dotata di barra del menu superiore.

    Ora, lo fa... MA SOLO dopo aver ridimensionato la finestra.
    Per farmi capire, l'applicazione viene aperta cosi':



    e se ridimensiono, ecco le specifiche giuste:



    (Scusate per le dimensioni delle immagini)
    Come mai succede questo?
    Grazie!

  2. #2
    Prova ad impostare il bounds a mainpanel prima di aggiungerlo al frame.
    Ad es: mainPanel.setBounds(0, 0, 600, 400)
    Oppure solo la location: mainPanel.setLocation(0, 0)

    Non so se è la soluzione giusta ma ho avuto problemi simili per questo motivo. Ciao

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    La barra menu si aggiunge con setJMenuBar(menubar)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Niente.... il setBounds non migliora la situazione... mi chiedo veramente cosa possa essere! Grazie comunque...

  5. #5
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da dottorcere
    Niente.... il setBounds non migliora la situazione... mi chiedo veramente cosa possa essere! Grazie comunque...
    Originariamente inviato da Alex'87
    La barra menu si aggiunge con setJMenuBar(menubar)
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  6. #6
    Cioè è quello che fa casotto? Scusa, non avevo capito subito.

  7. #7
    Non è quello il problema. Ho fatto per prova una versione del programma SENZA barra del menu e la visualizzazione stramba in apertura c'è comunque... booh!

  8. #8
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Quando hai finito di aggiungere i componenti al tuo container, chiama .validate() sullo stesso:

    codice:
    ...
    frame.add(mainpanel); // meglio sarebbe frame.getContentPane().add(...);
    frame.validate();
    Poi personalmente, almeno alla creazione iniziale della grafica, il setVisible lo lascio per ultimo.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  9. #9
    Il .validate ha risolto il problema... grazie 1000, non l'ho mai usato e non ci sarei m-a-i arrivato da solo!

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.