如何让9个对象修改另一个类的相同值

  • 本文关键字:另一个 修改 9个 对象 java
  • 更新时间 :
  • 英文 :


所以我有9个对象,它们都创建了一个不同的对象,每个对象都包含我想要修改的值,但我希望它们都修改相同的值,就像如果对象一添加变量,现在是两个,如果对象六添加变量,那么现在是三个,但我改为单独修改

import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.util.Scanner;
public class PanelClickeable extends JPanel implements MouseListener{
public static final String TXT_VACIO=" ";
public int X,Y;
private JLabel etMensaje,etLugar,etBoton,etConteo;
private JButton botReiniciarConteo,botSalirPrograma;
private int contadorClicks;
public PanelClickeable(){
super();
valores clicks= new valores();
setLayout(new BoxLayout(this,BoxLayout.PAGE_AXIS));
addMouseListener(this);
contadorClicks=clicks.regresarvalor();
etMensaje = new JLabel("Coordenadas");
etLugar =  new JLabel(TXT_VACIO);
etBoton = new JLabel(TXT_VACIO);
etConteo =  new JLabel(" " );
JLabel lineaFinal= new JLabel("______________________");
add(etMensaje);
add(etLugar);
add(etBoton);
add(etConteo);
add(lineaFinal);

}
@Override
public void mouseClicked(MouseEvent e){
//etMensaje.setText("("+e.getX()+","+e.getY()+")");
//contadorClicks++;
//etConteo.setText("van "+contadorClicks+" clics");
valores clicks= new valores();
etMensaje.setText("("+X+","+Y+")");
clicks.valorinicial(contadorClicks);
clicks.sumar();
contadorClicks=clicks.regresarvalor();
etMensaje.setText(contadorClicks+" :");
if((contadorClicks%2)==0){
etConteo.setText("X");
}
}
@Override
public void mousePressed(MouseEvent e){
}
@Override
public void mouseReleased(MouseEvent e){
}
@Override
public void mouseEntered(MouseEvent e){
}
@Override
public void mouseExited(MouseEvent e){
}
}

在这个类中,我正在修改contadorClicks,下一个类是我用来做它的:

public class valores{
public int clicksgeneral;
public void valorinicial(int clicks){
clicksgeneral=clicks;
}
public void sumar(){
clicksgeneral++;
}
public int regresarvalor(){
return clicksgeneral;
}
}

答案是:是的。

您可以在持有值(Valores(的类中创建要修改的值static,也可以共享该类的实例(Valores(,而不是每次都创建一个新的实例。在我看来,后一种方法是更清洁的方法。

因此,不必每次都创建Valores clicks的新实例,只需将其作为PanelClickeable类的成员即可。

最后,您甚至根本不需要Valores类,因为它基本上只是contadorClicks的一个奇怪的包装器。因此,您可以直接修改contadorClicks上的值,而不是创建该实例。

(注意:Java中的类名通常以大写字母开头!(

相关内容

最新更新