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

    Aiuto scelta layout manager

    Salve ragazzi avrei bisogno di un consiglio.

    Allora sto realizzando un'applicazione utilizzando le componenti swing del java.

    Ho la necessità di avere i seguenti componenti in un JPanel.

    codice:
    JLABEL                                JLABEL
                       JLABEL
    
                      JTABLE
    
    
    JTEXTFIELD
    Quindi mi occorrono due JLabel sullo stesso rigo ma distanti

    Una JLabel sotto al centro

    Una Jtable

    ed una JTextField 0 JTextArea

    Ora fina a questo momento ho utilizzato un layout tipo gridbaglayout ma se vado ad inserire due label di fianco esce un macello nel layout

    mi sapreste consigliare un tipo di layout manager che mi permetta di avere il layout descritto???

    grazie

  2. #2
    Utente di HTML.it
    Registrato dal
    Aug 2002
    Messaggi
    8,013
    Puoi anche combinare diversi layout, applicandoli a diversi panel che poi assemblerai.

    Per esempio, il JFrame che contiene il tutto potrebbe essere settato con BorderLayout (oppure sempre un BorderLayout su di un JPanel che andrai ad inserire dove ti pare nella tua GUI).
    Su questo BorderLayout andrai a creare un JPanel da mettere in posizione NORTH con un GridBagLayout in cui alla prima riga hai le 2 JLabel, che si dividono equamente lo spazio e sono allineate una a sinistra ed una a destra e nella seconda riga invece metterai la JLabel che occupa tutte e due lo colonne (guardati per bene "The Swing Tutorial" -> GridBagLayout, trovi tutto lì).

    La JTabel occuperà, ovviamente, il pannello CENTER

    L'altro componente il pannello SOUTH.
    <´¯)(¯`¤._)(¯`»ANDREA«´¯)(_.¤´¯)(¯`>
    "The answer to your question is: welcome to tomorrow"

  3. #3
    Allora ho seguito un pò il tuo consiglio

    diciamo che ho quasi ottenuto ciò che volevo

    ti incollo un po di codice

    codice:
     
    //ho una classe che estende JPanel quindi eccothis......
    this.setComponentOrientation(ComponentOrientation.RIGHT_TO_LEFT); 
      	    this.setLayout(new GridBagLayout());
    
      	    JPanel panelL = new JPanel();//creo un pannel JPanel che per default è quello che è diviso tra sud est ovest e nord
      	    c = new GridBagConstraints();
      	  labeldelleNote=new JLabel();  
      	  
      	   labelCitta = new JLabel();
           labelCitta.setText(citta); 
           labelCitta.setPreferredSize(new Dimension (50,70));   
     	   labelCitta.setFont(myFontCitta);
     	   //this.add(labelCitta, c);
     	   panelL.add("EAST",labelCitta);//attacco la prima label a est del panello
     	  
     	  JLabel labelCitta2 = new JLabel();
          labelCitta2.setText(citta); 
          labelCitta2.setPreferredSize(new Dimension (50,70));
     	  panelL.add("WEST",labelCitta2); //attacco la seconda label a ovest
     	 c.weightx = 0.5;
    	   c.fill = GridBagConstraints.HORIZONTAL;
    	   c.ipady=10;
           c.gridx = 0;
    	   c.gridy = 0;
     	   this.add(panelL,c); inserisco il pannello con le due label in testa nella griglia
      	   
      	  c.ipadx=50;
      	  c.ipady=50;
      	  c.gridx=0;
      	  c.gridy=1;
      	   this.add(scrollpane, c);   //metto sotto la tabella
      	 area = new JTextArea();
      	 area.setEditable(false);
      	 area.setFont(myFont);
      	 Object[] codiceNota = db.eseguiQuery("SELECT archivionotearrivi.abbreviazione FROM archiviopartenzeferiali, archiviolocalita, archivionotearrivi WHERE CODICE_1Nota = archivionotearrivi.codice or CODICE_2Nota = archivionotearrivi.codice and codice_localita = archiviolocalita.codice and localita = '"+ citta+"'   group by abbreviazione  ;" ).toArray();
      	 int n = codiceNota.length;
      	 for(int I =0; I<n; I++){
      		System.out.println("Entro");
      		String cNota = codiceNota[I].toString();
      		cNota = elimina_caratteri(cNota);
      		System.out.println("L'abbreviazione adesso è " + cNota);
      		String descrizioneAbbr1 = db.eseguiQuery("SELECT Nota FROM Archivionotearrivi where abbreviazione= '"+cNota+"';").toString();
      		descrizioneAbbr1 = elimina_caratteri(descrizioneAbbr1);
     	   inserisci = cNota + ": " + descrizioneAbbr1+ "\n";  
     	  area.append(inserisci);
      	   
      	 }
      	area = new JTextArea();
    	c.weightx = 0.5;
        c.fill = GridBagConstraints.HORIZONTAL;
        c.gridx = 0;
        c.gridy = 2;
        this.add(area, c);//insriso sotto la test area
    ora il layout andrebbe anche bene se non fosse per il fatto che che le due label sono quassi attaccate e non si riescono a leggere

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.