Ich mache einen Twitter-Client (Desktop-Anwendung) in Java, ich benutze auch twitter4j API. Ich habe geschafft, die Suche nach Tweets zu machen, und ich bekomme Ergebnisse zurück und ich zeige sie in einer Jlist. was ich will ist, dass ich Tweets schön in der Liste anzeigen möchte, nicht nur als Text .. Zeige das Bild des Benutzers, der Tweet, getwittert von ... usw. all diese Informationen .. zusätzlich zusätzliche Daten anhängen Sterne-Bewertung .. Wie kann ich das zu einer JList hinzufügen? Kann die Jlist verschiedene Objekte enthalten .. Jpanels zum Beispiel ..JLists mit einer Reihe von Objekten
Antwort
erstellen Ich schlage vor, Sie setzen eine Reihe von JPanels in einem JScrollPane .
Ein Renderer einer JList muss eine JComponent sein, also können Sie jedes Swing-Objekt verwenden, einschließlich JPanels.
Sie können auch HTML in einem JLabel verwenden, wenn dies einfacher ist als die Verwendung eines JPanels.
Um einen benutzerdefinierten Renderer verwenden, können Sie etwas tun ..
myList.setCellRenderer(new CustomRenderer());
und dann ein Renderer wie diese Statt
public class CustomRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean hasFocus) {
JPanel panel = new JPanel();
// set up the panel for your exact display requirements.
return(panel);
}
}
danke ich habe es geschafft, das zu tun .. aber jetzt, wenn ich das Jpanel hinzufügen, wenn es Tasten oder andere Komponenten hat sie nicht zugegriffen werden .. sie werden nur angezeigt – AhmadAssaf
der Elemente sind jetzt in der Liste nicht zugänglich, ich kann jedes auswählen .. kann ich einige Informationen darüber haben bitte – AhmadAssaf
Vorschlagen mit JTable, die mehrere Spalten anstelle einer JList hat.
Verwenden Sie auch GlazedList s, wodurch es sehr einfach ist, Listen mit Feldern in einer JTable anzuzeigen, sodass sie automatisch aktualisiert werden, wenn sich die zugrunde liegende Liste ändert.
Hier ist ein Beispiel für einige Code, den ich vor kurzem, die etwas Ähnliches zeigt schrieb:
private void bindEmailTargetTable(NotificationModel newModel) {
JTable table = getUI(UIKey.EMAIL_TARGET_TABLE);
EventList<EmailTarget> displayList = newModel.getEmailTargets();
TableFormat<EmailTarget> tf = new TableFormat<EmailTarget>()
{
@Override public int getColumnCount() {
return 4;
}
private final String[] columns = { "address", "description", "msg left", "msg limit" };
@Override public String getColumnName(int col) {
return this.columns[col];
}
@Override public Object getColumnValue(EmailTarget item, int col) {
switch (col)
{
case 0:
return item.getAddress();
case 1:
return item.getDescription();
case 2:
return item.getRemainingMessages();
case 3:
return item.getMessageLimit();
default:
return "";
}
}
};
EventTableModel<EmailTarget> etm = new EventTableModel<EmailTarget>(displayList, tf);
table.setModel(etm);
}
, dass 33 Zeilen Code ist eine JTable
zu nehmen und machen es aktualisieren sich automatisch 4 Felder jedes EmailTarget
in ein EventList<EmailTarget>
anzuzeigen .
Für Inhalte außerhalb des Textfelds benötigen Sie nur einen benutzerdefinierten TableCellRenderer.
AS Jason vorgeschlagen, es ist besser, für jtable statt JLIst gehen. Tatsächlich können Sie beliebige freie Java-basierte Tabellenklassen verwenden, die erweiterte Funktionalität gegenüber JTables haben. JIDE ist eine solche Bibliothek, aber ihre kommerzielle. Sie können suchen und viel finden.
- 1. Zurückgeben einer Reihe von Objekten aus einer Funktion
- 2. extrahieren Schlüssel sowie Wert aus einer Reihe von Objekten
- 3. So entfernen Sie eine Reihe von Objekten in einer Liste
- 4. Looping durch eine Reihe von Objekten
- 5. müssen haben eine Reihe von Objekten in allen Objekten eines Arrays von Objekten
- 6. Eine Reihe von Daten mit einer Reihe von Tagen filtern
- 7. Probleme eiglading eine Reihe von Objekten mit SQLAlchemy
- 8. android: Weisen Reihe von Ziffern zu Arraylist mit Objekten
- 9. Verwalten Sie eine Reihe von Objekten effizient mit 'CRUD-Observables'
- 10. Reihe Binden einer Reihe von Datensätzen?
- 11. Objekte aus verschiedenen JLists zu einer JList hinzufügen
- 12. eine Reihe von Objective-c Sortieren von Objekten
- 13. Serialisieren einer Liste von Objekten mit einer Liste von Objekten in Android
- 14. Können Sie eine Reihe von verschiedenen Arten von Objekten haben?
- 15. DQL eine Reihe von Einheiten anstelle von Objekten
- 16. eine Reihe von Daten in einem Array von Objekten
- 17. Casting Array von Objekten Reihe von subclassed Objekte in Swift
- 18. butter Mit einer Reihe von Ansichten
- 19. Update-Datenbank mit einer Reihe von Array
- 20. forEach funktioniert nicht, wenn für Schleife funktioniert mit einer Reihe von Objekten
- 21. Suche nach einer Reihe von Tools/Objekten zum Starten einer Website in PHP
- 22. Drucken einer Reihe von JPanels
- 23. Parsing eine Reihe von JSON-Objekten in Logstash
- 24. Generieren einer Reihe von Daten
- 25. Join Array von Objekten mit einer Eigenschaft
- 26. Rails auto_complete mit einer Teilmenge von Objekten
- 27. Mehrere Comboboxen mit einer Liste von Objekten
- 28. Rückkehr nur bestimmte Eigenschaften von einer Reihe von Objekten in Javascript
- 29. Rubin: Sortieren Array von Objekten nach einer Reihe von Namen Eigenschaften
- 30. Bedeutung von „Gesamtgröße“ einer Reihe
Hallo, ich habe versucht, das zu tun .. es fügt ein jpanel das, das ich entworfen habe .. aber wenn ich es versuchte fügen Sie mehr hinzu es wird nicht dauern .. können Sie warum wissen? ich mache .. jScrollPane2.getViewport(). add (new JPanel()); – AhmadAssaf
Fügen Sie dem JScrollPane einen Bereich hinzu. Fügen Sie dann alle Ihre Panels zu diesem einen Panel hinzu. – jzd
danke .. es funktioniert sehr gut .. danke – AhmadAssaf