Java ImageIcon不起作用

时间:2015-10-27 15:10:11

标签: java imageicon

当我尝试在JPanel中显示图片时,我遇到了一些麻烦。

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;

import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;

public class MainWindow {

    public static JFrame mainFrame;
    public static JPanel loginRegisterPanel;


    public MainWindow() {
        MainFrame();
        LoginRegisterPanel();
    }

    public void MainFrame() {

        mainFrame = new JFrame();
        mainFrame.setSize(640, 480);
        mainFrame.setVisible(true);
        mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        mainFrame.setResizable(false);

    }

    public void LoginRegisterPanel() {

        loginRegisterPanel = new JPanel();
        loginRegisterPanel.setLayout(null);
        mainFrame.add(loginRegisterPanel);

        JButton loginButton = new JButton("Login");
        JButton registerButton = new JButton("Register");

        /*ImageIcon logoImage = new ImageIcon("Resource/logo.jpg");
        JLabel logoImageLabel = new JLabel();
        logoImageLabel.setBounds(0, 0, 640, 200);
        logoImageLabel.setIcon(logoImage);
        loginRegisterPanel.add(logoImageLabel);
        */


        loginButton.setBounds(260, 180, 120, 50);
        loginRegisterPanel.add(loginButton);
        loginButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                try {
                    loginRegisterPanel.setVisible(false);
                    LoginPanel loginPanel = new LoginPanel();
                    mainFrame.getContentPane().add(loginPanel.loginP);
                }
                catch (Exception ce){
                    ce.printStackTrace();
                }
            }
        });
        registerButton.setBounds(260, 250, 120, 50);
        loginRegisterPanel.add(registerButton);

    }

    public static void main (String[] args) {
        MainWindow mainWindow = new MainWindow();
    }
}

如果我从源代码中删除了ImageIcon部分,我的JPanel会显示按钮,但如果我使用ImageIcon,则不会显示任何内容。

1 个答案:

答案 0 :(得分:3)

loginRegisterPanel.setLayout(null);
造成了这个问题。我想没有布局管理器会让Java混淆在哪里放置它。你应该给一个GridLayout。