Java 如何添加return语句?
爪哇 我想访问另一个类中的“dist”。但是,我无法这样做,因为变量位于方法内部。我无法将该方法更改为“public double”,因此无法将其放在get方法中。小费Java 如何添加return语句?,java,variables,methods,return,Java,Variables,Methods,Return,爪哇 我想访问另一个类中的“dist”。但是,我无法这样做,因为变量位于方法内部。我无法将该方法更改为“public double”,因此无法将其放在get方法中。小费 public void paintComponent(Graphics g) { super.paintComponent(g); for (Circle circle : circles) { circle.draw(g); if (selectedCircle != null
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (Circle circle : circles) {
circle.draw(g);
if (selectedCircle != null && selectedCircle == circle) {
selectedCircle.drawSelected(g);
}
}
for (int i = 0; i < circles.size(); i++) {
Circle c1 = circles.get(i);
for (int j = i + 1; j < circles.size(); j++) {
Circle c2 = circles.get(j);
double dist = c1.getPoint().distance(c2.getPoint()) + 1;
double dx = (c2.x - c1.x) / dist / dist;
double dy = (c2.y - c1.y) / dist / dist;
c1.x += dx;
c1.y += dy;
c2.x -= dx;
c2.y -= dy;
}
}
}
公共组件(图形g){
超级组件(g);
用于(圆:圆){
画圆(g);
if(selectedCircle!=null&&selectedCircle==circle){
选择圆圈。选择绘图(g);
}
}
对于(int i=0;i
ApaintComponent
方法将更新您的圆圈,如果它们发生了某种变化。这不是一个自己做出这些改变的地方。因此,第二个循环中的代码应该移到别处,例如,移到Circle
的构造函数和/或移到moveCircle
方法中<进行这些更改后,系统将调用代码>油漆组件。另外,关于第一个循环,还不清楚什么是selectedCircle
,可能是一个实例变量。如果是这样的话,不要在循环内部绘制它,只能绘制一次。您可以将dist
声明移到方法外部并移到类主体中,然后为其他类提供一个getter来利用访问它
private double dist;
public double getDist() {
return dist;
}
public void paintComponent(Graphics g) {
super.paintComponent(g);
for (Circle circle : circles) {
circle.draw(g);
if (selectedCircle != null && selectedCircle == circle) {
selectedCircle.drawSelected(g);
}
}
for (int i = 0; i < circles.size(); i++) {
Circle c1 = circles.get(i);
for (int j = i + 1; j < circles.size(); j++) {
Circle c2 = circles.get(j);
dist = c1.getPoint().distance(c2.getPoint()) + 1;
double dx = (c2.x - c1.x) / dist / dist;
double dy = (c2.y - c1.y) / dist / dist;
c1.x += dx;
c1.y += dy;
c2.x -= dx;
c2.y -= dy;
}
}
}
专用双区;
公共双getDist(){
返回距离;
}
公共组件(图形g){
超级组件(g);
用于(圆:圆){
画圆(g);
if(selectedCircle!=null&&selectedCircle==circle){
选择圆圈。选择绘图(g);
}
}
对于(int i=0;i
请不要添加代码图像,而是将其作为文本添加到问题中。如果您需要所有可能的圆圈对之间的距离
可以将它们存储在列表中
或双[]
中,并使用i,j
确定索引,为了有一个扁平的数据结构并避免像Map
@edgarastaryan这样的事情,我的目标是在我的类中简单地使用'dist'。在这里,我添加了一个if语句:if(dist<10){……因此,创建一个列表应该没有必要。我希望这能澄清我的问题。谢谢,这是一些有用的提示!