12

からアイコンを削除するにはJOptionPane?

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

ここに画像の説明を入力

4

3 に答える 3

24

メッセージのルック アンド フィールを直接指定することで、これを行うことができます。

コードはデフォルトのものを使用しますが、これはアイコンのない「PLAIN_MESSAGE」スタイルを使用します。コンポーネントの動作は変更されません。

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

詳細: http://docs.oracle.com/javase/6/docs/api/javax/swing/JOptionPane.html

于 2013-06-07T11:14:03.430 に答える
2

これは、以下のように透明なアイコンを使用することでかなり簡単です (黒い「スプラッシュ画像」とは対照的に)。ただし、オプション ペインは表示方法に関して多少の「ゆらぎスペース」を提供していますが、いくつかの変更を行うと、JDialog代わりに を使用する方がすぐに簡単になります。

アイコンフリーオプションペイン

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);
    }
}
于 2013-06-07T18:40:33.140 に答える
0

の代わりに -1 を書きJOptionPane.QUESTION_MESSAGEます。

于 2018-08-25T15:26:32.320 に答える