Visualizzazione dei risultati da 1 a 2 su 2
  1. #1
    Utente di HTML.it
    Registrato dal
    Feb 2005
    Messaggi
    7

    JFrame e Graphics

    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.

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2005
    Messaggi
    66
    ciao non ho mai usato i JLayeredPane ma al momento mi viene in mente questo!

    public class MioLayeredPane extends JLayeredPane{

    //qui ci metti tutto cio che ti serve

    public MioLayeredPane(){}//costruttore

    public void paintComponent(Graphics g){

    super.paintComponent(g);
    g.drawLine(/*imposti le coordinate*/, null);
    }
    }

    non so se ti può essere utile cmq prova!!! io l'ho scritto al volo qui nn l'ho provato

    ciau

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.