JButton只出现在MouseEnter上

时间:2014-08-03 21:01:50

标签: java swing graphics jframe jbutton

JButton仅出现在MouseEnter上 我尝试了很多东西,但我似乎无法弄清楚如何让我的JButton超过背景图形。 。有谁知道我怎么能在这个背景上画画并让我的按钮停留在那里?我会在这里粘贴代码,但它会变得有点凌乱,所以有一些粘贴链接! :)

我的主要课程:http://pastebin.com/DvVfCU03

我的MenuPanel课程:http://pastebin.com/uht8cabX

以下是主要类的副本:

public class Main {

final static JFrame window = new JFrame();
final static ImageIcon imageIconOne = new ImageIcon(getConnectImage());
final static JButton connectB = new JButton(imageIconOne);
public static void main(String[] args) throws IOException {
    window.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    window.setContentPane(new MenuPanel());
    window.addKeyListener(new MenuPanel());
    window.setMinimumSize(new Dimension(1024,640));
    window.pack();
    window.setTitle("Realm of Pixels");
    window.setVisible(true);
    window.addMouseListener(new MouseHandler());
    window.setVisible(true);
    window.add(connectB);
     connectB.setVisible(true);
}

public static Image getConnectImage(){
    Image connectImage = null;
    try {
        connectImage = ImageIO.read(new File("Resources/Buttons/Connect.png"));
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return connectImage;
}
public static JFrame getWindow() {
    return window;
}
}

1 个答案:

答案 0 :(得分:1)

在构建用户界面后,最后致电setVisible的{​​{1}},并在致电JFrame之前致电pack,这样您就可以了我们希望获得更好的尺寸计算,因为它基于内容。

请注意setVisible众所周知,只有在注册的组件可以聚焦且具有焦点时才响应键击,通常最好使用键绑定API。此外,如果组件层次结构中较高的任何组件也具有KeyListener s

,则可以忽略直接向窗口添加MouseListener