どうしてもバグければ JPopupMenu#setLightWeightPopupEnabled を false にしてみる手も
バグ-ける
その活用形はおかしい
バグ-かろう
バグ-かった
バグ-くない
バグ-い
バグ-ければ
955 :
948:2008/02/09(土) 13:01:03
昨日、速攻、JLayeredPane 組み入れました。
気がついたのは、
より上位の Layer のコンポーネントが、より下位のコンポーネントを
完全に覆い隠すと(感覚的にいうと lower.getBounds() < upper.getBounds())
のとき下位のコンポーネントが描画されない(消える)
つーことがありました。
理屈としては、そのほうが、高速化が図れるのかもしれないけど、
上位の矩形のイメージが透明化されてるときちょっと困るんだけどなぁ。
>>955 上位レイヤのコンポーネントでsetOpaque(false)でどう?
setOpaque(false) してる?
958 :
948:2008/02/09(土) 15:38:21
>>956,957
レス、どうもです。
setOpaque() してると思うんですが、今日は、職場でないので
確認できないっす。火曜日にチェックします!
みなさんは休出っすか?
つーか自宅にPCないんか
961 :
945:2008/02/10(日) 03:09:13
おいおい、会社で趣味プログラミングかよw
それはともかく、
>>952さんありがとうございます。
ポップアップでまくりですよ。
そして、実験の報告。
>・JLabelに文字を表示させた場合
結果:×
レイヤードペインに文字ばっかりのJLabelを乗せてみた。
文字の後ろにメニューがでた。文字の隙間からメニューが見えてるw
マウス動かすと文字の前に来るあたりの挙動は一緒。
>・普通にコンテンツペインにJLabelを置いた場合
結果:○
当たり前か。
現在TransferHandlerを用いてJTreeにコピーアンドペーストの機能を付加しています。
同様のアクションをJPopupMenuにも加えたいのですが、どのようにすればよいでしょうか?
CTRL C, CTRL Vではうまくいくのですが、JPopupMenuからアクションを行うと、ソースが変わってしまいだめなようなのです。
TransferHandlerのcopyのアクションのコードを見てみると、アクションソースがJComponentのインスタンスでなければ弾いているのが原因のようです。
そこで
// a:TransferHandlerのアクション
private Action createAnotherSourceAction(final Action a,final Object src){
return new AbstractAction(){
public void actionPerformed(ActionEvent e) {
e.setSource(src);
a.actionPerformed(e);
}
};
}
こんな感じで新たに生成してやるとうまくいくのですが、わざわざ作り直すのは抵抗があって・・・
何か打開策がありましたらご教授ください。
>>962 アクションが操作対象となるJTreeのインスタンスを持てばいいだけじゃないのか?
964 :
962:2008/02/15(金) 09:33:09
聞いておきながら遅くなってしまってすみません。
JComponentのインスタンスでなければ弾いているので、そもそもアクションまで起こっていないんです。
CopyActionくらい自分で実装して、
>>963さんのおっしゃるように対応したコンポーネントのインスタンスを持たせていた方がいいかもしれないですね。
ありがとうございました。
例えばリストにTransferHandlerを設定するとき、COPYなのかMOVEなのかCUTなのか判定させたいときどのようにすればよいのでしょうか?
それを実装するコンポーネントでどのようなアクションを取ったかを調べられれば問題ないのですが、それがMouse系のリスナーではスマートに調べられなくて困っています。
教えください。
勘違いしていました。
何十回か氏んできます。
GUIのデザイナはなかなか決定的なものがないようなのですが、
メジャーどころだとNetbeans付属のものやVisual Editorがありますよね。
ほかにもJformDesignerや、jvilderなどがあるようです。
みなさん、GUI開発にはどんなツールをお使いですか?
テキストエディタで手書きしてまつ・・・
jiglooがなかなかおすすめ。
慣れないうちは思うようにデザインできないけど慣れたらかなり使いやすいかも
私はVisual Editor。でも、ちょっとコンポーネント置いただけですぐ
1000行ぐらいいっちゃうのがちょっとアレですが。
jiglooは冗長にならないように書けます?
Visual EditorってGroupLayoutサポートしてましたっけ?
あれ使えばそんなに冗長にはならないですよ
個人的に一つ一つのコンポーネントのプロパティ設定で勝手にブロックで囲んでくれてるのが見やすくて好きです。
残念、Visual EditorにはGroupLayoutのサポートはまだないみたいです。
他のデザイナを試してみることにしましょう。Jiglooか、もうNetbeansかな。
EclipseのプラグインでWindowBuilderというのもこれに対応しているようですが、
日本で使ってる人があまりいなさそう・・・
ソースコード生成するんじゃなくてXAML式に
書けるGUIデザイナが欲しすぎる。
リファクタリングとかソースとの動機が取れなくなりそうだ
一般ブラウザ並みに JTextPane 強化して HTML ベースで GUI 組めるようにしたほうが
何かと合理的。
それはねーよ
細かいイベント等制御するためのSwingなんじゃねーか
HTMLベースでいいのならWEBアプリにするだろ
onmouseover などからイベントリスナ呼びゃいい話でしょ。必要なら追加すりゃいいし。
Web 開発の資産やスキル転用できるし、単純にブラウザコンポーネントとしても転用も可能。
まじめに考えてるわけではないのでカスタムコンポーネントの追加方法なんか考慮する
必要はあるが、そんな頭から否定されるほど悪い話ではないと思うが。
そんなの全く考えたことなかったから結構新鮮だわw
まぁ今の環境で満足だし、そこまで外部化してしまわなくてもいい気もするなぁー
GUIコンポーネントは宣言的に置くようにしてロジックは別にしたいってことでしょ
JavaFXがやろうとしてるんじゃないかな
ただXMLベースじゃないみたいだけど
そこまでWeb開発の資産やスキルを転用したいのなら、
スタンドアロンアプリでTomcat動して、UIはブラウザ、ってすればいいんじゃね?
アプレットや Web Start とかで使えねんじゃ。
XULを再発明したいのか
JSP や JDBC を再発明と言う?
別に XUL の Java 実装でも良いけど。
あ、いやこの話はそろそろやめる。
>>977 scriptのIDEサポートとかJavaのほかに別言語を覚えないといけないとか
そもそもブラウザによって違いがあるというのに・・・
ボタンクリック等のイベント程度でいいのなら別にかまわんとおもうけど
XMLは長ったらしすぎるので
すっきりとロジックと融合したGUIが宣言ベースでかけるというのが
売りなのでしょう。
ただ、いまいち方向性が分からないというのは・・・。
987 :
デフォルトの名無しさん:2008/02/24(日) 21:57:42
SWTスレとマルチで失礼します。
クライアント側のJavaで、RTF文章を何らかの形で表示(編集できなくてもOKです)させたいのですが、
JEditorPaneはあまりにも古すぎてJREに同梱されているLICENSE_ja.rtfすらマトモに読めない、という
情けないことになっています。他に何らかの代替/回避方法はないのでしょうか?
RTFをパースして使えるコンポーネントに流し込むところを自作する
うふふw鬼ww
990 :
987:2008/02/26(火) 10:29:05
>>988 >>989 いや、マジメな話、(ライブラリ等を使うかは別にして)今のところ、ググって引っかかるのはそのアプローチしかないみたい。
もう少し簡単な方法がないかと思って質問してみたのですがね(笑
SWT なら OLE でハメ込めるんじゃなかったっけ?
いまどきそれだけのためにSWT使うってのもなぁ
非常に抽象的な質問で申し訳ないのですが、スクロール可能なコンポーネントを作る際、Scrollableを実装するだけではだめなのでしょうか?
単純に実装してJScrollPaneにのっけてやるだけでは、実装したメソッドのうち、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の二つは呼び出されるのですが、肝心の
getPreferredScrollableViewportSize()
が呼び出されないのです。
どうしてでしょうか?
994 :
デフォルトの名無しさん:2008/02/28(木) 03:04:21
みんなBoxLayoutはつかってないのか?
ほとんどこれ1本でやってるんだけど。
995 :
デフォルトの名無しさん:2008/02/28(木) 03:21:59
> 993
getPreferredSize()はどう実装している?
1レス埋めて去る。
ところで次スレは上の見すったやつ使うの?
せっかくスレタイ変えたのに
っと、気づいたらもう999かよ
1000 :
デフォルトの名無しさん:2008/03/01(土) 19:25:58
上野でいいじゃん
細かいこと気にするなよ
1001 :
1001:
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。