无法点击带有图像背景的Jbutton

时间:2014-05-06 12:25:53

标签: java swing jbutton actionlistener imageicon

我正在使用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个按钮,一个带有图像,另一个带有此文本。如果我按下带有文字的那个,但我仍然无法点击另一个。
我该怎么办?

1 个答案:

答案 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");
     }
});