所以多亏了这里的好人,我设法得到了一些半可行的东西,仍然有一些错误,但也许你们可以帮助我解决这个问题。到目前为止,所提供的解决方案都不是完全匹配的(这就是我没有投票给他们的原因),但它们确实帮助我以一种新的方式看待事物并使事情向前发展。所以这是当前的问题。
首先是代码,然后是解释
RaceButtons[RaceCounter] = new JToggleButton();
RaceButtons[RaceCounter].setIcon(RCiconSM);
RaceButtons[RaceCounter].setBorder(BorderFactory.createEmptyBorder());
RaceButtons[RaceCounter].setContentAreaFilled(false);
RaceButtons[RaceCounter].setActionCommand(temp_race.getRaceNameString(RaceCounter));
RaceButtons[RaceCounter].addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent ae) {
Race race = new Race(1, 1, GenderList[PHYSICAL_SEX]);
race.setRaceID(race.getRaceIDFromString(ae.getActionCommand()));
//System.out.println(race.getraceID());
if (RaceButtons[race.getraceID()].isSelected()){
RaceButtons[race.getraceID()].setBorderPainted(true);
RaceButtons[race.getraceID()].setBorder(new LineBorder(Color.blue,2));
MyRaceArray.add(new Race(race.getraceID(), 1, GenderList[PHYSICAL_SEX]));
}else{
RaceButtons[race.getraceID()].setBorderPainted(false);
};
所以首先我创建了一个切换按钮数组,当你点击它时,它会绘制边框,然后获取它的信息,我可以将它添加到数组中进行比赛,但这让我遇到了另一个问题,我无法完全弄清楚逻辑。Namly 如果已经选择了按钮,它会向按钮添加另一个实例,它不应该忽略 iexaisting 条目,但这意味着我必须检查 arry 以查找具有相同信息的 Race 类型的匹配对象,对吗?最好的方法是什么?当你取消选择它时,我如何删除同一个对象。