2013-06-07 16 views
7

Jak usunąć ikonę z JOptionPane?Usuń ikonę z 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 nie pozwoli mi OK Anuluj przyciski. –

Odpowiedz

19

Można to zrobić poprzez bezpośrednie określenie wyglądu i wiadomości.

Twój kod zostanie ustawiony domyślnie, a ten użyje stylu "PLAIN_MESSAGE", w którym brakuje ikony. Zachowanie komponentu pozostaje niezmienione.

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

Więcej informacji: http://docs.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html

2

Jest to dość proste, używając jako przezroczystą ikonę poniżej (w przeciwieństwie do czarnej „powitalny obrazek”). Należy jednak pamiętać, że choć opcja oferuje pewien "obszar poruszania się" pod względem sposobu wyświetlania, przejdź do zmiany kilku rzeczy i szybko staje się łatwiejsze w użyciu zamiast tego 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); 
    } 
} 
Powiązane problemy