タグ:Swing ( 4 ) タグの人気記事

JScrollPaneのスクロール

JScrollPane jsp

を定義して、思いっきり縦長のスクロールリストを表示する。
一番下に追加して再描画する際、自動でスクロールリストを最下部に移動したい。

JScrollBarクラスに、setValue()で値をセットするメソッドがあるが、
これではスクロールしないというのは周知の事実:-P

でも、どうしても一番下にスクロールしたい…という場合は、Viewportを設定するそうだ。

jsp.getViewport().scrollRectToVisible(new Rectangle(0, Integer.MAX_VALUE - 1, 1, 1));

これが、汎用で使えるコードである。

…と、ここまでがGoogle先生が教えてくれた内容なのだが、実際に使ってみると、これにも不具合がある。

スクロールリストが既に一番下にある状態で、このViewportを設定する(例えば連続で2回呼ぶ)と、一番上に戻ってしまうのだ!

なんということでしょう。

というわけで、確実に自動で一番下にするには、まず一番上に戻すのがいいだろう。

jsp.getVerticalScrollBar().setValue(0);
jsp.listPane.getViewport().scrollRectToVisible(new Rectangle(0, Integer.MAX_VALUE - 1, 1, 1));

これで今のところはOKだった。
[PR]
by miries | 2013-10-05 00:43 | ゲームを作る

Java Swingでブラウザ表示。(コンパイル)

前回、JDICPlusをダウンロードできるようにしておいたが、
解凍してできたファイルの中で、実際にコンパイル・実行に必要なファイルは、
libディレクトリ以下の3ディレクトリ&3ファイル。



lib/bin/
lib/lib/
lib/windows/
lib/beansbinding-1.2.1.jar
lib/JDICplus.jar
lib/JDICplus_native_applet.jar


コンパイル・実行時に直接パスを通しておく必要があるのは、
jarファイルの3つ。

コンパイル:
javac -cp lib\JDICplus_native_applet.jar;lib\JDICplus.jar;lib\beansbinding-1.2.1.jar; Hoge.java

実行:
java -cp lib\JDICplus_native_applet.jar;lib\JDICplus.jar;lib\beansbinding-1.2.1.jar; Hoge

私は、コマンドライン派なので、↑こんな batを作って処理してます。
※EclipseとかNetBeansを使っている人は、適当にアレンジしてね。

コマンドラインのツールとしては、以下のバッチがとっても便利。


%SystemRoot%\system32\cmd.exe /K "cd %~dp0"

echo ">" %0


そのディレクトリで、コマンドプロンプトを起動できるという、
Dos Prompt Here のバッチ版です。

バッチファイルを置いておく必要があるけど、
個別に必要な処理も追加できるし、
プログラムをインストール必要がないのが良いよね。

10年ほど前の古いPC使ってるので、Eclipseなどのツールよりも、
プロンプトの方が速くて使いやすいのだ…。
[PR]
by miries | 2011-05-01 21:33 | ゲームを作る

あれあれ?JDICplusはどこへ行った?

JavaSwingでブラウザ表示について、ちょこちょこと書いていたら、
そこそこ検索で来てくれている人が居る。

私は、JDICPlusが一番良いと思うので、
それについてもう少し詳しく書こうと思ったら…。

JDICPlusがどこにもないよ。
検索で引っかかる java.net は証明書エラーとでて、
それでも見に行ったら、 Page not found だし。

フォーラムがプロジェクト形式になってて、JOGLはあるのに、
JDICはなくなってる…。

そういや、久しぶりにJOGLのプログラムを見ようとしたら、
コンパイルエラーが出るようになってるぞ。
↑まぁこれは私の環境のせいだろうが。

うーむ、何があったんだ。
JDICよりもっと良い奴がでたのか、セキュリティにでも問題があったのか。
そういうのなら、それなりに記事がありそうなんだがなぁ。
ひっそりと消えている感じ。

というわけで、自分が捕獲している分をダウンロードできるようにしておいた。

JDICplus-0.2.2-bin-win32.zip

必要な方は、どうぞ。
持っていった方、JDICについてなど、コメントお願いします…。
[PR]
by miries | 2011-04-27 10:31 | ゲームを作る

Java Swingでブラウザを表示する。

今のJavaってすごいから、簡単にできるんじゃね?
と思っていたが、大間違いだった。

色々やっている人はいるようなのだが、私の状況で使えるものがほとんどない。
というわけで、同じような状況の人のため&備忘録。

-------------------------------
まず、JDIC。

import org.jdesktop.jdic.browser.WebBrowser;

こいつを使う。
表示自体はいたって簡単。

WebBrowser browser;
browser = new WebBrowser(true);
add(browser.asComponent());

基本的にはこれだけだ。(レイアウトなどは省略してある)

●長所
・URLを指定して表示、ソースを指定して表示、JavaScriptを実行可能。

●短所
・ネイティブのブラウザを使用する。IEがデフォルトになっている場合は問題ないが、
 FireFoxがデフォルトの場合、エラーで動作しなかった。
・ソースの指定やJavaScriptの指定は、不安定である(エラーが出たり出なかったり、原因不明)

評価)
デフォルトブラウザに影響される点が使えなかった。
また、環境によってはIEでも表示できない場合があるようだ。
-------------------------------

次は、mozswing。

import org.mozilla.browser.*;

これだ。

MozillaPanel webPanel;
System.setProperty("mozswing.xulrunner.home", "ネイティブへのパス");
webPanel = new MozillaPanel();
add(webPanel);

これもいたって簡単だ。
そして、最強だと思っていた。

●長所
・デフォルトブラウザによらない。
・タスクバーをデフォルトで実装している

●短所
・ネイティブファイルが多い(200個以上)
・「ネイティブへのパス」の部分に日本語があるとエラーになる。
 つまり、日本語ディレクトリ(デスクトップ等)に置けない。

評価)
この短所は痛かった!
完成目前で、別の環境でテストしようと思ったら動かない。
結局、ネイティブである、javaxpcomglue.dll にバグがあるらしい、
というところまでしか分からず、断念。

-------------------------------
3つめ。JDICplus。

import org.jdic.web.*;


BrTabbed brMain;
brMain = new BrTabbed();
brMain.setURL("http://java.com");

これでいける。
しかし、APIリファレンスが見当たらない。
仕方なく、付いていたデモプログラムを解析。

タブ式がいやだったので、さらに調べて

brMain = new BrComponent();

を発見。

●長所
・タブができるんだね!

●短所
・現在、調査中


っていうか、もう問題は起こらないでほしいんだけど。
[PR]
by miries | 2011-01-13 16:58 | ゲームを作る