有没有办法获取JList中的所有元素?

时间:2012-05-28 07:05:49

标签: java swing list jlist

我想知道是否有办法检索已添加到JList的所有元素的列表。例如,我希望JList从自定义单元格渲染器返回一个数组或字符串或JLabel列表。

5 个答案:

答案 0 :(得分:22)

您可以使用getModel方法获取ListModel。然后使用getElementAtgetSize方法构建数组或列表或任何您想要的内容。

答案 1 :(得分:3)

当然可以。你var countdownTimer:Timer = new Timer(1000); countdownTimer.addEventListener(TimerEvent.TIMER, updateTime); countdownTimer.start(); var startTime:int = getTimer(); function updateTime(e:TimerEvent):void { // milliseconds passed var timePassed:int = getTimer()-startTime; var seconds:Number = Math.floor(timePassed / 1000); var minutes:Number = Math.floor(seconds / 60); var hours:Number = Math.floor(minutes / 60); seconds %= 60; minutes %= 60; hours %= 24; var sec:String = seconds.toString(); var min:String = minutes.toString(); var hrs:String = hours.toString(); if (sec.length < 2) { sec = "0" + sec; } //A zero will automatic be put to the right side og 1, so "1" will be "10" if (min.length < 2) { min = "1" + min; } if (hrs.length < 2) { hrs = "0" + hrs; } var time:String = hrs + ":" + min + ":" + sec; time_txt.text = time; 有一个循环。

示例:

getElementAt()

答案 2 :(得分:1)

试试这个......

=IFERROR(INDEX($A$2:$A$11; MATCH(MIN(IF(COUNTIF(F$1:$F1; $A$2:$A$11)=0; 1; MAX((COUNTIF($A$2:$A$11; "<"&$A$2:$A$11)+1)*2))*(COUNTIF($A$2:$A$11; "<"&$A$2:$A$11)+1)); COUNTIF($A$2:$A$11; "<"&$A$2:$A$11)+1; 0)); "")

答案 3 :(得分:0)

我还没有看到任何人使用最简洁的方式来做到这一点。假设您使用的是Java 8 +:

IntStream.range(0,listModel.size()).mapToObj(listModel::get).collect(Collectors.toList());

与任何循环方法相比,我个人更喜欢它。

答案 4 :(得分:0)

我们还可以使用“消息”对话框从JList(名为)myL中获取元素,因此您可以使用以下方法对JButton对象执行操作。

String item = myL.getSelectedValue();
if( item == null ){
    JOptionPane.showMessageDialog(null,  "Not selected yet");
}else{
    JOptionPane.showMessageDialog(null, item);
}
相关问题