Cercherò di essere il più possibile chiara:
Ho bisogno di un aiuto per capire come un frame possa riuscire a leggere ad esempio una semplice linea.
L'unico modo che sono riuscita a trovare è creare una nuova classe che estende JPanel e ridefinire il metodo paintComponent(Graphics g). Però il problema è ho già una classe che estende JPanel ed è così organizzata:
public class LabyrinthPanel extends JPanel
{
public LabyrinthPanel(Setting setting, ControlGame game)
{
this.setting = setting;
this.game = game;
/* Crea e configura il layered pane */
layeredPane = new JLayeredPane();
setLayout(new BoxLayout(this, BoxLayout.PAGE_AXIS));
layeredPane.setBorder(BorderFactory.createTitledBo rder("Trova l'uscita del labirinto"));
this.setBackground(BACKGROUND_COLOR);
/* Crea il pannello di controllo (parte inferiore della scena) */
controls = new JPanel();
controls.setBackground(BACKGROUND_COLOR);
/* Dimensione dell'interfaccia */
xCanvas = setting.xCanvas;
yCanvas = setting.yCanvas;
layeredPane.setPreferredSize(new Dimension(xCanvas, yCanvas));
panelScore(); // costituita da JPanel e dunque già visibile al frame
panelGame(); // è qui che dovrei inserire le linee!!??
/* Aggiunge il pannello dei controlli e il layered pane al JPanel */
add(layeredPane);
add(controls);
}
.....eccc
}
Invece la classe che estende il JFrame è più o meno la seguente:
public class PacArcade extends JFrame
{
public PacArcade()
{
setTitle("PacArcade");
// Impedisce il ridimenzionamento della frame
setResizable(false);
// Termina con la chiusura della frame
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setting = new Setting();
game = new ControlGame(setting);
// dimensioni frame
setSize(setting.xCanvas + setting.xOff, setting.yCanvas);
//time = new Timer(DELAY_TIME, new ReboundActionListener());
// dentro ogni frame c'è un container recuperabile con metodo getContentPane()
Container c = getContentPane();
panel = new LabyrinthPanel(setting, game);
// i nuovi componenti vanno aggiunti al container
c.add (panel);
}
}
Ora ecco il problema...devo far vedere nel pannello superiore (e cioè layeredPane) almeno una linea o una stringa scritta come drawString...qualcuno ha un'idea???
Grazie mille a tutti.