본문 바로가기
JAVA/예제

[JAVA] JList 리스트 선택시 이미지 출력

by JJH0100 2022. 10. 25.
728x90
반응형
package Ex01;

import java.awt.*;
import javax.swing.*;
import javax.swing.event.*;//스윙 이벤트 포함

class JList1 extends JFrame implements ListSelectionListener{
	private String[] fruitlist = {"persimmom", "banana", "pear", "apple", "cherry", "grape"};
	private JList jlist = new JList(fruitlist);
	private ImageIcon[] fruiticons = {
			new ImageIcon("img/persimmom.jpg"), 
			new ImageIcon("img/banana.jpg"), 
			new ImageIcon("img/pear.jpg"), 
			new ImageIcon("img/apple.jpg"), 
			new ImageIcon("img/cherry.jpg"), 
			new ImageIcon("img/grape.jpg")
	};
	private JLabel[] jlicon = new JLabel[6];
	private JLabel jlname = new JLabel();
	
	public JList1() {
		Container ct = getContentPane();
		JPanel p1 = new JPanel();
		p1.setLayout(new GridLayout(3,2,5,5));
		for(int i=0; i<6; i++) {
			p1.add(jlicon[i] = new JLabel());
		}
		JPanel p2 = new JPanel();
		p2.add(jlname);
		ct.add(jlist, BorderLayout.WEST);
		ct.add(p1, BorderLayout.CENTER);
		ct.add(p2, BorderLayout.EAST);
		
		jlist.addListSelectionListener(this);
		setTitle("JList Test1");
		setSize(700,300);
		setVisible(true);
	}

	@Override
	public void valueChanged(ListSelectionEvent e) {
		for(int i=1; i<6; i++) {
			jlicon[i].setIcon(null);
		}
		int[] indices = jlist.getSelectedIndices();
		String s = "당신이 선택한 항목은 : ";
		for(int j=0; j<indices.length; j++) {
			jlicon[j].setIcon(fruiticons[indices[j]]);
			s=s+fruitlist[indices[j]]+" ";
		}
		jlname.setText(s);
	}
}

public class JListTest1 {
	public static void main(String[] args) {
		new JList1();
	}
}

선택 전
선택 후
다중 선택 시

728x90
반응형

댓글