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

    come disegnare su 2 JPanel testo e grafica

    Salve,
    sto realizzando uno studio su disegnare su due JPanel in modi differenti, ho provato ma non riesco a dividere ciò che deve andare sul panel e cosa sul panel2.
    il file è questo:

    PannelliSovrapposti.java

    codice:
      import java.awt.*;  
        import javax.swing.*;  
        
        public class PannelliSovrapposti {  
            
            //colori RGB
            //g.setColor(myBlue);   g.fillRect(0, 0,350,50);    g.drawRect(0, 0,350,50);
            Color myRosso = new Color(255, 0, 0); // Color red
            Color myRossoSpento = new Color(130, 0, 0); // Color red
            Color myBlu = new Color(10, 10, 255); // Color blu
            Color myyollow = new Color(255,255, 0); // Color giallo
            Color myGiallo = new Color(250,250, 0); // Color giallo
            Color myGialloSpento = new Color(100,100, 0); // Color giallo
            Color myVerde = new Color(0,250,0); // Color verde
            Color myVerdeSpento = new Color(0,100,0); // Color verde
            
            JFrame f= new JFrame("Pannnello esempio con due pannelli");    
            JPanel panel=new JPanel();  
      
          
            
            public class panel extends JPanel
            {
            /**
                 * 
                 */
                private static final long serialVersionUID = 1L;
    
            public void paintComponent(Graphics g)
            {
            super.paintComponent(g);
    
                             g.setColor(Color.black);
                             g.drawOval(0, 0, 20, 30);
                        
                             // per vedere dove sono i pannelli
                             g.setColor(Color.BLACK);
                             g.fillRect(50,100,80,30);   
                             g.setColor(Color.WHITE);
                                 g.fillRect(240,100,80,30); 
                             
                             g.setColor(Color.red);
                             g.setFont(new Font(g.getFont().getFontName(),Font.PLAIN,40) );
                             g.drawString("scrive qualcosa",0,0);
                             System.out.println("scrive qualcosa nella consolle");
                        
            }
            }               
                    
            
         public PannelliSovrapposti()  
                {  
             
               JPanel panel2=new JPanel();
           //  panel.setBounds(40,20,200,200);  
             panel2.setBounds(0,0,200,200); // a fianco 260,20,200,200
             panel2.setBackground(Color.green); 
             Label l2 = new Label("panel2");
             JButton b2=new JButton("Pulsante");   
             b2.setBounds(50,50,80,30);  
             panel.setBounds(40, 20, 200, 200); //posizione del rettangolo
             b2.setBackground(Color.orange);   
             panel2.add(l2);
             panel2.add(b2);  
             f.add(panel2); // sotto
        //   f.setSize(800,400);    
             panel2.setOpaque(true);
             panel.setBackground(Color.pink);
             JButton b1=new JButton("Buttone");  
             Label l = new Label("panel");
             b1.setBounds(50,50,80,30);    
             b1.setBackground(Color.yellow); 
             panel.setBounds(40, 20, 200, 200); //posizione del rettangolo
             panel.add(l); 
             panel.add(b1); 
             f.add(panel); 
             f.add(panel2); // sotto
    
       
             panel.setOpaque(true);
             f.setVisible(true);    // con true si vede il colore
             f.setExtendedState(JFrame.MAXIMIZED_BOTH); //Jframe a schermo intero
      // f.setLayout(null);   //   con  si vede il 2 pannello sotto
        
             
                }     
       
         public class panel2 extends JPanel {
             /**
             * 
             */
            private static final long serialVersionUID = 1L;
    
            public void paintComponent(Graphics g){
             super.paintComponent(g);
             g.setColor(Color.red);
             g.fillRect(10,10, 100,80);
             g.setColor(Color.blue);
             g.drawRect(30,30, 80,60);
             g.setColor(Color.black);
             g.drawString("ciao",50,60);
             }
             }
             
                public static void main(String args[])  
                {  
                new PannelliSovrapposti();  
                }  
            }

    se qualcuno può darmi chiarimenti, ringrazio cordialmente
    Jordan
    Ultima modifica di LeleFT; 26-03-2021 a 18:37 Motivo: Aggiunti i tag CODE

  2. #2
    Quote Originariamente inviata da Jordan45 Visualizza il messaggio
    Salve,
    sto realizzando uno studio su disegnare su due JPanel in modi differenti, ho provato ma non riesco a dividere ciò che deve andare sul panel e cosa sul panel2.
    Non è molto chiaro il dubbio/problema ma dal codice risultano evidenti alcune cose:
    codice:
            JPanel panel=new JPanel();  
      
          
            
            public class panel extends JPanel
            {
    codice:
         public PannelliSovrapposti()  
                {  
             
               JPanel panel2=new JPanel();
    
       // .....................
                }     
       
         public class panel2 extends JPanel {

    Queste due inner class che estendono JPanel NON le stai usando!! Perché non le hai istanziate.
    Quindi?


    P.S.: il codice per come l'hai postato è illeggibile (indentazioni sbagliate ecc...)
    P.S.2: non usare le inner class se non sai cosa sono ..
    AndreaSenior Java developerSCJP 5 (91%) – SCWCD 5 (94%)
    Il mio nuovo sito-blog italiano sulla programmazione: andbin.it

  3. #3
    non usare le inner class se non sai cosa sono

    Grazie, ora capisco perchè
    ma non conosco le inner class, ho letto e copiato ciò che ho visto nei manuali
    intanto mi informo e speroi di capire, eventualmemte potresti darmi, se puoi una soluzione?
    grazie 1000 ancora

  4. #4
    oH DIMENTICAVO, SE NON DEBBO USARE le inner class, COME POSSO risolvere in alternativa o meglio NORMALMENTE?
    Grazie ancora

  5. #5
    Ok altro consiglio sulle "indentazioni"
    ok dovro essere piu chiaro e comprensibile nella stesura del codice
    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 © 2021 vBulletin Solutions, Inc. All rights reserved.