tanakahdaのプログラマ手帳

プログラミングとかソフトウェア開発とかの備忘録

JListのデータセットに独自クラスを設定する@Java Swing

package com.tanakahda.apps.swing.jlist;

import java.awt.BorderLayout;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;

public class JListExample extends JPanel {

    private JList list;
    
    JListExample() {
        setLayout(new BorderLayout());
        
        User user1 = new User();
        user1.setName("tanaka");
        User user2 = new User();
        user2.setName("sato");
        
        list = new JList(new User[] {user1, user2});
        add(list, BorderLayout.CENTER);
    }
    
    public static void main(String[] args) {
        JListExample e = new JListExample();
        JFrame frame = new JFrame();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setContentPane(e);
        frame.pack();
        frame.setVisible(true);
        e.getElementValues();
    }
    
    private void getElementValues() {
        
        final int ELEMENT_SIZE = list.getModel().getSize();       
        User user = null;
        for (int i = 0; i < ELEMENT_SIZE; i++) {
            user = (User)list.getModel().getElementAt(i);
            System.out.println(user.getName());
        }
    }
    
    class User {
        private String name;

        public String getName() {
            return name;
        }

        public void setName(String name) {
            this.name = name;
        }
        
    }
}

結果

tanaka
sato