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());
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.
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")));
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.
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));
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();
}
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"));
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());
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());
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.