2013-06-07 40 views
7

Làm cách nào để xóa biểu tượng khỏi JOptionPane?Xóa biểu tượng khỏi 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 sẽ không cho phép tôi OK Hủy các nút. –

Trả lời

19

Bạn có thể làm điều đó bằng cách trực tiếp xác định xem và cảm nhận thông điệp của bạn.

Mã của bạn sẽ có mã mặc định, trong khi mã này sẽ sử dụng kiểu "PLAIN_MESSAGE" thiếu kiểu biểu tượng. Hành vi của thành phần vẫn không thay đổi. Thông tin

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

thêm: http://docs.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html

2

này là khá dễ dàng bằng cách sử dụng một biểu tượng trong suốt như sau (như trái ngược với 'hình ảnh giật gân' đen). Mặc dù lưu ý rằng trong khi khung tùy chọn cung cấp một số 'không gian lung linh' về cách nó được hiển thị, hãy thay đổi một vài điều và nhanh chóng trở nên dễ dàng hơn khi sử dụng một số JDialog thay thế.

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); 
    } 
}