Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    10

    Ridimensionamento del frame: toolbar e contentpane non si aggiornano

    Ciao a tutti!
    Sto avendo qualche problema con il ridimensionamento di un JFrame... Mi spiego:
    Ho bisogno che il mio JFrame ad un certo punto della sua vita si ridimensioni a tutto-schermo. Inizialmente ho risolto con un
    frame.setExtendedState(java.awt.Frame.MAXIMIZED_BO TH);
    Recentemente ho cambiato idea... Vorrei decidere staticamente le dimensioni del mio frame senza fare in modo che esse cambino dinamicamente o a seconda degli schermi e delle risoluzioni. Con un semplice setSize() del mio frame riesco effettivamente a variare le dimensioni del mio frame, ma non quelle dei suoi componenti (una toolbar e il contentpane) che rimangono delle dimensioni precedenti. Settare manualmente le dimensioni dei due componenti non porta a nessun miglioramento. Come fare in modo che la toolbar prenda tutta la lunghezza del frame e che il contentpane tutta la lunghezza e la nuova altezza guadagnata?
    Grazie a tutti come sempre.

  2. #2
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Non lo fa in automatico? Prova questo.
    codice:
    import java.awt.BorderLayout;
    import java.awt.Color;
    import java.awt.Container;
    import java.awt.event.ActionEvent;
    import java.awt.event.ActionListener;
    import javax.swing.JButton;
    import javax.swing.JFrame;
    import javax.swing.JPanel;
    import javax.swing.JToolBar;
    
    public class NewClass extends JFrame{
        JFrame f;
        
        public NewClass() {
            Container content = this.getContentPane();
            
            //Faccio una toolbar
            JToolBar toolBar = new JToolBar("");
            toolBar.add(new JButton("a"));
            toolBar.add(new JButton("b"));
            content.add(toolBar, BorderLayout.NORTH);
            
            //Faccio un pannello con bottone per l'evento ridimensionamento
            JPanel pane = new JPanel();
            pane.setBackground(Color.RED);
            JButton b = new JButton("Resize!");
            f = this;
            b.addActionListener(new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    f.setSize(1000, 1000);
                }
                
            });
            pane.add(b);
            content.add(pane,BorderLayout.CENTER);
            
            //Visualizzo la finestra
            this.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
            this.setSize(100, 100);
            this.setVisible(true);
        }
        
        public static void main(String[] args) {
            new NewClass();
        } 
    }

  3. #3
    Utente di HTML.it
    Registrato dal
    Jun 2007
    Messaggi
    10
    Vedo che metti tutto nel contentpane... Io sapevo che il frame era composto da toolbar e contentpane, quindi aggiungevo toolbar al frame e vari pannelli al contentpane... VVoVe:
    Provo presto la tua soluzione e ti dico...
    Grazie mille come sempre :rollo:

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    906
    Mi pare che puoi aggiungere la barra dei menu' attraverso l'apposito metodo
    codice:
    frame.setJMenuBar(menuBar);
    Il resto(anche le JToolBar) viene trattato tutto allo stesso modo, quindi ti conviene mettere la toolbar nel contentPane.

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.