Java低速GUI Swing 8

このエントリーをはてなブックマークに追加
952943:2009/12/13(日) 19:52:45
一応報告です

KeyboardFocusManagerで調べたら、mainFrameにフォーカスが当たっていたので、
mainPanelではなく、getApplication().getMainFrame()へaddKeyListenerしたら
キーが取得できたっす。

ヒントくれた皆さんありがとー
953デフォルトの名無しさん:2009/12/13(日) 20:01:57
それはmainPanel.addKeyListenerじゃ取れないだろうなあ。
954デフォルトの名無しさん:2009/12/13(日) 23:01:41
KeyStrokeとInputMapのWHEN_IN_FOCUSED_WINDOWじゃダメなの?
955デフォルトの名無しさん:2009/12/14(月) 13:54:32
漠然と質問ですが、Swingを使いやすくした補助ライブラリみたいなユーティリティクラス群のライブラリってありますか?
apacheのcommonsみたいなやつ
956デフォルトの名無しさん:2009/12/14(月) 14:06:43
ラップして使い勝手あげる方針がApp Framework。
機能強化して使い勝手あげるのがSwingXとかSwing lab製ライブラリ群。
957デフォルトの名無しさん:2009/12/14(月) 15:12:05
>>956
GUI作成支援のアプリケーションを作りたいのですが、
D&Dで移動したり、部品のリサイズ、追加、削除、この辺をやる上で使い勝手がいいライブラリはどれになるでしょうか?
958デフォルトの名無しさん:2009/12/14(月) 15:13:13
SwingWorkerって1.6で登場ってことで、1.5の場合バックグラウンド処理はどうすればよいでしょうか?
ちなみに、Swingって1.6で大幅に使いやすくなったのでしょうか?
959デフォルトの名無しさん:2009/12/14(月) 16:47:08
>>958
フツーにThread立ち上げればいいんじゃない?

ディスパッチスレッドとの競合管理とかめんどいんでね、もーね、その間GlassPane使ってGUI操作禁止にしてる。
960デフォルトの名無しさん:2009/12/14(月) 16:51:14
なにそれ?
その間は入力できないの?w
961デフォルトの名無しさん:2009/12/14(月) 17:08:19
>>960
うんw

と思ったけどヘビータスクの要所要所でEventQueue.invokeWait()でGUI操作してたわ。
SwingWorkerと大して変わらんね。参考にならなくてすまん。
962デフォルトの名無しさん:2009/12/14(月) 17:29:03
5.0で使えるSwingWorkerがあるでしょ
963デフォルトの名無しさん:2009/12/14(月) 17:40:28
>>962
SwingWorkerってクラスはないですけど、代替えクラスがあるんですかね?
964デフォルトの名無しさん:2009/12/14(月) 17:41:25
javaってchdirみたいなカレントディレクトリ移動できないんですか?
965デフォルトの名無しさん:2009/12/14(月) 18:28:25
>>963
jdesktop SwingWorkerでぐぐれ
966デフォルトの名無しさん:2009/12/14(月) 23:08:42
SwingWorkerくらい作ればいいじゃん
967デフォルトの名無しさん:2009/12/15(火) 00:32:55
>>966
だったらあなたが作ってくださいよ。
968デフォルトの名無しさん:2009/12/15(火) 01:09:08
http://terai.xrea.jp/Swing/AnimeIcon.html
とりあえずここのソース落とすと中にSwingWorkerらしきものが入ってる

JDKのとは少し違う
969デフォルトの名無しさん:2009/12/15(火) 14:02:39
いまオリジナルのSwingWorkerホストしてるのどこだっけ?
970デフォルトの名無しさん:2009/12/16(水) 12:14:21
何かそんな適当に拾って来たのを、自分でメンテするのは嫌だな。
ちゃんと誰かがメンテしてるのは無いの?
971デフォルトの名無しさん:2009/12/16(水) 12:39:54
無名クラスとinvokeAndWaitでええやん。
凝ったことすればSwingWorkerの再発明になりそうだが
それもまたよし
972デフォルトの名無しさん:2009/12/16(水) 12:54:51
>>964
スレチなんでさくっと。

カレントディレクトリ移動の目的はな〜に?
プラットフォームにもよるけど、VMプロセスのカレントディレクトリを移動しても
たぶんFile#getAbsoluteFile()とかには反映されないよ。

