- PR -

JPopupMenuの表示

1
投稿者投稿内容
nori-it
会議室デビュー日: 2003/06/10
投稿数: 3
投稿日時: 2003-12-24 14:23
AppletでJPopupMenuによりポップアップを表示しているのですが
LookAndFeelを”Windows”にすると下に「Java Applet Window」
と付きます。
これを表示しないようにはできないのでしょうか?

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;

public class Test extends JApplet implements MouseListener {
JPopupMenu popup = null;
JComboBox combo = null;
Container pane = null;

public void init() {
try {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (Exception err){
err.printStackTrace();
}

pane = getContentPane();
pane.setLayout(new FlowLayout());
combo = new JComboBox();

pane.add(combo);

popup = new JPopupMenu();
popup.add("Test1");
popup.add("Test2");

pane.addMouseListener(this);
}

public void mousePressed(MouseEvent e) { showPopup(e); }
public void mouseReleased(MouseEvent e) { }
public void mouseClicked(MouseEvent e) { }
public void mouseEntered(MouseEvent e) { }
public void mouseExited(MouseEvent e) { }

private void showPopup(MouseEvent e) {
Component com = (Component)e.getSource();
if (e.isPopupTrigger()) {
popup.show(com, e.getX() , e.getY());
}
}
}

バージョン
OS:WindowsXP
Java:JDK1.4.1-6
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2003-12-24 15:10
引用:

AppletでJPopupMenuによりポップアップを表示しているのですが
にすると下に「Java Applet Window」
と付きます。
これを表示しないようにはできないのでしょうか?


appletviewer, mozilla firebird上で確認しましたが、どこにもそのような表示はされませんでした。いったいどこに表示されるの?てゆーか、LookAndFeelを”Windows”が意味不明です。

私の環境
j2sdk se 1.4.2
windows 98SE
nori-it
会議室デビュー日: 2003/06/10
投稿数: 3
投稿日時: 2003-12-24 15:35
申し訳ございません。
ソースに間違いがありました。
public void mouseReleased(MouseEvent e) { }
  ↓
public void mouseReleased(MouseEvent e) { showPopup(e); }
です。

これでApplet上でマウスの右クリックを行なうとPopupが表示されます。
この表示されたPopup画面の下に「Java Applet Window」が付いてきます。

LookAndFeelが”Windows"とは
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
  ↓
UIManager.setLookAndFeel(
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
のことです。
わかり難い説明で申し訳ございません。

[ メッセージ編集済み 編集者: nori@it 編集日時 2003-12-24 15:45 ]
かずくん
ぬし
会議室デビュー日: 2003/01/08
投稿数: 759
お住まい・勤務地: 太陽系第三惑星
投稿日時: 2003-12-24 16:17
せんせい!やっぱりひょうじできません。

OS、Java Plug-inのバージョンが違うことが原因なのだろうか?
それとも、ブラウザの問題?

再現できない以上、私の方ではこれ以上フォローアップしてあげることができません。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-12-24 16:25
unibon です。こんにちわ。

引用:

nori@itさんの書き込み (2003-12-24 14:23) より:
AppletでJPopupMenuによりポップアップを表示しているのですが
LookAndFeelを”Windows”にすると下に「Java Applet Window」
と付きます。
これを表示しないようにはできないのでしょうか?


このメッセージは
http://java-house.jp/ml/archive/j-h-b/007967.html

http://www.vc-net.ne.jp/~ytp/bbs/java/bbs10408.html
に由来するものだと思いますが、
アプレットのコンテナが出しているものなので、
実行環境によって多少挙動が異なると思います。
AppletViewer なら出す必要はないのですが、
ブラウザだと Java PlugIn なのかそうでないのかで違ってきます。

ただ、私も知らなかったのですが、
LAF の違いで出たり出なかったりするのでしたっけ(未確認)。
たしかに Windows 上の IE で Metal のフレームを出されても、
嘘臭さがにじみ出ますので警告する必要性も薄いのかもしれませんね。
unibon
ぬし
会議室デビュー日: 2002/08/22
投稿数: 1532
お住まい・勤務地: 美人谷        良回答(20pt)
投稿日時: 2003-12-24 16:35
unibon です。追加です。

引用:

unibonさんの書き込み (2003-12-24 16:25) より:
アプレットのコンテナが出しているものなので、
実行環境によって多少挙動が異なると思います。


上記はちょっと違っていました。
JDK に付属のソースコードを見たところ、
java.awt.Window クラスの setWarningString メソッド(private なメソッド)内で、
どんな文字列を出すか(あるいは文字列を出さないか)を決めているようでした。
nori-it
会議室デビュー日: 2003/06/10
投稿数: 3
投稿日時: 2003-12-24 16:54
引用:


再現できない以上、私の方ではこれ以上フォローアップしてあげることができません。




表示できませんか。
いろいろありがとうございました。

こちらではブラウザはIE6.0、Java PlugInはJDK1.4.1-6です。


引用:


LAF の違いで出たり出なかったりするのでしたっけ(未確認)。




そうなんです。
LookAndFeelを指定しなければ「Java Applet Window」は表示されません。

またComboBoxのPopupはLookAndFeelに"Windows"を指定してもしなくても
「Java Applet Window」は表示されません。
但しComboBoxのPopupはJava PlugInのバージョンによって違うみたいです。
1

スキルアップ/キャリアアップ(JOB@IT)