JWorld@TW the best professional Java site in Taiwan
      註冊 | 登入 | 全文檢索 | 排行榜  

» JWorld@TW » Java SE 討論區 » Swing/AWT/SWT/JFace  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友   
reply to postflat modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 Re:JList內是否有辦法放多個物件,如JLabel+JButton [Re:as0955344054]
bluewingsky





發文: 409
積分: 0
於 2015-06-15 15:13 user profilesend a private message to userreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
你問了之後我才發現,我忘了說一個東西了。
那就是JList的setCellRenderer方法,要設定這個JPanel才會顯示出來,
不然只會顯示文字。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
import java.util.*;
import java.io.*;
import javax.swing.*;
import java.awt.*;
 
public class test2 extends JFrame{
 
    public test2(){
        setBounds(200,200,500,500);
        setLayout(null);
 
        Vector<JPanel> v=new Vector<JPanel>();
 
        //JPanel的設置,並加入到Vector中
        for(int i=0;i<3;i++)
        {
            JPanel pnl=new JPanel();
                JButton btn=new JButton("按鈕");
                JLabel lab=new JLabel("文字");
                pnl.setLayout(null);
                btn.setBounds(5,5,60,30);
                lab.setBounds(70,5,50,30);
            pnl.add(btn);
            pnl.add(lab);
 
            v.add(pnl);
        }
 
        //用v建立JList
        JList list=new JList(v);
            list.setBounds(10,10,300,400);
            list.setLayout(null);
            list.setFixedCellHeight(50);//設定每個JList的高度
 
            //這個決定JPanel的顯示,參數是一個ListCellRenderer介面的實作
            list.setCellRenderer(new ImageListCellRenderer());
 
        add(list);
 
        setVisible(true);
    }
 
    public static void main(String[] args){
        new test2();
 
    }
 
    //這個就是實作了 ListCellRenderer的class
    private class ImageListCellRenderer implements ListCellRenderer
    {
        public Component getListCellRendererComponent(JList jlist, Object value,
        int cellIndex, boolean isSelected, boolean cellHasFocus) {
 
            if (value instanceof JPanel)
            {
                Component component = (Component) value;
                component.setBackground (isSelected ? Color.cyan : Color.white);//設定JList被選取時的底色改變
                return component;
            }else
                return new JLabel("???");
 
        }
 
    }
}
 


bluewingsky edited on 2015-06-15 15:18
reply to postreply to post
話題樹型展開
人氣 標題 作者 字數 發文時間
1973 JList內是否有辦法放多個物件,如JLabel+JButton meanmean 542 2015-06-13 06:41
1871 Re:JList內是否有辦法放多個物件,如JLabel+JButton bluewingsky 371 2015-06-13 07:11
1873 Re:JList內是否有辦法放多個物件,如JLabel+JButton meanmean 12 2015-06-14 05:28
1795 Re:JList內是否有辦法放多個物件,如JLabel+JButton as0955344054 131 2015-06-15 03:45
1793 Re:JList內是否有辦法放多個物件,如JLabel+JButton bluewingsky 1836 2015-06-15 15:13
1835 Re:JList內是否有辦法放多個物件,如JLabel+JButton meanmean 72 2015-06-15 20:02
1757 Re:JList內是否有辦法放多個物件,如JLabel+JButton bluewingsky 3010 2015-06-16 09:49
1750 Re:JList內是否有辦法放多個物件,如JLabel+JButton as0955344054 167 2015-06-16 11:49
1794 Re:JList內是否有辦法放多個物件,如JLabel+JButton meanmean 85 2015-06-16 13:03
1766 Re:JList內是否有辦法放多個物件,如JLabel+JButton bluewingsky 162 2015-06-16 16:01
1833 Re:JList內是否有辦法放多個物件,如JLabel+JButton as0955344054 56 2015-06-16 16:39
» JWorld@TW »  Java SE 討論區 » Swing/AWT/SWT/JFace

reply to postflat modego to previous topicgo to next topic
  已讀文章
  新的文章
  被刪除的文章
Jump to the top of page

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8