Adattare elementi a finestra

di il
6 risposte

Adattare elementi a finestra

Https://i.ibb.co/r2gvw8z/tabella.pn


Questa è la finestra che si apre quando apro il programma, quando ingrandisco la finestra vorrei che gli elementi dentro (tabella bottoni, jlabel in basso a destra) si adattino non come nella foto qui sotto... Come si fa? Grazie mille


https://i.ibb.co/6nqF7wr/adattati.pn

6 Risposte

  • Re: Adattare elementi a finestra

    p0ll0_ ha scritto:


    vorrei che gli elementi dentro (tabella bottoni, jlabel in basso a destra) si adattino non come nella foto qui sotto... Come si fa?
    Dipende da come hai creato il layout: con il posizionamento "assoluto"? .... o con uno/più layout manager?
  • Re: Adattare elementi a finestra

    Absolute layout per lo sfondo e per la tabella nel codice ho messo BorderLayout
  • Re: Adattare elementi a finestra

    Quindi mi sapresti rispondere? Grazie mille se mai !
  • Re: Adattare elementi a finestra

    p0ll0_ ha scritto:


    Https://i.ibb.co/r2gvw8z/tabella.pn
    Ora che guardo non mi sono spiegata benissimo. La prima foto che ho messo nel quote va bene, ma vorrei che quando ingrandisco la finestra i bottoni a dx rimangono della stessa larghezza e anche i JLabel che si vedono sotto. Mentre la tabella che si vede a destra (che è in un JPanel) si allargasse, aiuti?

    https://i.ibb.co/z8XN3vL/Immagine2.pn
  • Re: Adattare elementi a finestra

    Nella parte grafica, se clicco col destro su JFrame e poi su events e poi su Component e poi Component resized, mi porta a questo
      private void formComponentResized(java.awt.event.ComponentEvent evt) {  
    Quando sistemo la grandezza della finestra una volta partito il programma entra lì, ho provato quindi a scrivere questo codice, ma non funziona...
      private void formComponentResized(java.awt.event.ComponentEvent evt) {                                      
    
            jPanel1.setSize(800, 500);
            jPanel1.updateUI();
        } 
    perché?
  • Re: Adattare elementi a finestra

    Ce l'ho fatta. Posto il codice che ho fatto nel caso in cui serva a qualcun altro.

      private void formWindowStateChanged(java.awt.event.WindowEvent evt) {                                        
            adatta_elementi_in_finestra_();
    
        } 
       private void formComponentResized(java.awt.event.ComponentEvent evt) {                                      
            adatta_elementi_in_finestra_();
    
    
        } 
     public void adatta_elementi_in_finestra_() {
            System.out.println(super.getSize().getWidth());
            System.out.println(super.getSize().getHeight());
    
            int w = (int) super.getSize().getWidth();
            int h = (int) super.getSize().getHeight();
            int ww = w - 147 - 25;
    
            int hh = 10;
            getContentPane().add(jButton1, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 30));
            hh += 30;
            getContentPane().add(jButton5, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 30));
            hh += 30;
            getContentPane().add(jButton2, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 30));
            hh += 30;
            getContentPane().add(jButton4, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 30));
            hh += 30;
            getContentPane().add(jButton3, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 30));
            hh += 30;
            getContentPane().add(jButton6, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 30));
    
            getContentPane().add(
                    jPanel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(
                            10, 10, ww - 20, h - 60));// W H 
    
            hh = h - 55 - 50 - 50;
            getContentPane().add(jLabel2, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww , hh, 147, 50));
            hh = h - 55 - 50;
            getContentPane().add(jLabel1, new org.netbeans.lib.awtextra.AbsoluteConstraints(ww, hh, 147, 50));
        }
Devi accedere o registrarti per scrivere nel forum
6 risposte