所以我有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中的类名通常以大写字母开头!(