鉴于此代码,
tableButton = new JButton(new ImageIcon("80F_FG2015.GIF"));
我如何才能将String
返回给我,以便将其与另一个String
进行比较?
答案 0 :(得分:2)
解决问题的一种方法是创建
tableButton = new JButton(new ImageIcon("80F_FG2015.GIF", "80F_FG2015.GIF"));
第二个参数是描述。 ImageIcon.toString()方法返回描述。因此,您可以将此描述与其他图像图标
中的描述进行比较您可以按如下方式取回说明:
System.out.println(((ImageIcon)tableButton.getIcon()).getDescription());
//or
System.out.println(((ImageIcon)tableButton.getIcon()).toString());
答案 1 :(得分:2)
您可以使用Reflection:
实现这一目标 ImageIcon icon = new ImageIcon(pathImg);
JButton jButton1 = new JButton(icon);
Field field = null;
try {
Class<? extends ImageIcon> clazz = ((ImageIcon) jButton1.getIcon()).getClass();
//Get the field "filename" where the Image path is stored.
field = clazz.getDeclaredField("filename");
field.setAccessible(true);
String path = (String) field.get(icon);
} catch (NoSuchFieldException ex) {
Logger.getLogger(AAMainWindow.class.getName()).log(Level.SEVERE, null, ex);
} catch (SecurityException ex) {
Logger.getLogger(AAMainWindow.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalArgumentException ex) {
Logger.getLogger(AAMainWindow.class.getName()).log(Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
Logger.getLogger(AAMainWindow.class.getName()).log(Level.SEVERE, null, ex);
}
答案 2 :(得分:1)
您可以创建一个扩展JButton的新类。将字符串存储在类中。
class MyButton extends JButton
{
private String filename;
public MyButton(String filename)
{
super(new ImageIcon(filename));
this.filename = filename;
}
public String getFilename()
{
return filename;
}
}