Java : GUI, 리스트뷰(List View), 클릭한 이미지만 보이게 하기
결과화면
클릭하면 한개 그림만 보입니다.
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.GridLayout;
import java.awt.Image;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.event.ListSelectionEvent;
import javax.swing.event.ListSelectionListener;
public class ListTest extends JFrame{
//리스트에 보여질 항목들
String[] datas = new String[]
{"Char1","Char2","Char3","Char4","Char5","Char6"};
JList<String> list = new JList<String>(); //명시적 초기화
public ListTest() {
list.setListData(datas); //리스트 객체의 설정과 항목들 설정
list.setSelectionBackground(Color.YELLOW);
list.setSelectionForeground(Color.RED);
add(list,BorderLayout.WEST);
//가운데 이미지 배치 영역
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2, 5, 5)); //row,col,hgap,vgap
JLabel[] imgLabels = new JLabel[6]; //배열 객체 생성
for(int i = 0; i < imgLabels.length; i++) {
//이미지 아이콘 객체 생성
ImageIcon icon = new ImageIcon("images/ms1" + (i + 2) + ".png");
icon = new ImageIcon( icon.getImage()
.getScaledInstance(64, 64, Image.SCALE_SMOOTH));//Resizing
imgLabels[i] = new JLabel(icon); // 만들때 icon 넣을 수 있음
panel.add(imgLabels[i]); //만들며 붙이기
}
add(panel, BorderLayout.CENTER);
//리스트의 항목을 선택하는 것을 듣는 리스터 객체 생성 및 추가
list.addListSelectionListener(new ListSelectionListener() {
@Override //리스트의 항목 선택시 자동 실행되는 메소드 : 콜백메소드
public void valueChanged(ListSelectionEvent e) {
//리스트에게 선택된 항목의 인덱스번호 얻어오기
int index = list.getSelectedIndex();
for(JLabel t : imgLabels) t.setVisible(false);
imgLabels[index].setVisible(true);
}
});
JButton btn = new JButton("START");
add(btn,BorderLayout.NORTH);
btn.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
for(JLabel t : imgLabels) t.setVisible(false);
}
});
setTitle("List Test");
setLocation(600, 100);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setSize(300, 300);
setVisible(true);
}
public static void main(String[] args) {
new ListTest();
}
}
'Java Programming' 카테고리의 다른 글
Java : GUI 회원 명단 추가삭제 프로그램(Table 등) (0) | 2018.11.21 |
---|---|
Java : GUI, 메뉴 만들기 (0) | 2018.11.21 |
Java : GUI, 체크박스(Check Box), Radio 버튼, ComboBox 만들기 (0) | 2018.11.20 |
Java : Swing 버튼과 이미지 띄우기 (0) | 2018.11.19 |
Java : AWT 창 띄우고 버튼 만들기 (0) | 2018.11.19 |