Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    [Java] Problemi con la grafica

    Ciao!
    Avrei bisogno ancora una volta un piccolo aiuto...
    Il problema è questo: dovrei disegnare delle semplici immagini in un'applicazione, immagini che però devono essere continuamente ridisegnate a seconda dell' interazione con l'utente.
    Ho provato a disegnare tramite un Graphics su un pannello (ridefinendo la classe JPanel), ma o implemento tutto il controllo del disegno in uno stesso metodo (cosa alquanto difficile poichè dovrei poter anche decidere quali elementi grafici disegnare e quali no in un dato momento) oppure invocando più volte il metodo di disegno di un elemento (ad esempio per disegnare 2 cerchi) vengono creati più pannelli uno sopra l'altro (almeno credo...) ed è possibile visualizzare solo l'ultimo pannello visualizzato, mentre io vorrei poter disegnare + volte sullo steso pannello senza che quello che è stato disegnato precedentemente venga disegnato. Per spiegarmi meglio posto di seguito ciò che finora ho implementato:

    codice:
    public class MainWindow implements MainWinInterface{
    
    
    
    private JPanel jContentPane = null;
    private JFrame jFrame = null; // @jve:decl-index=0:visual-constraint="19,14"
    private MyPanel jPanel = null;
    
    private Graphics g;
    
    public MainWindow()
    {
    jFrame = this.getJFrame();
    this.jFrame.show();
    }
    
    public void drawSem(int posX,int posY,int dim,char state)
    {
    this.jPanel.setParameter(posX,posY,dim,state);
    this.jPanel.setParameter(posX+10,posY+10,dim-3,'r');
    
    };
    
    
    /**
    * This method initializes jContentPane
    *
    * @return javax.swing.JPanel
    */
    private JPanel getJContentPane() {
    if (jContentPane == null) {
    jContentPane = new JPanel();
    jContentPane.setLayout(new BorderLayout());
    jContentPane.add(getJPanel(), java.awt.BorderLayout.CENTER);
    }
    return jContentPane;
    }
    /**
    * This method initializes jFrame
    *
    * @return javax.swing.JFrame
    */
    private JFrame getJFrame() {
    if (jFrame == null) {
    jFrame = new JFrame();
    jFrame.setContentPane(getJContentPane());
    jFrame.setTitle("jFrame");
    jFrame.setSize(349, 129);
    jFrame.setName("mainFrame");
    }
    return jFrame;
    }
    /**
    * This method initializes jPanel
    *
    * @return javax.swing.JPanel
    */
    private MyPanel getJPanel() {
    if (jPanel == null) {
    jPanel = new MyPanel();
    }
    return jPanel;
    }
    
    class MyPanel extends JPanel
    {
    private int posX;
    private int posY;
    private int dim;
    private char state;
    
    public void setParameter(int posX, int posY, int dim, char state)
    {
    this.posX = posX;
    this.posY = posY;
    this.dim = dim;
    this.state = state;
    }
    
    public void paintComponent(Graphics g)
    {
    
    super.paintComponent(g);
    
    if (state=='r')
    g.setColor(Color.RED);
    else
    g.setColor(Color.GREEN);
    
    System.out.println("draw");
    g.fillOval(posX,posY,dim,dim);
    System.out.println("drawrepaint");
    
    }
    
    }
    
    }
    
    In alternativa come potrei risolvere il problema in un'altra maniera?
    In C# avevo risolto un problema analogo disegnando su una Bitmap all'interno di una pictureBox, come posso fare una cosa analoga in Java ? (qual'è l'equivalente della PictureBox? Come ottengo la Bitmap?)
    Ciao e grazie tutti,
    :-)
    Teo /\/\ala
    OOOH...DA URLO !!!
    www.ma5.it

  2. #2
    Proprio nessuno?
    Teo /\/\ala
    OOOH...DA URLO !!!
    www.ma5.it

  3. #3
    Vuoi disegnare più immagini (che possono subire delle modifiche nel tempo) su un unico componente?

    Se è questo il problema a mio parere basta creare un vector contenente l'insieme delle immagini e poi eseguire il metodo drawImage dell'ogetto graphics per ciascuna immagine contenuta nel Vector.

    A questo punto basta gestire questo Vector modificando le immagini a tuo piacipento.

    Ciao
    TonyTalk
    Gioca a The Empire Multiplayer online game...ispirato a Risiko ma con scenari ed opzioni rivoluzionarie
    http://www.multiplayergames.it
    http://utenti.lycos.it/the_empire

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.