On 12/17/2011 8:18 AM, John B. Matthews wrote:
In article<jcem2m$gbm$1@dont-email.me>,
Knute Johnson<nospam@knutejohnson.com> wrote:
Using Java 7, given the class file:
import javax.swing.*;
public class KList extends JList {
ListModel model = new DefaultListModel();
public KList() {
setModel(model);
}
}
I defined a generic subclass of JList:
class KList<E> extends JList<E> {
public KList(ListModel<E> model) {
this.setModel(model);
}
}
Then I created a ListModel<String>:
DefaultListModel<String> dlm = new DefaultListModel<>();
dlm.add(...);
Then I used it to create a new KList:
KList<String> list = new KList<>(dlm);
Here's my sscce:
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.GregorianCalendar;
import javax.swing.*;
/** @see http://stackoverflow.com/a/5372169/230513 */
public class JakesList {
private static final DateFormat df =
new SimpleDateFormat("dd-MMM-yyyy");
private static class KList<E> extends JList<E> {
public KList(ListModel<E> model) {
this.setModel(model);
}
}
private static void createAndShowGUI() {
DefaultListModel<String> dlm = new DefaultListModel<>();
for (int i = 0; i< 10; i++) {
GregorianCalendar knownDate = new GregorianCalendar();
knownDate.add(Calendar.DAY_OF_MONTH, 3 * i);
dlm.add(i, df.format(knownDate.getTime()));
}
KList<String> list = new KList<>(dlm);
JOptionPane.showMessageDialog(null, list);
}
public static void main(String args[]) throws Exception {
SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
createAndShowGUI();
}
});
}
}
Thanks very much John, that got me going in the right direction.