JavaAppletでJbuttonに表示する文字列の改行を実現した
サンプルページを参考にボタンを作成し、IE上で表示させたのですが
初期表示は問題なく動作するものの、表示したページを
再読込(リロード)すると、文字が消えてしまいます。
(再読込後の画面コピーを添付します)
リロード時にもボタンに表示された文字を表示させるためには
ブラウザの設定変更やコードの修正が必要なのでしょうか?
以下は、実行環境及びコードです。
環境
OS:WindowsXP
ブラウザ:IE7
JRE:1.6.0_26
※クラスファイル、HTMLファイルともにCドライブ直下に配置し実行。
ソース
○test.java
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JPanel;
public class test extends JApplet {
private static final long serialVersionUID = 1L;
JButton button;
public void init() {
setBackground(Color.WHITE);
setLayout(new BorderLayout());
button = new JButton("<html>改行<br />ボタン</html>");
button.setPreferredSize(new Dimension(120,80));
JPanel panel = new JPanel();
panel.setBackground(Color.WHITE);
panel.add(button);
add(panel, BorderLayout.CENTER);
}
}
○test.html
<html>
<head></head>
<body>
<applet code="test.class" WIDTH=120 HEIGHT=100>
</applet>
</body>
</html>
No.2ベストアンサー
- 回答日時:
少し調べてみましたが、
バグとしてフォーラムの方に報告されていますね。
HTMLパーサを利用するコンポネントで今回の現象が発生している様です。
現象の解消方法ですが、上記アプレットのソース(test.java)の
public void init() {
の直後に
new javax.swing.text.html.parser.ParserDelegator();
を挿入してください。
public void init() {
new javax.swing.text.html.parser.ParserDelegator();
の様にすればリロードしてもボタンの内容が表示される事を確認しました。
確認環境:XP, JDK1.6.0_24, JRE1.6.0_24, IE8
ただ、拾い読みした程度の措置なので、
場当たり的な対応になっていると思います。
根本解決では無いので、TODOを残しつつバグフィックスを待った方が良いでしょうね。
それまではこのおまじないと付き合っていく事になりそうです。
後、参考にした報告記事は参考URLに貼っておきます。
参考URL:http://bugs.sun.com/bugdatabase/view_bug.do?bug_ …
回答ありがとうございます。
JREのバージョン等も疑ってみましたが
バグDBの調査が甘かったようです。
載せていただいた
new javax.swing.text.html.parser.ParserDelegator();
をinit直後に追加し、コンパイルを行ったソースで
リロード後もボタン名が表示されることをこちら側でも確認できました。
本当にありがとうございました。
No.1
- 回答日時:
JApplet#init() 以外にも、
JApplet#destroy()、JApplet#start()、JApplet#stop()
も実装してみては?
JApplet#start()、JApplet#stop()辺りが、呼び出されているかもしらん。
確かにinit()しかソースにはないので
start()、stop()メソッドを追加し、コンポーネントの後処理(初期化)などを加えましたが
状態は改善しませんでした。
やはり、No.2で回答をいただいた内容の通り、JREのバグのようで
対処を行うと状態は改善されるようになりました。
回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript 入力フォームの javascript で メールアドレスの正規チェックをを行い、ボタンをクリックして 2 2022/04/27 16:06
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS 下にスクロールしても、追従するボタンのコードを書いたのですが、ボタンの中の画像が半分しか表示されない 1 2022/04/16 21:31
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- Java java 入力 3 4 3 出力 ABC DEFG HIJ このようなプログラムの書き方を教えてくだ 2 2022/07/15 14:18
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「例外 *** は対応する try 文...
-
<forEach> 内で供給された "ite...
-
Selenium IDEでexportしたコー...
-
文字列を数式に
-
【Java】エラーの意味・直し方
-
importするには java.io.*; imp...
-
createImage()を使い コンパイル
-
BufferedReaderなどについて
-
生年月日と今日の日付から年齢...
-
eclipseに記述したjavaファイル...
-
javaで質問です。 文字列2023/2...
-
[JAVA]try 内の変数を外で!?
-
C言語のポインターに関する警告
-
応用情報技術者試験の令和元年...
-
System.err. printlnとSystem.o...
-
ダブルクォーテーションのrepla...
-
JSPやサーブレットでSystem.out...
-
JSP/Servletのパラメータの受け...
-
ループ処理の際、最後だけ","を...
-
JavaScriptでcgiの戻り値を受け...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
干支の計算で。。。
-
Selenium IDEでexportしたコー...
-
Javaを使ってデジタル時計を作...
-
ColabでのPytorchのエラー
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
ファイル名を動的に生成したい
-
文字列を数式に
-
<forEach> 内で供給された "ite...
-
Javaからストアド実行(配列項目)
-
シャットダウンフックが呼ばれない
-
ActionForm form にnullが入っ...
-
setAttribute(String, int)は適...
-
(急募)JavaカレンダーをGUI可に...
-
文字サイズが可変のラベル
-
python OpenPyXLを使って出力結...
-
Java での グローバルIP取得
-
データの外挿について
おすすめ情報