2016-05-23 13 views
0

Die Position und Größe spielt keine Rolle, ich brauche lediglich ein benutzerdefiniertes Bildsymbol anstelle eines Standard-Java-Symbols im Dialogfeld.Wie fügt man ein Bildsymbol zu einem Bestätigungsdialogfeld hinzu?

Hier ist, was ich bisher getan haben:

public void actionPerformed(ActionEvent a) { 
    int x=0; 

    // Import Asus logo 
    ImageIcon img3 = new ImageIcon("AsusConfirmation.jpeg"); 

    // Create user-friendly information message 
    int c = JOptionPane.showConfirmDialog(null, "Your grand total is $"+x+"!\nIs this order correct?", "Checkout", JOptionPane.YES_NO_OPTION, img3); 

    if(c==JOptionPane.YES_OPTION) { 
    System.exit(0); 
    } 
} 

Der Fehler, den ich mit diesem Code erhalten, ist, dass ich das Bild in ein int nicht konvertieren kann, und ich entfernen Sie den int Teil, dann gewann ich‘ t verwenden können:

if(c==JOptionPane.YES_OPTION) { 
    System.exit(0); 
} 

Antwort

1

Sie verwenden nicht die richtige Methodensignatur. Siehe im Javadoc:

public static int showConfirmDialog(Component parentComponent, 
       Object message, 
       String title, 
       int optionType, 
      -> int messageType, <- 
       Icon icon) 
         throws HeadlessException 

Was Sie tun, ist in einer anderen Signatur fallen, die keine Icon nicht geben:

public static int showConfirmDialog(Component parentComponent, 
       Object message, 
       String title, 
       int optionType, 
       int messageType) 
         throws HeadlessException 

aber nicht zu einer int geben, so dass der Compiler über eine beschweren Typenkonflikt.

Was Sie tun müssen, ist das fehlende messageType Argument hinzufügen, dann werden Sie die erste Signatur der Methode übereinstimmen.

Verwandte Themen