Impostare un icona situata nel proprio path?

LightSoul94

Utente Attivo
256
16
Salve a tutti.
Come dedurrete dal titolo, vorrei assegnare al mio programma un icona al posto della solita icona java standard che appare quando apro il software.
Spulciando tra le API Java 8 e cercando un po' nella rete, ho capito che per fare questo ho bisogno di importare java.awt.Image e java.awt.Toolkit
Ma molto probabilmente non ho capito il metodo:
Codice:
Image immagineIc=Toolkit.getDefaultToolkit().getImage();
        frame.setIconImage(immagineIc);


Mi spiego meglio:
Il programma, che è un banalissimo frame, una volta compilato prenderò il suo file.jar e lo incapsulerò in un estensione .app (perché sto lavorando su OSX).
Ora, se ho capito bene come si formula il metodo, perchè non funziona? Dove ho sbagliato?


Questo è il programma:
Codice:
import javax.swing.JFrame;import java.awt.Image;
import java.awt.Toolkit;
import javax.swing.JButton;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
import javax.swing.JPanel;
import java.awt.Container;
import java.awt.BorderLayout;
public class MySoft 
{
    public static void main(String[] args) {
        //**Costruzione del Frame**//
        JFrame frame = new JFrame("My Software");
        frame.setSize(400, 400);
        frame.setLocation(800, 300);
        //**Icona**//
        Image immagineIc = Toolkit.getDefaultToolkit().getImage("icon.png");
        frame.setIconImage(immagineIc);
        //**Creazione del bottone**//
        JButton button = new JButton("OK");
        //**Azione del bottone**//
        button.addActionListener(new ActionListener() {
    public void actionPerformed(ActionEvent e)
    {
        frame.dispose();
    }
});
        //**Creazione del pannello**//
        JPanel panel = new JPanel();
        //**Inserimento bottone nel contenitore pane con BorderLayout**//
        Container pane = frame.getContentPane();
        pane.add(button, BorderLayout.PAGE_END);
        //**Inserimento pannello con bottone nel frame**//
        frame.add(panel);
        //**Impostazione di visibilità del frame all'apertura**//
        frame.setVisible(true);
        //**Modalità di chiusura del frame**//
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }
    
}
 
Ultima modifica:

Entra

oppure Accedi utilizzando
Discord Ufficiale Entra ora!