Мне не удается отобразить значок в компоненте свинга JLabel - PullRequest
2 голосов
/ 11 июля 2010

Ниже приведен код Java Swing для размещения значка в компоненте JLabel Swing.

package com.TheMcLeodgrp;

import java.awt.FlowLayout;
import java.awt.HeadlessException;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;

public class Main extends JFrame {
  public Main() throws HeadlessException {
    setSize(300, 300);
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new FlowLayout(FlowLayout.LEFT));

    Icon icon = new ImageIcon("myIcon.gif");
    JLabel label1 = new JLabel("Full Name :", icon, JLabel.LEFT);

    JLabel label2 = new JLabel("Address :", JLabel.LEFT);
    label2.setIcon(new ImageIcon("myIcon.gif"));

    getContentPane().add(label1);
    getContentPane().add(label2);
  }

  public static void main(String[] args) {
    new Main().setVisible(true);
  }
}

Это простая программа меток, где все остальное работает нормально. Значок (myIcon.gif) просто не будет отображаться на ярлыке при запуске программы. Я запускаю его из стандартной Eclipse IDE, и myIcon.gif находится в папке - т.е. images / myIcon.gif. Кажется, что я упустил что-то простое, но я не знаю Нужно ли размещать значок где-то еще в приложении.

Ответы [ 2 ]

1 голос
/ 11 июля 2010

Я думаю, что следующая статья лучше объяснит, как загружать ресурсы изображений, чем я:)

http://download.oracle.com/docs/cd/E17409_01/javase/tutorial/uiswing/components/icon.html

0 голосов
/ 11 июля 2010

Я буду второй рекомендацией @ eugener по обучению.Также попробуйте использовать относительный путь и проверьте результат построения ImageIcon:

JLabel label2 = new JLabel("Address :", JLabel.LEFT);
ImageIcon icon = new ImageIcon("images/myIcon.gif");
if (icon.getIconWidth() == -1) {
    JOptionPane.showMessageDialog(null,
        "No image!", "Gahh!", JOptionPane.ERROR_MESSAGE);
} else {
    label2.setIcon(icon);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...