我正在使用Java编写菜单,并且我使用图像JButtons
。但是,当我运行应用程序时,我无法点击按钮。这是按钮的代码:
JButton butoEtnies = null;
try {
butoEtnies = new JButton(new ImageIcon(ImageIO.read(new File("imatges/Etnies.png"))));
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
butoEtnies.setContentAreaFilled(false);
butoEtnies.setBorderPainted(false);
butoEtnies.setFocusPainted(false);
butoEtnies.addActionListener(this);
这是actionPerformed:
public void actionPerformed(ActionEvent e) {
String et = null;
String accio = e.getActionCommand();
if(accio.equals("Etnies"))
et = entrarEtnies();
else
System.exit(0);
}
可能是因为它无法识别" Etnies"在actionPerformed方法?如果我使用JButton butoEtnies = new JButton("Etnies");
,问题就会得到解决。但是它会显示2个按钮,一个带有图像,另一个带有此文本。如果我按下带有文字的那个,但我仍然无法点击另一个。
我该怎么办?
答案 0 :(得分:2)
你要么给它一个标题,要么给它一个图像,而不是两者。 你应该使用
JButton butoEtnies = new JButton("Etnies", /*Here goes the icon*/);
或者您也可以尝试:
JButton butoEtnies = new JButton("Etnies");
butoEtnies.setIcon(/*Here goes the icon*/);
此外,here's JButton的Java API
编辑#2
接下来,为butoEtnies按钮提供一个特定的actionlistener,您不需要为getActionCommand指定ID或标题
JButton butoEtnies = new JButton (/*path to icon*/);
butoEtnies.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent evt) {
//You can code whatever you want here
System.out.println("butoEtnies clicked");
}
});