Visualizzazione dei risultati da 1 a 5 su 5

Hybrid View

  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
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    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 ..
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  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
    Ok altro consiglio sulle "indentazioni"
    ok dovro essere piu chiaro e comprensibile nella stesura del codice
    grazie

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

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 © 2024 vBulletin Solutions, Inc. All rights reserved.