=================================
=================================
=================================
출처: http://naver.kinjsp.pe.kr/140029371962
import java.awt.*;
import java.awt.Component;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.border.*;
class JListt extends JFrame{
JList list;
class ButtonRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(
JList lst, Object val, int idx, boolean isSelected, boolean hasFocus) {
JLabel comp = null;
if ( val instanceof ButtonData ) {
/* 보여주어야 하는 데이터가 ButtonData인 경우 */
ButtonData data = (ButtonData) val;
String txt;
/* 아이템이 선택된 상태이면
문자열에 "<- Selected"를 추가한다. " */
if (isSelected) {
txt = data.szName + " <- Selected";
} else {
txt = data.szName;
}
/* 부모 클래스의 메소드 호출 */
comp = (JLabel)super.getListCellRendererComponent(
lst, txt, idx, isSelected, hasFocus
);
/* 아이콘을 정한다. */
comp.setIcon(data.xIcon);
/* 경계선을 바꾼다. */
comp.setBorder(new BevelBorder(BevelBorder.RAISED));
} else if ( val instanceof String ) {
/* 보여주어야 하는 데이터가 일반 문자열인 경우 */
comp = (JLabel)super.getListCellRendererComponent(
lst, val, idx, isSelected, hasFocus
);
}
return comp;
}
}
public JListt(){
list=new JList();
list.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
DefaultListModel lm = new DefaultListModel(); //리스트의 내용을 담을 모델을 초기화한다.
lm.addElement("사과");
lm.addElement("배");
lm.addElement( new ButtonData("New", new ImageIcon("C:/Documents and Settings/zzaz/My Documents/Icon/jisoo1021_1_m.gif")) );
list.setModel(lm);
list.setCellRenderer(new ButtonRenderer());
getContentPane().add(new JScrollPane(list));
}
class ButtonData {
String szName; // 이름
Icon xIcon; // 이미지
public ButtonData(String name, Icon icon) {
szName = name; xIcon = icon;
}
public String toString(){ return szName; }
}
public static void main(String[] args) {
JListt j=new JListt();
j.setBounds(400,300,300,180);
j.setVisible(true);
}
}
=================================
=================================
=================================
'JAVA > JAVA UI' 카테고리의 다른 글
자바 - SWT, Swing or AWT: 나에게 맞는 것 찾기 (0) | 2011.08.12 |
---|---|
자바 GUI 툴/플러그인 개발 관련 (0) | 2011.08.12 |
이클립스용 GUI 빌더, Jigloo - 참고자료 등 (0) | 2011.04.28 |
이클립스용 GUI 빌더, Jigloo - 애플리케이션에서 사용할 데이터 모델 만들기 (0) | 2011.04.28 |
이클립스용 GUI 빌더, Jigloo - GUI 설정하기 (0) | 2011.04.28 |