Salve, sto iniziando ad affrontare il disegno con java, disegno una semplice ellisse.
con il seguente codice:
codice:
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class Graf02 {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
JFrame f = new JFrame("Disegno un ellisse");
f.setBounds(800, 500, 300, 300);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new MyComp());
f.setVisible(true);
}
});
}
}
class MyComp extends JComponent{
final static BasicStroke spessore = new BasicStroke(5.0f);
public void paintComponent(Graphics g) {
Graphics2D g2d =(Graphics2D)g;
g2d.setStroke(spessore);
Ellipse2D.Double fc = new Ellipse2D.Double(50,30,100,150);
g2d.draw(fc);
}
}
E funziona perfettamente.
Ho provato a fare la stessa cosa ma utilizzando un JFrame esterno.
Ossia un sorgente principale Graf03.java:
codice:
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class Graf03 {
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
xJFrame f = new xJFrame();
f.getContentPane().add(new MyComp());
//f.add(new MyComp());
f.setVisible(true);
}
});
}
}
class MyComp extends JComponent{
final static BasicStroke spessore = new BasicStroke(5.0f);
public void paintComponent(Graphics g) {
Graphics2D g2d =(Graphics2D)g;
g2d.setStroke(spessore);
Ellipse2D.Double fc = new Ellipse2D.Double(50,30,100,150);
g2d.draw(fc);
}
}
Ed un xJFrame.java esterno dove c'è il frame:
codice:
import java.awt.*;
import javax.swing.*;
public class xJFrame extends JFrame {
public xJFrame() {
setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
setTitle("Sono una x");
setBounds(new java.awt.Rectangle(800, 500, 300, 300));
setPreferredSize(new Dimension(300, 300));
getContentPane().setLayout(null);
pack();
}
}
MI visualizza la finestra ma dell'ellisse non vi è traccia!
Dov'è che sbaglio?
Sarebbe utile avere il JFrame a parte in modo da poterlo generare automaticamente in Netbeans.
Grazie per l'eventuale aiuto.