PDA

View Full Version : [JAVA] Applicazione Grafica


Ghneuma
22-02-2008, 08:00
Ho un esercizio da svolgere e non ho la minima idea di come svolgerlo: devo disegnare un'ellisse in un frame in modo tale che tocchi i bordi del frame e devo fare in modo che l'ellisse si ridimensioni automaticamente quando si ridimensiona il frame. La prima parte l'ho risolta ma come diavolo si fa a ridimensionare automaticamente la forma grafica in funzione delle dimensioni del frame? E' un pomeriggio che ci sbatto, vi prego aiutatemi!!!

Ecco il listato del visualizzatore del frame e del componente che disegna l'ellisse:

import javax.swing.JFrame;
public class EllisseV
{
public static void main(String[] args)
{
JFrame frame = new JFrame();
frame.setSize(515, 335);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

EllisseC ellisse = new EllisseC();
frame.add(ellisse);

frame.setVisible(true);
}
}

---------------------------------------

import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.Color;
import java.awt.geom.Ellipse2D;
import javax.swing.JComponent;
public class EllisseC extends JComponent
{
public void paintComponent(Graphics g)
{
Graphics2D g2 = (Graphics2D) g;

Ellipse2D.Double ellipse = new Ellipse2D.Double(0, 0, 500, 300);

g2.setColor(Color.GREEN);
g2.fill(ellipse);

}
}


:help:

banryu79
22-02-2008, 13:29
Semplice:
1) definisci un metodo per la tua classe EllisseC che prenda in ingresso le dimensioni del frame in cui verrà disegnata, per poter parametrizzare le dimensioni con cui si disegnerà;

2) nel paintComponent di EllisseC disegna l'ellisse utilizzando le dimensioni memorizzate;

2) Fai in modo che dopo ogni "Resize" del tuo Frame quest'ultimo passi le sue nuove dimensioni al tuo oggetto EllisseC tramite il nuovo metodo di cui al punto 1) e il gioco è fatto.

Ciao :)

Ghneuma
23-02-2008, 07:35
Grazie, sì capito.