2017-01-21 64 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。更好的办法是获取实际的对象并调用其方法来提取所需的信息。 –