2011-06-21 2 views
2

J'ai essayé de configurer une fenêtre dans le générateur GUI de Netbean, sans succès. J'ai essayé d'accéder à la JFrame, de ma classe principale comme:Définition d'une icône pour un jFrame dans le générateur de gui swing Netbeans

public void run(){ 

    JFrame frame = new JFrame("Title of Frame"); 
    frame.setIconImage(Toolkit.getDefaultToolkit().getImage("org/icon.png")); 

} 

Ce qui crée un nouveau cadre en dehors de ma fenêtre principale avec mon icon.png. Je voudrais savoir s'il existe un moyen d'accéder au JFrame qui contient le reste de mes éléments d'interface utilisateur, et définir cette icône. J'ai également essayé new SearchAppUI().setIconImage(null); qui ne fait rien de note.

Réglage de l'icône directement:

JFrame.setIconImage("org/icon.png"); 

me donne l'erreur, méthode non statique setIconImage (java.awt.Image) ne peut pas être référencé à partir d'un contexte statique.

Y a-t-il un moyen de définir l'icône JFrame principale à partir de l'aperçu du desinger de Netbean ou de ma méthode run()?

Répondre

3

NVM, je trouve une solution sur: http://www.youtube.com/watch?v=o_35iro4b7M

décrivant comment définir l'icône et le titre d'un JFrame. En gros, il faut les bibliothèques

import javax.swing.JFrame; 
import java.awt.image.BufferedImage; 
import java.io.File; 
import java.awt.Image; 
import javax.imageio.ImageIO; 

Je voulais à peu près en tenir à l'aide de guibuilder de Netbean pour l'instant, au moins pour le prototypage.

+0

Encaisser votre réponse, pour aider les autres voient que votre problème est déjà résolu. – MockerTim

1

Tout d'abord. Il vaut la peine de lire How to Make Frames.

Vous pouvez utiliser l'exemple suivant.

import java.awt.BorderLayout; 
import java.awt.Dimension; 
import java.lang.reflect.InvocationTargetException; 
import java.net.URL; 
import javax.swing.ImageIcon; 
import javax.swing.JFrame; 
import javax.swing.JPanel; 
import javax.swing.SwingUtilities; 

public class FrameWithIcon extends JFrame { 

    public static void main(String[] args) { 
     try { 
      SwingUtilities.invokeAndWait(new Runnable() { 

       public void run() { 
        FrameWithIcon myFrame = new FrameWithIcon(); 
        myFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
        myFrame.setTitle("Frame with Icon"); 
        myFrame.setLayout(new BorderLayout()); 
        myFrame.setIconImage(
         loadImageIcon("org/icon.png").getImage()); 

        Dimension size = new Dimension(250, 100); 
        JPanel panel = new JPanel(); 
        panel.setPreferredSize(size); 

        myFrame.add(panel, BorderLayout.LINE_START); 
        myFrame.setVisible(true); 
        myFrame.pack(); 
       } 
      }); 
     } catch (InterruptedException ex) { 
     } catch (InvocationTargetException ex) { 
     } 
    } 

    /** Returns an ImageIcon, or null if the path was invalid. */ 
    private static ImageIcon loadImageIcon(String path) { 
     URL imgURL = FrameWithIcon.class.getResource(path); 
     if (imgURL != null) { 
      return new ImageIcon(imgURL); 
     } else { 
      System.err.println("Couldn't find file: " + path); 
      return null; 
     } 
    } 
} 
3

L'OP est un peu daté, mais juste pour le dossier, essayez ceci:

frame.setIconImage(Toolkit.getDefaultToolkit().getImage(getClass().getResource("org/icon.png"))); 
Questions connexes