Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

ダイアログ表示

GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        device.setFullScreenWindow(this);
上記でアプリをフルスクリーンにして、
JOptionPane.showMessageDialog(this, label);
でダイアログを表示すると、アプリが最小表示に勝手に
なってしまいます。
なぜでしょうか?よろしくお願いします。

5

回答

4987

閲覧

5件の回答

評価

0

下記がソースです。
import javax.swing.*;
import javax.swing.*;
import java.awt.Color;
import java.awt.BorderLayout;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
import java.awt.event.*;

public class JOptionPaneTest2 extends JFrame implements ActionListener{
    public static void main(String[] args){
        JOptionPaneTest2 frame = new JOptionPaneTest2();
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.setTitle("タイトル");
        frame.setVisible(true);
    }
    JOptionPaneTest2(){
        GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
        device.setFullScreenWindow(this);
        JButton button = new JButton("dialog");
        button.addActionListener(this);
        JPanel p = new JPanel();
        p.add(button);
        getContentPane().add(p, BorderLayout.CENTER);
    }
    public void actionPerformed(ActionEvent e){
        JLabel label = new JLabel("Message");
        label.setForeground(Color.RED);
        JOptionPane.showMessageDialog(this, label);
    }
}

評価

0

フルスクリーンは基本、別エリアに描画されているので
最小化するのは仕様かと。

JWindow を Fullscreanで表示してその中に JFrame と JOptionPane (ダイアログ)を表示するとかで対応すればいいきがします。

評価

0

JWindow の中にJFrameは入れることができません。
そのような経験があって回答を頂いたのでしょうか?
それとも憶測でしょうか?

評価

0

JWindow に JFrame は入らないですね。
JDesktopPane を入れてその中に showInternalMessageDialog で表示かな?

    public void actionPerformed(ActionEvent e){
        JLabel label = new JLabel("Message");
        label.setForeground(Color.RED);
        JDesktopPane dtop = new JDesktopPane();
        add(dtop, BorderLayout.SOUTH);
        dtop.setPreferredSize(new Dimension(300,200));
        JOptionPane.showInternalMessageDialog(dtop, label);
        remove(dtop);
    }

評価

0

仙人さん。
残念ですがぼくの環境ではうまくいきませんでした。
回答ありがとうございました。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。