簡體   English   中英

從JList檢索特定項目

[英]Retrieving specific item from a JList

我有一個JXHyperlinks列表,我需要一個一個地檢索它們並添加到面板中

代碼是:

for(int i=1; i<=lcol-1;i++)
{
    a2=sheet.getCell(i,0);
    stringy=a2.getContents();
    testlink= new JXHyperlink(new Action(stringy));
    list.add(testlink);

}
for(int i=0;i<list.getModel().getSize();i++)
{
    panel2.add(list.getModel().getElementAt(i));

}

第一個循環是創建具有各自名稱的鏈接列表(取自excel文件)。 第二個循環獲取預制列表,並將每個對象添加到面板。 問題是id不會添加它們。

您將ListJList混淆了。 List#add從Collection繼承,並向其自身添加一個Object。 JList#add是從Container繼承的,並將組件添加到Container。 所以Jlist#add就像JPanel#add

問題是,您是將JXHyperlink組件直接添加到列表中,而不是列表模型中。

for(int i=1; i<=lcol-1;i++)
{
    a2=sheet.getCell(i,0);
    stringy=a2.getContents();
    testlink= new JXHyperlink(new Action(stringy));
    // I'm the JList, not it's model :P
    list.add(testlink);
}
// I bet nothing exists in the model
for(int i=0;i<list.getModel().getSize();i++)
{
    panel2.add(list.getModel().getElementAt(i));
}

這不是列表應如何工作的方式。

相反,將鏈接String添加到ListModel並使用JXHyperlink作為ListCellRenderer的基礎,然后為列表中的每個StringJXHyperlink實例添加到面板中

有關更多詳細信息,請參見如何使用列表 ,特別是創建模型編寫自定義單元格渲染器。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM