Adding image to JButton

41,885

Solution 1

Two things

  1. The path looks wrong
  2. Java doesn't, natively, support the ico format

Take a look at the path, there is quote mark in the path

C:\\Users\\Aksi\\Documents\\NetBeansProjects\\test'\\src\\test\\Black_B.ico

Just be sure it's suppose to be there or not

Solution 2

Please note that you should use some Java supported image format like .gif, .png for instance.

Solution 3

Try this way:

Create package in your java project like com.icon and add icons in it.

You will set icon's on button this way:

button.setIcon(new ImageIcon(MyFrame.class.getResource("com/icon/Ok.png")));

Just an advice: Use .png instead of .ico.

Solution 4

It is well documented on Oracle.

http://docs.oracle.com/javase/tutorial/uiswing/components/button.html

HOW TO USE ICONS

Good luck!

Share:
41,885
Admin
Author by

Admin

Updated on December 05, 2020

Comments

  • Admin
    Admin over 3 years

    I want to add an image to a JButton. Background of the button is set to black. I tried to add the image on top of it, but nothing was shown. Background color was black but the image was missing.

    Code

    public class Test extends JFrame {
    
        JButton b;
        JPanel p;
    
        Test() {
            p = new JPanel(new BorderLayout());
            b = new JButton();
            b.setBackground(Color.black);
            ImageIcon img = new ImageIcon("C:\\Users\\Aksi\\Documents\\NetBeansProjects\\test'\\src\\test\\Black_B.ico");
            b.setIcon(img);
           
            setDefaultCloseOperation(EXIT_ON_CLOSE);
            setSize(400, 400);
            p.add(b);
            add(p);
           validate();
    
       }
        public static void main(String args[]) throws IOException {
            Test ob = new Test();
            ob.setVisible(true);
        }
    }
    
  • Andrew Thompson
    Andrew Thompson over 11 years
    Good catch. For a list of the image types that a JRE claims to support, see ImageIO.getReaderFileSuffixes(). Note the output might change according to version or OS, so it is best to check at run-time for user images, and stick to JPG, PNG or GIF for application images.
  • Kishan Bheemajiyani
    Kishan Bheemajiyani almost 10 years
    +1 for @MadProgrammer answer its correct and ya happy Friendship day MadProgrammer :)