Java 获取按钮变量的名称

Java 获取按钮变量的名称,java,swing,variables,jbutton,Java,Swing,Variables,Jbutton,我在git的一个项目中工作,在这个项目中,编码对于多台机器可能是不同的 如果我设置这个: private JButton translationButton1 = new JButton("←"); translationButton1.addActionListener(this); 然后我设置侦听器: @Override public void actionPerformed(ActionEvent e) { // TODO Auto-generated metho

我在git的一个项目中工作,在这个项目中,编码对于多台机器可能是不同的

如果我设置这个:

private JButton translationButton1 = new JButton("←");
translationButton1.addActionListener(this);
然后我设置侦听器:

@Override
    public void actionPerformed(ActionEvent e) {
        // TODO Auto-generated method stub
    }
我知道有可能得到←" 通过使用
e.getActionCommand()
,但我担心如果有人的编码与我不同(例如Cp1252),我不确定是否会←“

可以在
actionPerformed方法中获取按钮的名称
如果(???.equals(“translationButton1”)
)?(我不想使用
匿名内部类型,因为我要设置多个actionListener)


谢谢

通过
System.getProperty(“file.encoding”)

因此,对于您来说,代码应该如下所示:

@Override
    public void actionPerformed(ActionEvent e) {
    String encoding =System.getProperty("file.encoding");
    if (encoding.equals("UTF-8"))
       // do something
    else if (encoding.equals("Cp1252"))
       // do something else
    // else if (encoding.equals("someEncoding"))
       do something else yet
    }

尽管如此,我还是向您推荐@Whiskyspider在这里描述的方法……对于这种情况,这是一种更干净的做法。

您可以通过
System.getProperty(“file.encoding”)
在用户的计算机上获得
编码

因此,对于您来说,代码应该如下所示:

@Override
    public void actionPerformed(ActionEvent e) {
    String encoding =System.getProperty("file.encoding");
    if (encoding.equals("UTF-8"))
       // do something
    else if (encoding.equals("Cp1252"))
       // do something else
    // else if (encoding.equals("someEncoding"))
       do something else yet
    }
尽管如此,我还是会向您推荐@wiskyspider在这里描述的方法……这是本案例中更干净的做法

是否可以获取按钮的名称

1按钮可能被分配给3个不同的属性名称,或者没有。因此,不可能获取“the”变量名称

是否可以获取按钮的名称


1按钮可能被分配给3个不同的属性名称,也可能没有。因此,不可能获取“the”变量名称。

不,但您可以设置一个操作命令:

translationButton1.setActionCommand("translationButton1");
然后检查命令:

public void actionPerformed(ActionEvent ae) {
    if (ae.getActionCommand.equals("translationButton1") {
        // do something
    }
}

否,但您可以设置操作命令:

translationButton1.setActionCommand("translationButton1");
然后检查命令:

public void actionPerformed(ActionEvent ae) {
    if (ae.getActionCommand.equals("translationButton1") {
        // do something
    }
}

是的,这比考虑我可能会遇到麻烦的所有编码都要干净是的,这比考虑我可能会遇到麻烦的所有编码都要干净这是无意义的原因,那么就没有问题了,我也找不到编码(东亚和南亚除外)这就是annonymous的原因,然后就没有问题了,我也找不到编码(东亚和南亚除外)