Gibt es eine Möglichkeit, Ergebnisse in JList paginieren, ich habe 100 Ergebnisse gezeigt, ich möchte nur 20 jedes Mal zeigen .. Ich dachte an die Verwendung von Tabellen, um mein Ergebnis anzuzeigen, aber ich zeige Tweets, so es ist ein JPanel, das Bild und Text hat ... etc, so dass es eine JList istKann ich eine JList paginieren
3
A
Antwort
2
Werfen Sie einen Blick auf diese link, die eine paginierte jlist anzeigt. Hier
ist die Klasse:
/**
* A paginated list. Only displays a specific number of rows
* and allows you to page backwards and forwards through the list
* with the help of a toolbar.
*/
public class PaginatedList extends JPanel {
private final int pageSize;
private final JList list;
private final ListModel model;
private final int lastPageNum;
private int currPageNum;
private JLabel countLabel ;
private JButton first, prev, next, last;
/**
* @param list the jlist
* @param pageSize the number of rows visible in the jlist
*/
public PaginatedList(JList list, int pageSize) {
super();
this.pageSize = pageSize;
this.list = list;
this.model = list.getModel();
//work out how many pages there are
this.lastPageNum = model.getSize()/pageSize + (model.getSize() % pageSize != 0 ? 1 : 0);
this.currPageNum = 1;
setLayout(new BorderLayout());
countLabel = new JLabel() ;
add(countLabel, BorderLayout.NORTH);
add(list, BorderLayout.CENTER);
add(createControls(), BorderLayout.SOUTH);
updatePage();
}
private JPanel createControls() {
first = new JButton(new AbstractAction("<<") {
public void actionPerformed(ActionEvent e) {
currPageNum = 1;
updatePage();
}
});
prev = new JButton(new AbstractAction("<") {
public void actionPerformed(ActionEvent e) {
if (--currPageNum <= 0)
currPageNum = 1;
updatePage();
}
});
next = new JButton(new AbstractAction(">") {
public void actionPerformed(ActionEvent e) {
if (++currPageNum > lastPageNum)
currPageNum = lastPageNum;
updatePage();
}
});
last = new JButton(new AbstractAction(">>") {
public void actionPerformed(ActionEvent e) {
currPageNum = lastPageNum;
updatePage();
}
});
JPanel bar = new JPanel(new GridLayout(1, 4));
bar.add(first);
bar.add(prev);
bar.add(next);
bar.add(last);
return bar;
}
private void updatePage() {
//replace the list's model with a new model containing
//only the entries in the current page.
final DefaultListModel page = new DefaultListModel();
final int start = (currPageNum - 1) * pageSize;
int end = start + pageSize;
if (end >= model.getSize()) {
end = model.getSize();
}
for (int i = start; i < end; i++) {
page.addElement(model.getElementAt(i));
}
list.setModel(page);
//update the label
countLabel.setText("Page " + currPageNum + "/" + lastPageNum);
// update buttons
final boolean canGoBack = currPageNum != 1;
final boolean canGoFwd = currPageNum != lastPageNum;
first.setEnabled(canGoBack);
prev.setEnabled(canGoBack);
next.setEnabled(canGoFwd);
last.setEnabled(canGoFwd);
}
}
Beispiel Nutzung:
public static void main(String args[]) throws Exception {
// create 100 elements of dummy data.
Integer[] data = new Integer[100];
for (int i = 0; i < data.length; i++) {
data[i] = i + 1;
}
// create a paginated list with page size 20
PaginatedList list = new PaginatedList(new JList(data), 20);
// add it to a frame
JFrame f = new JFrame();
f.add(list);
f.setSize(100, 100);
f.pack();
f.setVisible(true);
}
+0
vielen Dank .. das ist einfach toll .. werde es jetzt versuchen – AhmadAssaf
Verwandte Themen
- 1. Wie lösche ich eine JList in Java?
- 2. DefaultListModel in JList in JScrollPane, kann die JList nicht sehen
- 3. Eine JPA 2-Kriterienabfrage paginieren
- 4. Wie kann ich einen Text aus meiner jlist entfernen?
- 5. Wie setze ich mein Objekt auf eine JList?
- 6. Ich bekomme wp_list_categories() custom walker zu paginieren
- 7. Eine Linq-Abfrage paginieren, die OrderBy verwendet
- 8. Rails + Paginieren wird eine Liste Moderator
- 9. JList Berechnung
- 10. Wie bekomme ich eine Liste von Objekten aus einer jlist
- 11. Wie füge ich eine dritte JList in diesem Beispiel hinzu
- 12. leer Paginieren Objekt sqlalchemy
- 13. Paginieren API Laravel
- 14. Wie Paginieren ich JSON-Daten in PHP
- 15. Paginieren in elasticsearch
- 16. JSF, Richfaces, Paginieren
- 17. Laravel sortBy Paginieren
- 18. Paginieren Beiträge nach Tags
- 19. Paginieren und Sortierfehler (s)?
- 20. Paginieren von BigQuery
- 21. JList mit benutzerdefiniertem Renderer
- 22. Refreshing JList funktioniert nicht?
- 23. JScrollPane und JList Autoscroll
- 24. Scrollbar zu JList hinzufügen
- 25. Paginieren durch Instagram Antworten
- 26. JList setListData Threading Probleme
- 27. Aktion Listener JList und erstellen Jtable basierend auf Jlist Auswahl
- 28. JList Auswahl duplizieren
- 29. Wie verschiebe ich ausgewählte Elemente von einer Jlist zu einer anderen Jlist in einer anderen Klasse
- 30. Einstellwert in JList
Dies wird helfen, http://stackoverflow.com/questions/1481138/how-to-make-pagination-in- Swing-Java –