gpt4 book ai didi

java - 操作 vector 的单个元素

转载 作者:行者123 更新时间:2023-12-02 05:19:28 25 4
gpt4 key购买 nike

我目前正在尝试用 Java 操作 vector 的单个元素。如果我尝试在循环中使用 elementAt(i) 或 get(i) 执行此操作,整个 vector 仍然会改变。我正在寻找一种方法来尝试执行此操作,同时仍然使用 vector (因为我在程序的其余部分中使用它们)。

我尝试将我的 vector 克隆到一个临时 vector 中,然后删除该 vector 中除要操作的元素之外的所有元素,但无济于事。

这是我的代码段:

@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);

Graphics2D g2 = (Graphics2D) g;
for (int i = 0; i < shapes.size(); i++) {
if (shapes.get(i) != null){
g2.setColor(colorSelected());
if(fill.isSelected() && !((String)shapesList.getSelectedItem() == "Line")){
g2.fill(shapes.elementAt(i));
} else {
g2.draw(shapes.elementAt(i));
}
}
}
}

发生的问题是我试图填充/绘制/更改在我的临时绘画程序中绘制的单个下一个元素的颜色,但它改变了每个形状。

任何提示(或解释为什么会发生这种情况)将不胜感激。

最佳答案

此问题最可能的原因是 shapes 实际上并不包含多个形状,而仅包含对同一 Shape 对象的多个引用。该错误将出现在填充 Vector 的代码部分中。

旁注:Vector 类已经过时且过时了。应避免使用 ArrayList,除非您使用的 API 确实需要 Vector(这在 Swing 中确实会发生)。如果您正在使用教您使用 Vector 的教程或书籍,那么它们可能已有 10 多年的历史,应该避免使用。

关于java - 操作 vector 的单个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26612611/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com