Вы можете добавить значения enum
в JList
, как и любой другой массив. Например:
public class Example implements Runnable {
private JPanel jPanel;
private JFrame jFrame;
private JList<Algorithm> diagnosisList;
private DefaultListModel<Algorithm> model;
public static void main(String[] args) {
EventQueue.invokeLater(new Example());
}
@Override
public void run() {
jFrame = new JFrame();
jPanel = new JPanel();
jPanel.setLayout(new FlowLayout());
jFrame.getContentPane().add(jPanel);
jFrame.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
jPanel.setPreferredSize(new Dimension(500, 300));
model = new DefaultListModel<>();
diagnosisList = new JList<Algorithm>(model);
for (Algorithm a : Algorithm.values())
model.addElement(a);
jPanel.add(diagnosisList);
jFrame.pack();
jFrame.setVisible(true);
}
public static enum Algorithm {
BFS, DFS, A_STAR
}
}
И если вам не нравится способ его рендеринга, вы всегда можете добавить свой собственный ListCellRenderer :
diagnosisList.setCellRenderer(new DefaultListCellRenderer() {
private static final long serialVersionUID = 1L;
@Override
public Component getListCellRendererComponent(JList<?> list, Object value, int index, boolean isSelected,
boolean cellHasFocus) {
JLabel renderer = (JLabel) super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
renderer.setText(renderer.getText().toLowerCase()); //something
return renderer;
}
});