swing awt组件方法getname from setname?

gopyfrb3  于 2021-06-27  发布在  Java
关注(0)|答案(2)|浏览(319)

正在尝试添加 getName() 方法 setName() 基于此方法 void java.awt.Component.setName(String arg0) 但是没有运气。下面的按钮将加载到contentpane中。
我需要将actionlistener添加到该方法中示例化的按钮(基于setname或其他类似的内容):

public JButton JButtonComponent(String btnRef) {

    button = new JButton("Convert to binary");
    button.setMaximumSize(new Dimension(width/4,unitHeight));

    button.addActionListener(this);
    button.setName("Binary"); // my set name 

    return button;
}

这是我的方法:

@Override
public void actionPerformed(ActionEvent e) {

    System.out.println(e.getSource());

}

上述系统打印输出:

javax.swing.JButton[Binary,270,14,90x33,alignmentX=0.0,alignmentY=0.5,flags=296,maximumSize=,minimumSize=,preferredSize=,defaultIcon=,disabledIcon=,disabledSelectedIcon=,margin=javax.swing.plaf.InsetsUIResource[top=2,left=14,bottom=2,right=14],paintBorder=true,paintFocus=true,pressedIcon=,rolloverEnabled=true,rolloverIcon=,rolloverSelectedIcon=,selectedIcon=,text=Convert,defaultCapable=true]

我的问题是如何从actionevent中获取我在jbuttoncomponent中定义的name值setname值显然在actionevent e中,但似乎没有一个方法适合对象提取该值,这样我就可以进行比较了。这是最好的方法来定义一个“id”像你会在html中,如果你要比较?

hxzsmxv2

hxzsmxv21#

你的 JButton 定义代码应为:

button.setText("Binary");

你的 ActionListener 代码应为:

JButton button = (JButton) event.getSource();
String text = button.getText();

您也可以使用 JButton 操作命令 String 传递附加信息;信息。

2ledvvac

2ledvvac2#

或者基于setname或者其他类似的东西
不要用getname/setname来做这样的事情。
已经有一个api允许您使用“操作命令”。
为了一个 JButton 您可以使用:

button.setActionCommand("Binary");

然后在 ActionListener 您使用:

String command = e.getActionCommand();

setname值显然在actionevent中
不,不是。对源对象的引用包含在actionevent中。您需要先访问源,然后才能访问源对象的方法:

JButton button = (JButton)e.getSource();
System.out.println( button.getName() );

相关问题