Impostare un'immagine in background su un JPanel non è un'impostazione difficile.

Ci bastano un BufferedImage e ImageIO.

Vediamo un esempio di JPanel che richiede nel costruttore un oggetto File (l'immagine appunto).

Nell'esempio non ho fatto un controllo sulla effettiva esistenza del file; quello mettetelo dove meglio credete nella vostra applicazione.

Sono rimasto un pò sorpreso dal fatto che i JFrame non hanno la possibilità di essere finestre modali.

Essendo un componente molto usato, lo davo per scontato.

Però, se vogliamo creare finestre modali in Java, possiamo comunque rivolgerci ai JDialog.

Estendendo questa classe, possiamo creare finestre con tutti i componenti che vogliamo, e rendere la finestra modale.

Oggi vediamo un esempio.

All'interno ci piazziamo anche un JPanel; in questo modo possiamo personalizzare la finestra come ci pare, in quanto ci basterà mettere i componenti che ci servono dentro al JPanel.

Torniamo a parlare un pò di Java (che purtroppo ho dovuto un pò tralasciare per poco tempo).

Oggi vediamo come poter disegnare un rettangolo con il mouse su un JPanel.

Inoltre dovrà implementare MouseListener e MouseMotionListener e i metodi derivati:

  • mousePressed
  • mouseDragged
  • mouseReleased
  • mouseClicked
  • mouseEntered
  • mouseExited
  • mouseMoved

Gli ultimi 4 metodi però rimarrano vuoti perchè non ci serviranno.

Vediamo come strutturare il tutto:

public class FrameDraw extends JFrame {

    private JScrollPane scroll;
    private int width = (int) Toolkit.getDefaultToolkit().getScreenSize().getWidth(); // DIMENSIONE JPANEL
    private int height = (int) Toolkit.getDefaultToolkit().getScreenSize().getHeight(); // DIMENSIONE JPANEL

    public FrameDraw() {
        super("Draw panel");
        setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        setLayout(new BorderLayout());
        ImagePanel panel = new ImagePanel();
        scroll = new JScrollPane(panel);
        add(scroll, BorderLayout.CENTER);
    }

// CLASSE PRIVATA JPANEL.

}

Questo è il JFrame principale; ImagePanel sarà il JPanel che andremo ad inserire come classe privata.

Java mette a disposizione la classe SplashScreen per creare degli splash screen per le nostre applicazioni.

A mio modo di vedere però sono poco flessibili e si possono ottenere cose migliori usando un JWindow.

Io per creare il mio splash ho usato una JWindow temporizzato; così facendo posso impostare qualsiasi aspetto della finestra.

Inoltre con la classe Timer possiamo decidere per quanto visualizzare la finestra.

JFreeChart è una libreria per Java per creare grafici.

I dati per riempire i grafici possiamo crearli staticamente o prenderli da altre fonti, tipo da database MySQL.

E questo è proprio l'esempio che vedremo.

Inoltre possiamo sia creare un'immagine sul disco che aggiungerlo a un pannello.

Nello specifico vedremo questo esempio.

Prima di tutto scarichiamo la libreria da qua; tenete conto che JFreeChart richiede anche JCommon che comunque potete scaricare sempre dalla stessa pagina.

Poi aggiungete le librerie al vostro progetto.