2013-06-07 19 views
7

Come rimuovere l'icona da JOptionPane?Rimuovi icona da JOptionPane

ImageIcon icon = new ImageIcon(image); 
JLabel label = new JLabel(icon); 
int result = JOptionPane.showConfirmDialog((Component) null, label, "ScreenPreview", JOptionPane.OK_CANCEL_OPTION); 

enter image description here

+1

JOptionPane.PLAIN_MESSAGE? – mishik

+0

http://stackoverflow.com/a/10489515/2381006 –

+1

@mishik: JOptionPane.PLAIN_MESSAGE non mi consente OK Annulla pulsanti. –

risposta

19

Puoi farlo specificando direttamente il look and feel del messaggio.

Il codice prenderà quello predefinito, mentre questo utilizzerà lo stile "PLAIN_MESSAGE", a cui manca l'icona. Il comportamento del componente rimane invariato.

JOptionPane.showConfirmDialog(null, label, "ScreenPreview", JOptionPane.OK_CANCEL_OPTION, JOptionPane.PLAIN_MESSAGE); 

Maggiori informazioni: http://docs.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html

2

Questo è abbastanza facile utilizzando l'icona di un trasparente, come di seguito (in contrasto con l' 'immagine splash' nero). Sebbene si noti che mentre il riquadro delle opzioni offre un po 'di spazio di manovra in termini di visualizzazione, passa a cambiare un paio di cose e diventa subito più semplice usare un JDialog.

Icon Free Option Pane

import java.awt.*; 
import java.awt.image.BufferedImage; 
import javax.swing.*; 

class IconFree { 

    public static void main(String[] args) { 
     Runnable r = new Runnable() { 

      @Override 
      public void run() { 
       // A transparent image is invisible by default. 
       Image image = new BufferedImage(
         1, 1, BufferedImage.TYPE_INT_ARGB); 
       JPanel gui = new JPanel(new BorderLayout()); 
       // ..while an RGB image is black by default. 
       JLabel clouds = new JLabel(new ImageIcon(new BufferedImage(
         250, 100, BufferedImage.TYPE_INT_RGB))); 
       gui.add(clouds); 

       JOptionPane.showConfirmDialog(null, gui, "Title", 
         JOptionPane.OK_CANCEL_OPTION, 
         JOptionPane.QUESTION_MESSAGE, 
         new ImageIcon(image)); 
      } 
     }; 
     // Swing GUIs should be created and updated on the EDT 
     // http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html 
     SwingUtilities.invokeLater(r); 
    } 
}