Comment ajouter une image dans la jlist
Salut j'ai créé un j liste et là je veux ajouter une image avant tout le texte de ce comment puis-je faire, j'ai essayé mais je ne suis pas en mesure d'atteindre mon but, je veux ajouter une image avant de l'élément de la liste"Barmer".
public class ListDemo extends JPanel
implements ListSelectionListener {
private JList list;
private DefaultListModel listModel;
public ListDemo() {
super(new BorderLayout());
listModel = new DefaultListModel();
listModel.addElement("Barmer");
//Create the list and put it in a scroll pane.
list = new JList(listModel);
list.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
list.setSelectedIndex(0);
list.addListSelectionListener(this);
list.setVisibleRowCount(5);
list.setBackground(new java.awt.Color(0,191,255));;
list.setFont(new Font("Arial",Font.BOLD,35));
list.setForeground( Color.white );
list.setFixedCellHeight(60);
list.setFixedCellWidth(50);
list.setBorder(new EmptyBorder(10,20, 20, 20));
JScrollPane listScrollPane = new JScrollPane(list);
add(listScrollPane, BorderLayout.CENTER);
}
public void valueChanged(ListSelectionEvent e) {
}
private static void createAndShowGUI() {
//Create and set up the window.
JFrame frame = new JFrame("ListDemo");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
//Create and set up the content pane.
JComponent newContentPane = new ListDemo();
newContentPane.setOpaque(true); //content panes must be opaque
frame.setContentPane(newContentPane);
frame.setExtendedState(JFrame.MAXIMIZED_BOTH);
frame.setUndecorated(true);
//Display the window.
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args) {
createAndShowGUI();
}
}
Comment puis-je faire aider moi?
Merci d'avance
Veuillez a) trouver le format de mon code " raccourci dans votre IDE et l'utiliser. b) Fait passer à travers les tutoriels avant de ce qui nous attend à la cuillère flux d'informations. La première frappe pour "jlist tutoriel" montre exactement comment le faire.
Cette question semble être hors-sujet car il s'agit d'une question facile de répondre en passant par le tutoriel officiel.
Cette question semble être hors-sujet car il s'agit d'une question facile de répondre en passant par le tutoriel officiel.
OriginalL'auteur | 2014-03-08
Vous devez vous connecter pour publier un commentaire.
Vous voulez regarder comme une coutume
ListCellRenderer
. Vous pouvez regarder Provding un moteur de Rendu Personnalisé pourJComboBox
. Il de même pour unJList
. Le didacticiel sur-complique un peu pour les scénarios simples. Ils s'étendJLabel
etimplements ListCellRender
où vous devez mettre en œuvre quelques choses inutiles si vous voulez juste des fonctionnalités de base mais avec suis de l'image.Vous pouvez simplement au lieu
extends
ou créer un anonymeDefaultListCellRender
et qui vient d'obtenir l'JLabel
rendu de composants et d'y ajouter, comme la mise enFont
etImageIcon
. Quelque chose comme ceciCe qui se passe, c'est que chaque cellule utilise ce moteur de rendu et des appels la
getListCellRendererComponent
méthode. Levalue
vous voyez transmis à la méthode est la valeur de chaque cellule, dans mon cas, l'un des noms de caractères dans la liste. J'ai ensuite carte correspondantImageIcon
et définir laIcon
sur leJLabel
convertisseur composant.Note De Côté
AndrewThompson est correct juste vérifier le tutoriel d'abord. Vous pourriez avoir facilement trouvé un exemple de mise en œuvre, puis il a essayé. Swing didacticiels peuvent être trouvés ici. Regardez sous le à l'Aide de Composants Swing pour comment utiliser les différents composants.
Swing les applications autorisées à être exécutées sur le Event Dispatch Thread (HAE). Vous pouvez le faire en emballage de votre
creatAndShowGui()
dans unSwinUtilities.invokeLater...
. Voir plus à Initiale FilsMise à JOUR avec internet images.
nouveau Code
Vous devez utiliser vos propres images, Mes images chemins ne fonctionnera pas pour vous.
Tiens, je vais le corriger, de sorte que vous pouvez utiliser les mêmes images à partir d'internet
je suis à l'aide de mon chemin de l'image E:\\SOFTWARE\\TrainPIS\\res\\drawable en plce d' /marioscaled/
Ce n'est pas un embeded ressources chemin, de sorte que vous ne pouvez pas utiliser
getClass().getResource()
OriginalL'auteur Paul Samsotha