Salve,
osservate questo codice
codice:
import java.awt.*;
import java.awt.geom.*;
import javax.swing.*;
public class Graf_01{
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, 245);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f.add(new MyComp());
f.setVisible(true);
}
});
}
}
class MyComp extends JComponent{
final BasicStroke spessore = new BasicStroke(5.0f);
public void paintComponent(Graphics g) {
super.paintComponent(g);
Graphics2D g2d =(Graphics2D)g;
g2d.setStroke(spessore);
Ellipse2D.Double fc = new Ellipse2D.Double(95,30,100,150);
g2d.draw(fc);
}
}
Sullo stesso file Graf_01.java abbiamo due classi la seconda MyComp non è una classe interna a Graf_01 è una classe esterna ma nello stesso file. Come si vede non ha nessun specificatore di accesso (o descrittore di visibilità) e così funziona. La cosa che chiedo è: omettendo lo specificatore per default quale specificatore le viene attribuito!?
Ho privato a metterglieli tutti con i seguenti risultati:
- private Error: identifier not allowed here
- public Error: Class MyComp is public, should be declared in a file named MyComp.java
- protected Error: modifier protected not allowed here
- package Error: Class, interface or enum expected
A questo punto ammetto di essere molto confuso.
Grazie per l'eventuale chiarimento.