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

    Frame che visualizzi due rettangoli all interno

    Salve a tutti, ho appena iniziato a studiare java, mi è stato prestato un testo "concetti di informatica e fondamenti di java", apogeo. In uno degli esercizi dove dentro un frame si deve creare un rettangolo, ho qualche problema nel visualizzare la figura geometrica. Il frame compare ma è vuoto, non ho alcun errore nel compilare quindi penso ad un errore logico. Vi posto il codice ( per voi sarà banale per me non lo è ).

    Questo è il file frameConRettangolo.java
    codice:
    //Visualizzazione Frame import javax.swing.JFrame;  public class FrameConRettangolo { 	public static void main(String[] args) 	{ 		JFrame frame = new JFrame(); 		 		frame.setSize(300, 400); 		frame.setTitle("Frame con rettangolo"); 		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 		 		ComponenteRettangolo componente = new ComponenteRettangolo(); 		frame.add(componente); 		 		frame.setVisible(true); 	} }
    questo Componenterettangolo.java
    codice:
    //Un componente che disegna due rettangoli import java.awt.Graphics; import java.awt.Graphics2D; import java.awt.Rectangle; import javax.swing.JComponent;  public class ComponenteRettangolo extends JComponent //estende le funzionalità di JComponent { 	public void disegnaComponente( Graphics g ) 	{ 		Graphics2D g2 = (Graphics2D) g; //cast 		 		Rectangle rettangolo = new Rectangle( 5, 10, 20, 30 ); 		g2.draw(rettangolo); //disegna la figura "rettangolo" 		 		rettangolo.translate(15,25); 		g2.draw(rettangolo); 	} }
    Ovviamente compilo da dos col comando javac FrameConRettangolo e poi eseguo con java, grazie a tutti per l aiuto...

  2. #2
    non riesco a capire :

    public void disegnaComponente( Graphics g )

    semmai devi scrivere
    public void paint( Graphics g )
    mettendo paint tutto funziona.
    Attenzione che il nome del file deve rispecchiare fedelemente il nome della classe all'interno dello stesso.
    Per cui ComponenteRettangolo.java e FrameConRettangolo.java


    e poi ne disegna solo 1 di rettangolo....

    Ciao
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

  3. #3
    Ecco, era quello l'errore, quel disegnaComponente, perchè generalmente non copio gli esempi dal libro ma cerco di fare io i sorgenti, e non avevo idea che ci fosse bisogno dell'override di quella funzione... grazie mille per l aiuto...

  4. #4
    sisi ci vuole l'overridide del metodo paint.
    così come paintComponent.

    Ciao.
    I computer sono incredibilmente veloci, accurati e stupidi.
    Gli uomini sono incredibilmente lenti, inaccurati e intelligenti.
    Insieme sono una potenza che supera l'immaginazione.

    A.Einstein

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.