当前位置: 首页 > 知识库问答 >
问题:

填充和排序列表

劳亦
2023-03-14

我正在制作一组自定义swing组件,这些组件实现各种属性,如required标志或tabIndex。我在尝试填充各种自定义组件的列表,然后根据每个组件的选项卡索引对列表进行排序时遇到问题。

我试图做到这一点的方法是让我的组件实现一个名为index的接口,该接口实现一个方法getIndex()。然后使用我的索引比较程序进行排序。

我的班级:

索引:

public interface Indexed {
      public int getIndex();
}

索引比较程序:

public class IndexedComparator implements Comparator<Indexed> {

    @Override
    public int compare(Indexed o1, Indexed o2) {
        return o1.getIndex() - o2.getIndex();
    }

}

WWTextField:

public class WWTextField extends JTextField implements Indexed, FocusListener {
    private boolean required;
    private int tabIndex;

   ...

    @Override
    public int getIndex() {
        return tabIndex;
    }
}

NewJFrame:

public class NewJFrame extends JFrame {
    List<? extends Component & Indexed> list = new ArrayList<>();
    IndexedFocusTraversalPolicy policy = new IndexedFocusTraversalPolicy();

    public NewJFrame() {
        initComponents();

        list.add(wWTextField1);
        list.add(wWTextField2);
        list.add(wWTextField3);
        list.add(wWTextField4);
        list.add(wWTextField5);
        list.add(wWFormatedTextField1);
        list.add(wWFormatedTextField2);

        Collections.sort(list);
        policy.populateComponents(list);
        this.setFocusTraversalPolicy(policy);
    }
}

编辑:我忘了发布一个实际的问题。为什么我的实现

List<? extends Component & Indexed> list = new ArrayList<>();

工作当我尝试编译时,会出现以下错误:

NewJFrame.java:22: error: > expected  
NewJFrame.java:22: error: ';' expected  
NewJFrame.java:22: error: illegal start of type  

共有2个答案

蓟俊杰
2023-03-14

仅在声明类型参数的情况下才允许使用约束(即,C类

因此,您只需给出交叉点类型的名称。这个非功能是困扰我Java的众多问题之一。

我想NewJFrameT扩展组件中可能是泛型的

薛烨霖
2023-03-14

Comparator实例不是“自动”的,您必须指定它们。我想你的意思是:

Collections.sort(list, new IndexedComparator());
 类似资料:
  • 好吧,我有以下几个Shemas: 我想要的是让用户跟踪品牌,按品牌名排序,所以对于这样做,我对FollowAction进行查询,找到用户所做的所有FollowAction,然后填充brand字段。 所以问题是我不能为品牌名的查询排序,我知道的唯一方法是返回所有文档并从nodejs应用程序中对它们进行排序。有人知道我怎么能那样做吗??或者我是否应该改变shema结构?? 我所做的查询是:

  • 问题内容: 我正在尝试编写一个猫鼬查询,以检索一组资产以及这些资产的最新交易。交易与资产在单独的集合中。 为此,我首先在资产模型中创建了一个虚拟数组,以将资产链接到事务。 然后,我在node.js表达控制器中使用.populate进行查询(请注意,硬编码的“限制:1”有时会变成N): 在我的测试系统中有3个资产,每个资产都有一堆交易,它会为前两个资产返回旧交易,而对于第三个资产则不返回任何交易。

  • 我试图填充LSTM迷你批处理的张量序列,序列中的每个时间步都包含一个子张量列表(在单个时间步中表示多个特征)。 例如,序列1有3个时间步,每个时间步有2个特征。下面的一个例子是: 序列1=[[1,2],[2,2],[3,3],[3,2],[3,2]] 序列2=[[4,2],[5,1],[4,4]] 序列3=[[6,9]] 我运行pytorch的pad_sequence函数(这也适用于pack_se

  • 问题内容: 我的问题如下: 我需要根据汽车租赁实例中的信息填充“汽车”表。 我需要创建一个主键“ car_id”,但仅针对出租表中的不同车牌。 我正在创建带有序列的car_id。 我尝试了以下代码,但收到错误消息: 尽管这将起作用(没有不同的车牌): (第一行带有注释,因此我可以立即看到要输出的值) 所以!有谁知道我怎么能做?A)获取上面的代码以使用DISTINCT或B)找到一种方法来获取序列的M

  • 问题内容: 希望有人可以帮助我编写SQL脚本或函数。 我有一个数据源,我希望该功能通过并基于2个指定的列填充相关列。 因此,名称和值列。 例如 因此,脚本/函数应该为数据源的每一行分别在a,b,c,d列中填充值2,1、3、5。 这可能吗?如果是这样,有人可以教我如何做。 问题答案: Oracle安装程序 : 更新声明 : 输出 : Oracle安装程序 : 插入语句 : 输出 :

  • 我有一个缺少“SNAP_ID”值的数据帧。我想根据前一个非缺失值(lag()?)的序列,用浮点值填充缺失值。如果可能的话,我真的想只用dplyr来实现这一点。 假设: 永远不会有丢失的数据,因为第一行或最后一行我根据数据集的最小值和最大值之间的缺失天数生成缺失的日期 数据集中可能存在多个空白 当前数据: 我想要实现的目标: 作为数据帧: 这是我实现这个目标的尝试,但它只适用于第一个缺失的值: 来自