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

» JWorld@TW » Java 新手區  

按列印兼容模式列印這個話題 列印話題    把這個話題寄給朋友 寄給朋友    訂閱主題
reply to topicthreaded modego to previous topicgo to next topic
本主題所含的標籤
無標籤
作者 JComboBox 的 getSelectedIndex() 函式
nokia99





發文: 74
積分: 0
於 2004-12-06 10:40 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
JComboBox 的 getSelectedIndex()
我看了說明
它是回傳 選項中選到物件名字 在全部物件裡面的第一個符合的

假如
JComboBox的選項中有

AA
CC
AA
BB

我選到

AA
CC
AA<---
BB

經過 getSelectedIndex() 出來
他所回傳的是
AA<--- 這項
CC
AA
BB

那怎麼處理會比較好 讓我取到我想要的選項


browser edited on 2004-12-06 10:47
reply to postreply to post
作者 Re:JComboBox 的 getSelectedIndex() 函式 [Re:nokia99]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-12-06 11:02 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
為什麼會有重複的選項呢?user 要怎麼分辨二者?
基本上你也沒辦法選擇重複的 item(你再一次 popup JComboBox 的選單)。


Duncan edited on 2004-12-06 11:06
reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:JComboBox 的 getSelectedIndex() 函式 [Re:nokia99]
nokia99





發文: 74
積分: 0
於 2004-12-06 11:38 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
這個 你問我也沒輒 對方學校的資料就是怪XD

reply to postreply to post
作者 Re:JComboBox 的 getSelectedIndex() 函式 [Re:nokia99]
Duncan

還隱隱作痛

版主

發文: 7816
積分: 39
於 2004-12-06 12:32 user profilesend a private message to usersend email to Duncanreply to postreply to postsearch all posts byselect and copy to clipboard. 
ie only, sorry for netscape users:-)add this post to my favorite list
nokia99 wrote:
這個 你問我也沒輒 對方學校的資料就是怪XD


假設 scenario 是這樣:JComboBox 是學校或某班級學生的名字,可能會有同名的學生,你可以設計一個 Student class(以學號來分辨 Student object,ex: equals method),讓 Student - toString method 傳回學生的名字,然後把 Student objects 放到 JConboBox 裡,雖然在 popup list 裡看到同樣的名字,但實際上兩者是可以區分的。

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
package com.jsptw.examples;
 
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
 
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
 
public class JComboBoxDemo extends JFrame implements ItemListener {
 
    public static void main(String[] args) {
        JFrame frm = new JComboBoxDemo("JComboBox dmeo.");
        frm.setDefaultCloseOperation(EXIT_ON_CLOSE);
        frm.setSize(400, 300);
        frm.show();
    }
 
    public JComboBoxDemo(String title) {
        super(title);
 
        initComponents();
    }
 
    private void initComponents() {
        Container con = getContentPane();
        
        info = new JLabel();
        con.add(info, BorderLayout.SOUTH);
        
        String[] names = new String[] {
                "Yoshi",
                "moli",
                "Tempo",
                "Forth",
                "jini",
                "worookie",
                "Yoshi" // duplicate
        };
        Object[] students = new Student[names.length]; 
        for (int i = 0; i < names.length; i++) {
            students[i] = new Student(i, names[i]);
        }
        box = new JComboBox(students);
        con.add(box, BorderLayout.NORTH);
        
        box.addItemListener(this);
    }
    
    private JLabel info;
    private JComboBox box;
 
    public void itemStateChanged(ItemEvent e) {
        if (e.getStateChange() == ItemEvent.SELECTED)
            info.setText("Selected index: " + box.getSelectedIndex());
    }
}
 
class Student {
    private int id;
    private String name;
 
    public Student(int id, String name) {
        this.id = id;
        this.name = name;
    }
    
    public String toString() {
        return name;
    }
    
    public boolean equals(Object obj) {
        if (obj instanceof Student)
            return id == ((Student)obj).id;
        
        return false;
    }
}


JComboBoxDemo.jar (2.13k)


Duncan edited on 2004-12-06 12:53
reply to postreply to post

給我
辣味豆腐 其餘免談
作者 Re:JComboBox 的 getSelectedIndex() 函式 [Re:nokia99]
nokia99





發文: 74
積分: 0
於 2004-12-06 17:25 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
Duncan 大
你真的懂很多耶

看完你的程式 我也寫出來我想要的東西了

原來還有這種寫法 改寫物件的equals
當它內部去比對的時候就會依我們的要求去比了
這點真是厲害

多謝你的回答 超感恩的


reply to postreply to post
作者 Re:JComboBox 的 getSelectedIndex() 函式 [Re:nokia99]
CsKy





發文: 23
積分: 0
於 2005-04-22 20:45 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
我也剛遇到同樣的問題, 搞了很久也找不到解決方法.
看完這遍文章後, 問題即時解決了!

Duncan 大大的經驗真豐富


reply to postreply to post
» JWorld@TW »  Java 新手區

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

JWorld@TW 本站商標資訊

Powered by Powerful JuteForum® Version Jute 1.5.8