상세 컨텐츠

본문 제목

JAVA - jlist에 이미지 넣기

JAVA/JAVA UI

by AlrepondTech 2011. 5. 4. 17:49

본문

반응형

 

 

 

=================================

=================================

=================================

 

 

 

 

 

출처: 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);
 }

}

 

 

 

=================================

=================================

=================================

 

 

 

 

반응형


관련글 더보기

댓글 영역