以下两段代码之间有什么区别 – 关于listener位置? <h:selectOneMenu …> <f:selectItems … /> <f:ajax listener="#{bean.listener}" /> </h:selectOneMenu> 和 <h:selectOneMenu … valueChangeListener="#{bean.listener}"> <f:selectItems … /> </h:selectOneMenu>
我是一名首发的Java开发人员,仅从互联网教程学习。 我正在学习全屏GUI应用程序。 我昨天被告知,我不应该在我的程序中使用AWT,因为它已经过时了。 我已经知道轻量级和重量级的组件,主要问题是鼠标和键盘的监听器。 为什么AWT过时了? 如何使一个没有AWT的程序(将监听器添加到JComponents等)(什么样的Swing的东西可以代替AWT)?
我有一个JTable使用AbstractTableModel ,我有一个JCheckBox在第一列选择行。 现在,我需要从被检查的表中选择所选的行。 现在,我顺序遍历从第一行到最后一行,并获取所有选定的行,如下所示, List<Integer> selectedRows = new ArrayList<Integer>(); for(int i = 0; i < table.getRowCount(); i++) { if((Boolean) table.getValuAt(i, 0)) { selectedRows.add(i); } } 这里的问题是,我需要遍历所有的行时,我需要得到选定的行。 现在我有10到20行。 但是在将来我会得到5000行左右。 我的问题是,如果有5000行,如果用户只选择5000nd(最后一条记录)行,那么我需要遍历所有5000行,以获得选定的行。 我认为这不是一个好方法。 我想要实现的一种方法是,添加一个监听器到JCheckBox列,这样当有变化(SELECTED/DESELECTED)我需要更新监听器类中所选行的数组。 在这个监听器类中,当用户选择一个JCheckBox我需要调用table.getSelectedRow(..) ,如果选择了JCheckBox则需要存储。 有没有更好的方法?