webentwicklung-frage-antwort-db.com.de

So stellen Sie Icon auf JFrame ein

Ich habe es so versucht, aber es hat sich nicht geändert?

ImageIcon icon = new ImageIcon("C:\\Documents and Settings\\Desktop\\favicon(1).ico");
frame.setIconImage(icon.getImage());
22
vijay

Verwenden Sie besser eine PNG-Datei. .ico ist Windows-spezifisch. Und besser nicht eine Datei verwenden, sondern eine Klassenressource (kann im Jar der Anwendung gepackt werden).

URL iconURL = getClass().getResource("/some/package/favicon.png");
// iconURL is null when not found
ImageIcon icon = new ImageIcon(iconURL);
frame.setIconImage(icon.getImage());

Sie könnten aber auch daran denken, setIconImages für das Symbol in verschiedenen Größen zu verwenden.

36
Joop Eggen

Versuchen Sie, Ihre Bilder in einem separaten Ordner außerhalb Ihres src-Ordners abzulegen. Verwenden Sie dann ImageIO, um Ihre Bilder zu laden. Es sollte so aussehen:

frame.setIconImage(ImageIO.read(new File("res/icon.png")));
6
user2675678

Schließlich fand ich das Hauptproblem beim Einstellen des jframe-Symbols. Hier ist mein Code. Es ähnelt anderen Codes, aber hier sind einige Dinge, die Sie im Spiel beachten sollten.

    this.setIconImage(new ImageIcon(getClass().getResource("Icon.png")).getImage());

1) Fügen Sie diesen Code in das jframe WindowOpened-Ereignis ein

2) Legen Sie das Bild in den Hauptordner, in dem alle Ihre Formulare und Java Dateien erstellt werden, z.

src\ myproject\ myFrame.form
src\ myproject\ myFrame.Java
src\ myproject\ OtherFrame.form
src\ myproject\ OtherFrame.Java
src\ myproject\ Icon.png

3) Und am wichtigsten ist, dass bei dem Dateinamen die Groß- und Kleinschreibung beachtet wird, dh icon.png funktioniert nicht, aber Icon.png.

auf diese Weise bleibt Ihr Symbol auch nach der endgültigen Erstellung Ihres Projekts erhalten.

4

Das funktioniert bei mir.

    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(".\\res\\icon.png"));

Für die Export-JAR-Datei müssen Sie den Erstellungspfad so konfigurieren, dass er den Ordner res enthält, und die folgenden Codes verwenden.

    URL url = Main.class.getResource("/icon.png");
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage(url));
2
Joe

Hier ist der Code, mit dem ich das Icon eines JFrame setze

import javax.imageio.ImageIO;
import Java.io.File;
import Java.io.IOException;

  try{ 
    setIconImage(ImageIO.read(new File("res/images/icons/appIcon_Black.png")));
  } 
  catch (IOException e){
    e.printStackTrace();
  }
1
Craig Cantrell
public FaceDetection() {
    initComponents();
    //Adding Frame Icon
    try {
        this.setIconImage(ImageIO.read(new File("WASP.png")));
    } catch (IOException ex) {
        Logger.getLogger(FaceDetection.class.getName()).log(Level.SEVERE, null, ex);
    }
}'

das funktioniert bei mir.

Sie können auf folgende Weise versuchen,

myFrame.setIconImage(Toolkit.getDefaultToolkit().getImage("Icon.png"));
0
Nilesh Jadav

Ich verwende Maven und habe die Struktur des Projekts, die durch Eingabe des Befehls erstellt wurde:

mvn archetype:generate

Die erforderliche Datei icon.png muss in das src/main/resources Ordner Ihres Maven-Projekts.

Dann können Sie die nächsten Zeilen in Ihrem Projekt verwenden:

ImageIcon img = new ImageIcon(getClass().getClassLoader().getResource("./icon.png"));
setIconImage(img.getImage());
0
fedotsoldier

Kopieren Sie einfach diese wenigen Codezeilen in Ihren Code und ersetzen Sie "imgURL" durch Image (das Sie als jframe Symbol festlegen möchten).

JFrame.setDefaultLookAndFeelDecorated(true);

//Create the frame.
JFrame frame = new JFrame("A window");

//Set the frame icon to an image loaded from a file.
frame.setIconImage(new ImageIcon(imgURL).getImage());
0
Asad Bashir

Ich verwende die folgende Dienstprogrammklasse, um das Symbol für die Instanzen JFrame und JDialog festzulegen:

import Java.awt.*;
import Java.io.IOException;
import Java.io.InputStream;
import Java.net.URISyntaxException;
import Java.util.Scanner;

public class WindowUtilities
{
    public static void setIconImage(Window window)
    {
        window.setIconImage(Toolkit.getDefaultToolkit().getImage(WindowUtilities.class.getResource("/Icon.jpg")));
    }

    public static String resourceToString(String filePath) throws IOException, URISyntaxException
    {
        InputStream inputStream = WindowUtilities.class.getClassLoader().getResourceAsStream(filePath);
        return toString(inputStream);
    }

    // http://stackoverflow.com/a/5445161/3764804
    private static String toString(InputStream inputStream)
    {
        try (Scanner scanner = new Scanner(inputStream, "UTF-8").useDelimiter("\\A"))
        {
            return scanner.hasNext() ? scanner.next() : "";
        }
    }
}

So wird die Verwendung so einfach wie das Aufrufen

WindowUtilities.setIconImage(this);

irgendwo in Ihrer Klasse wird ein JFrame erweitert.

Der Icon.jpg Muss sich in myproject\src\main\resources Befinden, wenn zum Beispiel Maven verwendet wird.

0
BullyWiiPlaza