Visualizzazione dei risultati da 1 a 10 su 10
  1. #1
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670

    [JAVA] Informazioni pannelli

    ciao a tutti
    Per costruire maschere complete con molti oggetti, JTextfield, JLabel, JTextArea quale pannello mi consigliate? Con GridLayout, non si aggiustano bene i pannelli nella maschera, ho letto di GridBagLayout che ne pensate?
    Qualche esempietto????!
    Grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    up

  3. #3
    GridBagLayout e' il piu' complicato ma se lo conosci bene
    e' in grado di sostituire qualunque LayoutManager
    ma per layout semplici utilizza i FlowLayout o quello di
    default in Jframe.
    Cmq se hai molti componenti da inserire e desideri
    avere il controllo su come tali componenti si devono
    comportare durante la fase di ridimensionamento GridBagLayout
    e' il maestro!!!!!
    Ciao
    Nulla, ma e' sempre qualcosa.

  4. #4
    codice:
    import java.awt.Component;
    import java.awt.Container;
    import java.awt.GraphicsEnvironment;
    import java.awt.GridBagConstraints;
    import java.awt.GridBagLayout;
    import java.awt.Point;
    import javax.swing.JButton;
    import javax.swing.JComboBox;
    import javax.swing.JFrame;
    import javax.swing.JTextArea;
    import javax.swing.JTextField;
    /*
     * GridBagDemo.java
     *
     * Created on 8 aprile 2005, 10.07
     */
    
    /**
     *
     * @author mau
     */
    public class GridBagDemo extends JFrame{
        private Container container;
        private GridBagLayout layout;
        private GridBagConstraints constraints;
        /** Creates a new instance of GridBagDemo */
        public GridBagDemo() {
            super("GridBagLayout");
            
            container = getContentPane();
            layout = new GridBagLayout();
            container.setLayout(layout);
            
            //istanzia l'oggetto GridBagConstraints
            constraints = new GridBagConstraints();
            
            //crea i componenti GUI
            JTextArea textAre1 = new JTextArea("TextArea1", 5, 10);
            JTextArea textAre2 = new JTextArea("TextArea2", 5, 4);
            
            String names[] = {"Iron", "Steel", "Brass"};
            JComboBox comboBox = new JComboBox(names);
            
            JTextField textField = new JTextField("TextField");
            JButton button1 = new JButton("Button 1");
            JButton button2 = new JButton("Button 2");
            JButton button3 = new JButton("Button 3");
            
            //weightx e weighty per textAre1 sono entrambi 0: il valore di
            //anchor per tutti i componenti e' CENTER(il valore di default)
            constraints.fill = GridBagConstraints.BOTH;
            addComponenet(textAre1, 0, 0, 1, 3);
            
            //wheightx e wheighty per button1 sono entrambi 0(il valore di default)
            constraints.fill = GridBagConstraints.HORIZONTAL;
            addComponenet(button1 , 0, 1, 2, 1);
            
            //weightx e weighty per comboBox sono entrambi 0(il valore di default)
            //fill vale HORIZONTAL
            addComponenet(comboBox, 2, 1, 2, 1);
            
            //button2
            constraints.weightx = 1000;//puo' diventare piu' largo
            constraints.weighty = 1;//puo' diventare piu' alto
            constraints.fill = GridBagConstraints.BOTH;
            addComponenet(button2, 1, 1, 1, 1);
            
            //fill vale BOTH per button3
            constraints.weightx = 0;
            constraints.weighty = 0;
            addComponenet(button3, 1, 2, 1, 1);
            
            //weightx e weighty per textField sono entrambi 0, fill vale BOTH
            addComponenet(textField, 3, 0, 2, 1);
            
            //weightx e weighty per textArea2 sono entrambi 0, fill vale BOTH
            addComponenet(textAre2, 3, 2, 1, 1);
            
            Point center = GraphicsEnvironment.getLocalGraphicsEnvironment().getCenterPoint();
            setBounds(center.x - 300/2, center.y - 150/2, 300, 150);
            setVisible(true);       
        }//fine costruttore
        
        private void addComponenet(Component component, int row, int column, int width, int height){
            
            //imposta gridx e gridy
            constraints.gridx = column;
            constraints.gridy = row;
            
            //imposta gridWidth e gridHeight;
            constraints.gridwidth = width;
            constraints.gridheight = height;
            
            //imposta i vincoli e aggiunge i componeneti
            layout.setConstraints(component,  constraints);
            container.add(component);
           
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
           GridBagDemo application = new GridBagDemo();
           application.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        }
        
    }
    Nulla, ma e' sempre qualcosa.

  5. #5
    In alcuni casi se proprio non ti trovi con nessun Layout di quelli a disposizione puoi settarlo null e gestire tu uno ad uno posizione, e dimensione di ogni singolo componente!

    Ciao.
    Si può vincere o perdere, l'importante è vincere o perdere da uomini...

    Neverland - Il mio Forum

  6. #6
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    vi ringrazio per le risposte...
    ora provo l'esempio...
    grazie mille

  7. #7
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    ottimo !!
    HO bene o male capito il loro funzionamento, ho fatto un piccolo esercizio e mi è venuto!!!!!!!
    Solo una cosetta, la JTextArea si può rendere "fissa" ???
    Cioè se l'utente allarga la maschera, la JTextArea si allarga come fa ora, ma se io scrivo tante lettere di continuo tipo "ssssssssssssssssssssssssssss";
    LA JTextArea si allarga con il testo, si può fare in modo che una volta che si raggiunga il limite della JTextarea il testo vada a capo?
    Grazie davvero per l'esempio..

  8. #8
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    centra qualcosa lo scroolpane????
    grazie

  9. #9
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    160
    per fare andare il testo a capo

    jtextarea.setLineWrap(true);

    se metti la jtextarea dentro uno jscrollpane, quando la dimensione verticale o orizzontale del testo supera quelo della jtextarea, aggiunge una barra di scorrimento in verticale o in orizzontale, proprio come quando tu scrolli la pagina in basso per vedere quello che c'è sotto.

  10. #10
    Utente di HTML.it
    Registrato dal
    Sep 2005
    Messaggi
    670
    Originariamente inviato da FelixR
    per fare andare il testo a capo

    jtextarea.setLineWrap(true);

    se metti la jtextarea dentro uno jscrollpane, quando la dimensione verticale o orizzontale del testo supera quelo della jtextarea, aggiunge una barra di scorrimento in verticale o in orizzontale, proprio come quando tu scrolli la pagina in basso per vedere quello che c'è sotto.
    perfettoq uello che mi serviva!!
    Grazie

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.