PDA

View Full Version : [JAVA] Disegnare in un componente


Jim Fox
16-09-2008, 17:13
Nel libro che sto seguendo sono arrivato al punto di dover disegnare in un componente. Mi chiede di disegnare una coppia di piccoli rettangoli in un frame.

Vi spiego... Il procedimento l'ho capito, ma quello che nn mi è chiaro è perché il compilatore mi va in errore nella riga " public class RectangleComponent extends JComponent ".

Personalmente, nella mia ignoranza, sono arrivato alla conclusione che la classe che vado ad invocare nn è definita e quindi "non riconosciuta".

Qualcuno sa spiegarmi il codice sotto?

import java.awt.Graphics;
import java.awt.Graphics2d;
import java.awt.Rectangle;
import javax.swing.Jcomponent;

// un componente che disegna due rettangoli

public class RectangleCompontent extends JComponent
{
public void paintComponent(Graphics g)
{
// recupera Graphics2D
Graphics2D g2 = (Graphics2D) g;

// costruisce un rettangolo e lo disegna
Rectangle box = new Rectangle(5, 10, 20, 30);
g2.draw(box);

// sposta il rettangolo di 15 unità verso destra e di 25 unità verso il basso
box.translate(15, 25);

// disegna il rettangolo nella nuova posizione
g2.draw(box);
}
}

e questo

import javax.swing.JFrame;

public class RectangleViewer
{
public static void main(String[] args)
{
JFrame frame = new JFrame();

frame.setSize(300, 400);
frame.setTitle("Two rectangles");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

RectangleComponent component = new RectangleComponent();
frame.add(componet);

frame.setVisible(true);
}
}

Per visualizzare i rettangoli richiesti cosa altro bisogna fare???

Oceans11
16-09-2008, 17:25
perché il compilatore mi va in errore nella riga " public class RectangleComponent extends JComponent ".

Personalmente, nella mia ignoranza, sono arrivato alla conclusione che la classe che vado ad invocare nn è definita e quindi "non riconosciuta".

Il compilatore da più di un errore a dire la verità...ne trovo 3 a occhio....ma niente di grave, solo errori di "scrittura" :D ....controlla i nomi di variabili e classi (anche negl'import)

Oceans11
16-09-2008, 17:28
Il codice della prima classe è già commentato! :confused: tu cosa vuoi sapere?

Per la seconda, invece, beh quel codice crea un JFrame (una finestra), imposta titolo e dimensioni, gli dice come si deve comportare quando tu premi la "X", e poi dentro ci mette il tuo famoso RectangleComponent!

Jim Fox
16-09-2008, 17:42
bè si, a parte gli errori di scrittura che avevo già corretto nella versione che ho rivisto sul mio pc (import java.awt.Graphics2D e import javax.swing.JComponent) è proprio questo RectangleComponent che nn capisco e che mi va in errore.

In pratica devo portare i due rettangoli creati con il primo codice, nel frame creato con il secondo.

Oceans11
16-09-2008, 18:26
hai scritto:
frame.add(componet);

una "n" ti è sfuggita....:D

Jim Fox
17-09-2008, 01:37
Grazie mille Oceans. E cmq, adesso che ho capito la logica è tutto molto più semplice! ;)

banryu79
17-09-2008, 09:04
Per evitare pertide di tempo inutili dovute a errori di sintassi e/o di battitura, ti converrebbe usare un IDE. Per esempio Eclipse.
Ciao :)