Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Adding image to JButton

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);
    }
}
like image 646
Akshay Kumar Avatar asked Aug 20 '12 08:08

Akshay Kumar


4 Answers

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

like image 57
MadProgrammer Avatar answered Nov 15 '22 20:11

MadProgrammer


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

like image 39
Dan D. Avatar answered Nov 15 '22 19:11

Dan D.


It is well documented on Oracle.

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

HOW TO USE ICONS

Good luck!

like image 1
Tejas jain Avatar answered Nov 15 '22 21:11

Tejas jain


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.

like image 1
Branislav Lazic Avatar answered Nov 15 '22 19:11

Branislav Lazic