Wie auf Bild hinzufügen in der jlist
Hallo habe ich eine j-Liste und da habe ich ein Bild hinzufügen möchten, bevor Sie beliebigen text in das text wie kann ich dies tun, ich habe versucht, aber ich bin nicht in der Lage, mein Ziel erreichen ich will ein Bild hinzufügen vor der Liste "element"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();
}
}
Wie kann ich dies tun, helfen Sie mir?
Vielen Dank im Voraus
- Bitte a) finden Sie die "format" mein code " - Verknüpfung in Ihrem IDE und nutzen es. b) Eigentlich gehen die tutorials durch bevor erwartet uns mit dem Löffel füttern Informationen für Sie. Der erste Treffer für 'jlist-tutorial" zeigt genau, wie es geht.
- Diese Frage scheint off-topic, weil es um eine Frage leicht beantwortet werden, indem Sie durch die offizielle tutorial.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Du willst Aussehen wie eine benutzerdefinierte
ListCellRenderer
. Sie können sich Provding ein Custom Renderer fürJComboBox
. Es das gleiche für eineJList
. Das tutorial über ein bisschen kompliziert für einfache Szenarien. Sie erstreckt sichJLabel
undimplements ListCellRender
wo Sie implementieren müssen, um ein paar unnötige Dinge, wenn Sie wollen einfach nur grundlegende Funktionalität, aber mit am Bild.Können Sie einfach statt
extends
oder erstellen Sie eine anonymeDefaultListCellRender
und einfach erhalten Sie dieJLabel
render-Komponente und, um es hinzuzufügen, wie die EinstellungFont
undImageIcon
. So etwasWas passiert, ist, dass jede Zelle verwendet diese renderer und ruft die
getListCellRendererComponent
Methode. Dievalue
Sie sehen, die an die Methode übergeben wird der Wert in jeder Zelle, in meinem Fall, eine der Charakter-Namen in der Liste. Ich habe dann anzeigen, dass der entsprechendeImageIcon
und legen Sie dieIcon
auf dieJLabel
renderer-Komponente.Seite Hinweis
AndrewThompson ist richtig über die nur die überprüfung der ersten tutorial. Sie könnten leicht finden ein Beispiel für die Implementierung, dann probiert es aus. Swing-tutorials finden hier. Schauen Sie unter der Verwendung von Swing-Komponenten für die Verwendung von verschiedenen Komponenten.
Swing-apps ausgeführt werden soll auf dem Event Dispatch Thread (EDT). Sie können dies durch umwickeln Sie Ihre
creatAndShowGui()
imSwinUtilities.invokeLater...
. Sehen Sie mehr an Initial ThreadsUPDATE mit Bildern aus dem internet.
neuen Code
getClass().getResource()
label.setVerticalTextPosition(JLabel.TOP); label.setHorizontalTextPosition(JLabel.CENTER);
label.setBorder(new MatteBorder( 0, 0, 1, 0, Color.GRAY));