2017-01-21 82 views
-2

我有一個JList,我想獲得元素的信息。 這是我的toString輸出,我想獲得Kundennummer的元素。我無法擺脫JList的元素?

Privatkunde [Vorname = Max | Nachname = Mustermann | Telefonnummer = 017632447658 |電子郵件= [email protected] | Geburtsdatum = 08.03.1993 | Kundennummer = KU543-10] 住址[Adresszeile 1 =Maxstraße,Adresszeile 2 = 22,PLZ = 12139,的Ort =柏林]

這是我的代碼,我要如何繼續,但它確實不行。

jL.addMouseListener(new MouseAdapter() { 
    public void mouseClicked(MouseEvent evt){ 
     if(evt.getClickCount()==2 && evt.getButton() == MouseEvent.BUTTON1){ 
      int index = jL.locationToIndex(evt.getPoint()); 

      String ausgewaehlteKdnr = model.getElementAt(index).substring(30,2); 
      System.out.println(ausgewaehlteKdnr); 
      jD.dispose(); 
     } 
    } 
}); 

它給了我錯誤。我認爲它只是從Privatkunde算起並完成,但那不是我想要的。我很高興,如果有人能說我怎麼修復它還是一個更好的方式來獲取信息

java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:-28

+0

請參閱'substring(30,2)'。 –

+0

是的,我想從字符串中取出一個特殊的字符串,我只是知道這個方法 – MaskulinerJunge

+0

爲什麼你使用'toString'方法,該模型明顯帶有某種類型的POJO,爲什麼不直接使用該對象呢? 'Privatkunde obj =(Privatkunde)model.getElementAt(index)'??? – MadProgrammer

回答

-1

子(30歲, 2)是錯誤的。第一個參數是beginIndex,而第二個參數是endIndex。這就是你看到的例外說'-28'的原因。嘗試顛倒兩個參數:substring(2,30)。

+0

是的好的,這是我所瞭解的例外2.但是,如果我只是想要這行Line Kundennummer = KU543-10,這是否意味着這個不能從字符串方法分裂。 – MaskulinerJunge

+1

@MaskulinerJunge:爲了更好的幫助,創建併發佈一個有效的[mcve]。 –

+0

@MaskulinerJunge:另外:1)你不'toString()'獲得的項目,2)使用toString和subString看起來像一個危險的kludge。更好的辦法是獲取實際的對象並調用其方法來提取所需的信息。 –