Accedi per seguire   
Seguaci 0
maxpayne

[java] Fare Grafici

4 messaggi in questa discussione

ciao a tutti...sto facendo un programma un po' complicato in java e sto sviluppando anche l'interfaccia grafica...ora non sto a spiegare tutto il mio programma ma spiego solo il punto dove ho problemi....

allora voglio fare un grafico per visualizzare certe mie statistiche e allora cercando in rete ho visto che bisogna ridefinire il metodo paint()...

per fare una prova ho scritto questo metodo paint nel mio programma:

public static void paint(Graphics g)

{

g.setColor(Color.yellow);

g.drawRect(500,350,50,50);

g.fillRect(500,350,50,50);

}

e nel main in teoria dovrei fare:

paint(g);

pero' ovviamente la variabile g non e' definita e allora ho provato a mettere:

Graphics g;

paint(g);

ma poi ho errore perche' ovviamente la variabile g non e' inizializzata e allora ho provato:

Graphics g=new Graphics();

paint(g);

ma da' errore perche' Graphics e' astratta...

cosa devo fare?

penso che mi manca qualcosa ma non so cosa....gli esempi che ho su un libro e che ho trovato in rete sono per le applet e sono un po' diverse

Modificato da MaxPayne

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Il metodo paint è comune a tutte le classi che derivano da Component (in pratica a tutto ciò che è GUI in Java). E viene richiamato automaticamente dalla virtual machine quando il componente deve essere disegnato. Se tu stai scrivendo un tuo componente (che disegna un grafico) lo devi derivare da Component (a dire il vero è meglio se lo derivi da JComponent) e poi devi ridefinirne il metodo paint (meglio se ridefinisci il metodo paintComponent).

A questo metodo, quando viene richiamato dalla virtual machine, viene passato un oggetto Graphics (che è l'oggetto sul quale deve essere disegnato il componente). Quindi non puoi richiamare paint dal metodo main... Devi semplicemente ridefinirlo. Sarà poi la virtual machine a richiamarlo al momento giusto e passando l'oggetto Graphics corretto.

Io, però, ti consiglio di usare JFreeChart per fare grafici... E' una libreria free e molto potente.

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

ciao...io l'ho definito senza chiamarlo ma non funziona cioe' non visualizza nulla...

non puoi farmi un esempio semplice?

in rete ho trovato un programma che fa il paint e ho visto questi comandi

public void paint(Graphics g)

{

//definizione metodo

}

.....

....

Panel p=new Panel();

Graphics g = p.getGraphics();

paint(g);

ho provato questo ma non visualizza nulla...pero' non mi da' piu' gli errori di compilazione che ho scritto prima

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Ho risolto da solo....

per i curiosi ecco un facile esempio:

import java.awt.*;

public class Disegno extends Canvas

{

public Disegno(){}

public void paint(Graphics g)

{

//disegno

g.setColor(Color.black);

g.drawRect(10,10,1020,20);

g.fillRect(10,10,1020,20);

}

public static void main(String args[])

{

Frame f=new Frame();

f.setLocation(0,0);

f.setSize(1024,768);

f.setVisible(true);

Disegno d=new Disegno();

Graphics g = f.getGraphics();

d.paint(g);

f.add(d);

}

}

Condividi questo messaggio


Link di questo messaggio
Condividi su altri siti

Crea un account o accedi per lasciare un commento

Devi essere un utente registrato per partecipare

Crea un account

Iscriviti per un nuovo account nella nostra community. È facile!


Registra un nuovo account

Accedi

Sei già registrato? Accedi qui.


Accedi Ora
Accedi per seguire   
Seguaci 0