Search code examples
javamacosswingjlabelimageicon

How to add icon into Java (NetBeans) from Mac Os X?


So I'm trying to add an icon into my program, but the textbook I'm reading explain how to only for Windows users. I would like to know how to add the icon. I have it on my program source folder and the code I have so far is something like this:

logo = new ImageIcon("~://resources//CherryBoom.png");

labelone = new JLabel("Fruit No.1 : ", logo, SwingConstants.LEFT);
JPanel panelone = new JPanel();
panelone.add(labelone, logo);

The icon still won't show on the windows panel, so I'm really lost here, and I don't know how can I get it to show into my program.


Solution

  • First of all, check the obvious solutions such as:

    • Have you done window.add(panelone);
    • Is the file in the correct spot/url is correct

    Secondly, if you hate LayoutManagers like me, but still want to use javax.swing, you might try using drawString and drawImage methods in your panel's paintComponent(Graphics g) class. In detail:

    You'll need to make your own JPanel:

    public class MyPanel extends JPanel {

    as well as override the method:

    @Override
    public void paintComponent(Graphics g) {
    

    within the method, call this so the window can refresh itself and do other housekeeping things:

    super.paintComponent(g);

    then, use drawString and drawImage to draw these images in the place you would like them:

    g.drawString("Fruit No. 1", x, y);
    logo.paintIcon(this, g, x, y);
    

    Whenever you change or draw an image, you'll also want to call in the main method:

    panelone.repaint();

    Hope this helps!