카드가 JLabel로 표현되고 이름과 게임 중에 변경된 다른 속성을 가진 카드 게임을 만들고 있습니다. 두 개의 카드로 된 전체 이름 (필드 fullName
으로 표시)을 비교하는 것으로 평등을 정의하고 싶습니다. 그러나 이것은 다른 카드 클래스의 다른 필드가 있기 때문에 동일한 카드를 두 번 추가 할 수 없다는 문제점을 안겨줍니다.은 JPanel에 구성 요소를 추가 할 때 문제가됩니까?
분명히 JPanel은 백그라운드에서 equals
에 대한 일부 확인을합니다. 나는 다음 각 카드에 고유 한 id
필드를 추가하고 수업 시간에 내가 값을 증가 그때
private static Map<AbstractCard, Integer> idCount = new HashMap<AbstractCard, Integer>();
과 함께 특정 카드의 생성자가 호출 될 때마다 생성 된 종류의 얼마나 많은 카드를 추적 idCount
. 그러나 id
과 원래 name
의 수표를 추가하면지도가 깨질뿐만 아니라 이름이 같은 경우에도 카드가 두 개 이상 추가되지 않습니다. 다음은이 메소드의 모습입니다.
이 문제를 해결하는 방법에 대한 의견이 있으십니까?
편집 : 내 hashCode
은 fullName.hashCode()
을 반환하고 현재 버전에는 id
을 추가합니다.
카드가'JLabel'을 확장한다는 것을 의미합니까? –
예, 죄송합니다. 질문을 게시 한 직후에 편집했습니다. –