システムプロパティ"user.dir"を変更しとくのじゃだめ?
973デフォルトの名無しさん:2009/12/16(水) 13:20:13
javaにカレントディレクトリの概念はないいんじゃなかったっけ
974デフォルトの名無しさん:2009/12/16(水) 17:02:26
1.5ではバックグラウンド処理の機構が用意されていないのでしょうか?
975デフォルトの名無しさん:2009/12/16(水) 17:16:55
>>972
ファイルの相対パスアクセスを気にしていたので、user.dirですべて解決しました。
ありがとうございます。
976デフォルトの名無しさん:2009/12/16(水) 17:39:33
>>974
無いから追加されたんでしょう
すでにあるのなら新しく作る意味ないし
977デフォルトの名無しさん:2009/12/16(水) 17:59:02
>>972
-Duser.dir=C:\tmp\で指定したのですが反映されませんでした。
プログラム内でセットしないといけないのですかね?
978デフォルトの名無しさん:2009/12/16(水) 18:03:07
>>977
あっ違う。設定はできているけど、URLクラスのfileプロトコルが無視しやがる…
new URL("file:./xxx.ini")にすると、起動ディレクトリからの相対パスだ。バグかこれ?
979デフォルトの名無しさん:2009/12/16(水) 18:29:55
バグってるのはおまえWWW
980デフォルトの名無しさん:2009/12/16(水) 18:40:31
>>978
確かになるわ
981デフォルトの名無しさん:2009/12/16(水) 23:11:08
>>978
あぁ...
982デフォルトの名無しさん:2009/12/16(水) 23:15:26
>>978
だからー、もう new File("./xxx.ini").toURI().toURL() でええやん。
後は質問スレで。
983デフォルトの名無しさん:2009/12/16(水) 23:17:36
>>978
工夫しな
984デフォルトの名無しさん:2009/12/17(木) 10:23:24
>>983
アプレット通信でRMI使ってて、RMIの-Djava.rmi.server.codebaseがURL指定。
RMIモジュールをパッケージ化したので、フルパスでなんか書きたくない。
そこで相対だと思い質問しました。
工夫するのはURLでパラメータを受け取る方で、
せっかくURLというものでアクセス方法統一したなら、
工夫しないとうまく取れないというのはいかがかなと思った次第です。
985デフォルトの名無しさん:2009/12/17(木) 23:18:33
javaってピクセル単位でα値を持った半透明のウィンドウを作れましたっけ?
Windowsのレイヤードウィンドウと同等のことがしたいのです。
986デフォルトの名無しさん:2009/12/17(木) 23:36:01
Sunのjdk6u10以降ならcom.sun.awt.AWTUtilities使えるはず
987デフォルトの名無しさん:2009/12/18(金) 00:13:11
>>986
ありがとう。でもこれじゃピクセルごとのαはできそうにないですね。
988デフォルトの名無しさん:2009/12/18(金) 00:31:50
Path2Dで自分で定義すりゃいい
989デフォルトの名無しさん:2009/12/18(金) 01:00:00
?マウスについてる半影みたいなのをPath2Dでできますか?
990デフォルトの名無しさん:2009/12/18(金) 01:09:18
JFrameのRootPaneだかなんかのpaintComponentをオーバーライドして何もしないようにすると透けるとかそういうのなかったっけ
991デフォルトの名無しさん:2009/12/18(金) 02:02:10
import java.awt.*;
import javax.swing.*;
import com.sun.awt.AWTUtilities;
public class Hoge extends JWindow {
float[] fractions = new float[] { 0, 0.97f,0.98f, 0.99f, 1 };
Color[] colors = new Color[] { Color.WHITE, new Color(1, 1, 1, 0.001f), new Color(1,0,0,0.001f), Color.RED, new Color(1,0,0,0.001f) };
Paint paint = new RadialGradientPaint(128f, 128f, 128f, fractions, colors);

Hoge() {
setSize(256, 256);
AWTUtilities.setWindowOpaque(this, false);
setVisible(true);
}
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setPaint(paint);
g2.fillRect(0, 0, 256, 256);
}
public static void main(String[] args) throws InterruptedException {
SwingUtilities.invokeLater(new Runnable(){
public void run() {new Hoge();}
});
Thread.sleep(5000);
System.exit(0);
}
}
992デフォルトの名無しさん:2009/12/18(金) 21:30:56
マウスについてる半影が理解できん。ポインタの影のことか?
993デフォルトの名無しさん:2009/12/18(金) 21:41:42
理解できんとか、おまえアホだろ
それ以外あるのか?W
994デフォルトの名無しさん:2009/12/18(金) 22:00:08
995デフォルトの名無しさん:2009/12/18(金) 22:40:50
じすれ
996デフォルトの名無しさん:2009/12/18(金) 23:03:43
Java7のリリースが延びた隙にSwing Application Frameworkねじこんでほしいな
997デフォルトの名無しさん:2009/12/18(金) 23:24:11
それそれー
ゴスリンがシングルトンの設計くそって言ったせいで取りやめになったんだっけか?
どうせシンプルなアプリケーションにしか使われないんだしいいじゃないかと思うんだけどなぁ
998デフォルトの名無しさん:2009/12/18(金) 23:29:49
swing out
999デフォルトの名無しさん:2009/12/18(金) 23:34:28
?
1000デフォルトの名無しさん:2009/12/18(金) 23:40:28
JLabelがクリックされたとき、JLabelではなく親のコンポーネントがクリックされたことにしたいのですが
どういしたらいいでしょうか?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。