|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Mar 2004
Città: Catania
Messaggi: 697
|
[JAVA] Applicazione Grafica
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); } }
__________________
Microcool Banchetto 101 - SilverStone ST1500 - EVGA X58 Classified 4-Way SLI - Intel Core i7 980X Extreme Edition - 6GB DDR3 Corsair Dominator GT 2000C8 |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Oct 2007
Città: Padova
Messaggi: 4131
|
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 |
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Mar 2004
Città: Catania
Messaggi: 697
|
Grazie, sì capito.
__________________
Microcool Banchetto 101 - SilverStone ST1500 - EVGA X58 Classified 4-Way SLI - Intel Core i7 980X Extreme Edition - 6GB DDR3 Corsair Dominator GT 2000C8 |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:33.



















