ImageIcon Help + Close a JOptionPane

前端 未结 2 1113

I\'m trying to get the PayPal logo come up when you click the \'rightbutton\' is clicked. Unfortunately, all that shows is the default Java logo with the cup of coffee and a

2条回答
  •  失恋的感觉
    2020-12-12 08:03

    I think you have your parameters around the wrong way

    enter image description here

    try {
        final ImageIcon icon = new ImageIcon(ImageIO.read(new File("paypalicon.gif")));
    
        JOptionPane.showOptionDialog(
                null,
                "Congratulations, you clicked the button.",
                "Congrats",
                JOptionPane.OK_OPTION,
                JOptionPane.PLAIN_MESSAGE,
                icon,
                new Object[]{"Okay"},
                "Okay");
    } catch (IOException exp) {
        exp.printStackTrace();
    }
    

    JOptionPane declares showOptionDialog as having the following parameters (in order)

    • Component, the parent component associated with the dialog
    • Object, the message to be displayed
    • String, the dialog title
    • int, the type of options (if not specified), such as JOptionPane.OKAY_CANCEL_OPTION
    • int, the message type, such as JOptionPane.INFORMATION_MESSAGE, which can define the icon that the dialog will use
    • Icon, the icon to be displayed on the dialog
    • Object[], the options to be made available to the user (buttons)
    • Object, the initial option which is given focus

    You seem to be passing...

    • null as the parent, okay.
    • "Congratulations, you clicked the button.", okay
    • "Congrats", okay
    • JOptionPane.DEFAULT_OPTION, okay
    • JOptionPane.INFORMATION_MESSAGE probably okay, I'd use JOptionPane.PLAIN_MESSAGE, but that's me
    • null...no icon?
    • new Object[] { panel }, not sure if this is okay, but at least it's in the right place
    • icon...this isn't even a value i the option parameters you passed ... think this is missed place.

    The problem with the buttons comes down to the fact that they are disconnected from the dialog. The dialog has absolutely no way to know that the buttons are been clicked, you'd have to provide that functionality via some kind of ActionListener...to be honest, it'd just pass String values as the options parameter and let JOptionPane render them as buttons, as it will then deal with closing the dialog, otherwise it gets real messy, real quick...

提交回复
热议问题