значок в JTabbedPane не отображается

У меня проблема с вкладками:

JTabbedPane tab = new JTabbedPane();
    frame.add(tab, BorderLayout.CENTER);

    JPanel contact = new JPanel();
    contact.add(backgroundContact);
    tab.add("Contacto", contact);
    //tab.addTab("Contacto",new ImageIcon("images/image2.gif"), contact,"");

    JPanel schedule = new JPanel();
    schedule.add(backgroundSchedule);
    tab.add("Horario", schedule);
    //tab.addTab("Horario", new ImageIcon("images/image2.gif"), schedule,"");

    JPanel cost = new JPanel();
    cost.add(backgroundCost);
    tab.add("Tarifas", cost);
    //tab.addTab("Tarifas", new ImageIcon("images/image3.gif"), cost,"");


      // Los iconos
    tab.setIconAt(0, new ImageIcon("images/image1.gif"));
    tab.setIconAt(1, new ImageIcon("images/image2.gif"));
    tab.setIconAt(2, new ImageIcon("images/image3.gif"));

Я пробовал оба варианта, но значки не отображаются. Почему это происходит?

Я также пробовал: new ImageIcon("images/im.gif") которого не существует, и у меня есть ошибка


person user1256477    schedule 04.05.2012    source источник


Ответы (1)


Попробуйте это вместо этого:

URL urlToImage3 = this.getClass().getResource("/" + "images/image3.gif");
... new ImageIcon(urlToImage3);

Вы можете объединить "/" + "images/image3.gif" — я просто хотел выделить ведущее /, так как поиск в корне пути к классам более надежен.

Если эти изображения являются «встроенным ресурсом», как я подозреваю, они не будут доступны File во время выполнения, но должны быть на пути к классам в одном из Jar-файлов приложения и, следовательно, доступны URL.

person Andrew Thompson    schedule 04.05.2012