Java低速GUI Swing 9

このエントリーをはてなブックマークに追加
1デフォルトの名無しさん
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 8
http://pc12.2ch.net/test/read.cgi/tech/1227234261/
Java低速GUI Swing 7
http://pc11.2ch.net/test/read.cgi/tech/1204155623/
Java低速GUI Swing 6
http://pc11.2ch.net/test/read.cgi/tech/1190807478/
Java低速GUI Swing 5
http://pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
2デフォルトの名無しさん:2009/12/19(土) 23:14:24
VisualStudioのようなポトペタ開発環境がほしい!!
NetBeans
http://www.netbeans.org/index_ja.html
Eclipse+VisualEditorPlugin
http://www.eclipse.org/
http://www.eclipse.org/vep/
Jigloo
http://cloudgarden.com/jigloo/index.html
3デフォルトの名無しさん:2009/12/19(土) 23:15:08
AWTもターゲットに入ってていいんだよね?

Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど
  混ぜちゃ駄目なんですか・・・・?
A.
 今まででは、「駄目」というのが正解です。
 が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。
 正式リリースがされるまで、情報の錯綜があって混乱すると思いますが
 普通の人にとっては「まだ駄目」という状況だと思ってください。

Q. Nimbusって何よ。
A.
 次期Swingの標準となるとされているLAFです。
 元々は、SUNのGnome環境のテーマに使われていた見た目を移植したものになります。
 実装にはXMLベースでLAFを定義できるSynthLookAndFeel を利用しています。
 jdk6の開発版で試す事ができます。

Q. こんなプログラムを作れって言われたんですが・・・
A.
 宿題スレへどうぞ。

Q. なんでスレタイに低速って入ってるの?
A.
 まだまだ速くなるってことさ。
4デフォルトの名無しさん:2009/12/20(日) 00:19:25
スレ立て乙

Nimbus って、今でも JDK でしか使えないの?
うちの環境では JRE でも Nimbus が使えるけど。
JDK もインストールしてあるから、
JRE が JDK 付属の Nimbus を読み込んでる?
5デフォルトの名無しさん:2009/12/20(日) 00:40:25
Nimbusサポートは6u10以降だから、
前スレ開始とほぼ同じ時期の登場だったかな。

次スレで直せばOKじゃない?
6デフォルトの名無しさん:2009/12/20(日) 01:33:10
XAML使えるようにならないかなあ
7デフォルトの名無しさん:2009/12/20(日) 12:23:00
>>6
はあ?
8デフォルトの名無しさん:2009/12/20(日) 13:27:31
このスレpart10だからな。
前1がSwing/AWTスレ8をディスったからテンプレにないだけで。
9デフォルトの名無しさん:2009/12/20(日) 13:36:32
>>8
Swing/AWTスレ8のアドレス希望
10デフォルトの名無しさん:2009/12/20(日) 14:00:26
断る
11デフォルトの名無しさん:2009/12/20(日) 16:00:39
>>8
Disられてるのは、↓のスレタイじゃないの?
> Java低速GUI Swing 6
> http://pc11.2ch.net/test/read.cgi/tech/1190807478/
12デフォルトの名無しさん:2009/12/21(月) 10:52:10
jtableでソート出きるように変更したら、うまく背景色が表示できなくなりました
どなたか、教えてください

//2列目以外はすべて、数字でソートする。
model = new DefaultTableModel(columnName, 0) {
 @Override
 public Class getColumnClass(int columnIndex) {
  if(columnIndex == 1) return String.class;
   else return Integer.class;
  }
}

//奇数行は白、偶数行は水色で背景を塗りつぶす。
private static class TestTableCellRenderer extends DefaultTableCellRenderer {

private static final Color BGCOLOR = new Color(135, 206, 250);

 @Override
 public Component getTableCellRendererComponent(JTable tb,
  Object val,boolean isSelected, boolean hasFocus,int r,int c){

   setBackground(r % 2 == 0 ? Color.white : BGCOLOR);

   return super.getTableCellRendererComponent(tb,val, isSelected,hasFocus,r,c);
  }
}
13デフォルトの名無しさん:2009/12/21(月) 12:48:48
今は無理
1412:2009/12/21(月) 14:38:45
>>13
どうしようもないってこと?
15デフォルトの名無しさん:2009/12/21(月) 20:07:01
>12
エスパーすると、レンダラーの設定をString.classのカラムに対してやってない?
table.setDefaultRenderer(Integer.class, new TestTableCellRenderer());
にしないとダメだよ
16デフォルトの名無しさん:2009/12/21(月) 22:17:54
swingについて質問
コンポーネントAをコンポーネントBにadd()し、コンポーネントCにもコンポーネントAをadd()します。
その後にBとCを表示してみると、Bがうまく表示されません。
どのようにしたら、B、CどちらにもAを表示させる事ができますか?

JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
panel1.add(label);
panel2.add(label);
frame.add(panel1, BorderLayout.NORTH); ←表示されない
frame.add(panel2, BorderLayout.SOUTH);

17デフォルトの名無しさん:2009/12/21(月) 23:30:15
そもそも一つのコンポーネントを複数のコンテナに含めることができるのか?
18デフォルトの名無しさん:2009/12/21(月) 23:40:20
>>16
コンポーネントAがBに表示されずCにしか表示されないということであれば、
コンポーネントAを2つ生成(内容は同じだが別のオブジェクト)して、
一方をコンポーネントBに、もう一方をコンポーネントCにadd()するしかないかと。

JLabel label1 = new JLabel();
JLabel label2 = new JLabel();
JPanel panel1 = new JPanel();
JPanel panel2 = new JPanel();
panel1.add(label1);
panel2.add(label2);
frame.add(panel1, BorderLayout.NORTH);
frame.add(panel2, BorderLayout.SOUTH);
1916:2009/12/21(月) 23:57:13
画面のレイアウトが2種類あるのですが、ユーザに画面レイアウトを選ばせたいと考えています
ちなみに、レイアウトが替わっても表示するものは同じです

JPanel panel1 = new JPanel(); ← レイアウトA
JPanel panel2 = new JPanel(); ← レイアウトB
panel1.add(label); ←表示するもの
panel2.add(label);

>>18
表示する物が同じだから1つのインスタンスでどうにかしたい
と思いました
20デフォルトの名無しさん:2009/12/22(火) 02:58:29
>>19
CardLayout
2120:2009/12/22(火) 03:00:07
ごめん勘違い。

同じものを配置替えするという方法を取るところだろうね。
22デフォルトの名無しさん:2009/12/22(火) 04:01:20
ユーザーがレイアウトを選ぶたびに
BかCに add し直すしかないのでは
23デフォルトの名無しさん:2009/12/22(火) 04:21:44
同意
2416:2009/12/22(火) 10:14:08
やっぱり、add()し直すしかないですよね
実装する時に手を抜きたかったのですが、無理ですね
ありがとうございました
25デフォルトの名無しさん:2009/12/22(火) 11:19:57
ある画面実行中に、各Componentの登録済み全イベント処理クラスを知りたいのですが、
Component#getListeners(Class<T> listenerType)の中にあるリスナー群がすべてのイベントになるでしょうか?
つまりgetListeners(各イベントクラス)を10イベントリスナークラス分実行してとれたものを、
これ以外のイベント処理クラスは使用していません、と言いきれるものになるでしょうか?
26デフォルトの名無しさん:2009/12/22(火) 11:26:13
何をしたいかよくわからないんだが、とりあえず、10ってどこから出てきた数?
27デフォルトの名無しさん:2009/12/22(火) 15:52:07
>>26
Component#getListeners(Class<T> listenerType)の中で使われてゐたリスナークラスの種類です。
28デフォルトの名無しさん:2009/12/22(火) 15:59:48
事実上、リスナーってインタフェースだからな。
ActionListenerとMouseListenerどっちも実装してるクラスとかあっても、
ちっとも珍しい話ではない。

getListenersで得られたアクションリスナが、
実はマウスリスナでもありました、
というのは自前でinstanceof演算子で判定するしかないのでは。

とエスパー回答。何がしたいかわからんが、java.util.EventListenerProxyも
読んどいた方がいいような。
29デフォルトの名無しさん:2009/12/22(火) 18:07:29
>>27
あぁ、10の意味がわかった
その中に Button とかでよく見る ActionListener が無いのが不思議ではなかったか?
残念ながら Component#getListeners はサブクラスでオーバーライドされている
全部の一覧を得るのは無理じゃない?
30デフォルトの名無しさん:2009/12/22(火) 18:14:03
>>29
うーん。でもJButtonのgetListenersはオーバライドされていないんだよね…
31デフォルトの名無しさん:2009/12/22(火) 18:19:48
JComponentのオーバーライドが効いてる
JComponent以下はEventListenerListを使っててどんなリスナでも入る
32デフォルトの名無しさん:2009/12/22(火) 18:24:55
>>31
おお、すみません。見落としてました。
対象部品のgetListeners呼んでおけば各部品の全イベントが取れそうですね。
33デフォルトの名無しさん:2009/12/22(火) 19:52:37
教えて下さい
今SourceForgeでJavaMIDIMixer作ってるモノですが
MDIウィンドウを画面の下や右にピタッっと張り付ける
そんな事を実現するスタンダードな手順はありますでしょうか?
34デフォルトの名無しさん:2009/12/22(火) 22:10:19
>>33
MDIってことはJDesktopPaneとJInternalFrameか。

ドラッグして外周に近づいたら吸い付くってやつなら
ttp://terai.xrea.jp/Swing/MagneticFrame.html
こんなの?
35デフォルトの名無しさん:2009/12/22(火) 22:50:44
ありがとうございます^^
これはすばらしいですね
36デフォルトの名無しさん:2009/12/22(火) 23:51:54
ドッカブルでドラッガブルなGUIならDnDAPI使って自前で作ったがjava.netの何処かでみたぞ。
37デフォルトの名無しさん:2009/12/23(水) 22:55:08
JScrollPaneにJTable、JTextPaneなどを追加すると、最小限(現在選択している場所)の描写しかしませんが
どうやって、実装してるんですか?ヒントをください
38デフォルトの名無しさん:2009/12/23(水) 22:57:33
InvalidateRectのこと?
3937:2009/12/23(水) 23:05:40
JPanelあたりを継承して、それをJScrollPaneに追加したいな〜と思ったので
40デフォルトの名無しさん:2009/12/23(水) 23:14:23
Graphics#getClipBounds
41デフォルトの名無しさん:2009/12/23(水) 23:20:25
>>40
JTableのソースを読むと、そんな低レベルのメソッド使ってませんよ
42デフォルトの名無しさん:2009/12/23(水) 23:23:44
そりゃ描くのはJTable自身じゃないからな
BasicTableUIみてみろ
43デフォルトの名無しさん:2009/12/23(水) 23:26:39
JTableのソースなんて読まなくていいの
ためしに、JPanelにボタンとかリストボックス配置して、
JScrollPaneでそのJPanelかこってみなさいよ

Graphics2Dとかが自動的に処理してくれるから、ボタンもちゃんと押せるし、ほかの部分の描写かからないし
画像を張りたいなら、スクロール関係なしで、グラフィックを描写するPanelを設計して、

JScrollPane -> JPanel -> Layout -> グラフィックPanelクラス

の順番でつなげればいいだけ

グラフィックパネルの中ではそういうの必要ですけどね、

JTableはJTableUIのソースを見る必要がありそうですね

がんばってね!
4437:2009/12/23(水) 23:32:06
>>42-43
ひとまず、調べてみる
ありがとう
45デフォルトの名無しさん:2009/12/24(木) 00:01:46
まてまて。ここは JViewport の setScrollMode() の賢さを讃えるところじゃないのか?
46デフォルトの名無しさん:2009/12/24(木) 00:33:36
JViewPortのJDKドキュメントの「高速スクロールアルゴリズム」解説とやらに
知りたいことは全部書かれてる気もするが
47デフォルトの名無しさん:2009/12/24(木) 13:22:51
セルの話かと思ったらテーブル全体の話か
48デフォルトの名無しさん:2009/12/24(木) 13:53:54
D&Dで部品の配置を変えるGUIツール的なものを作りました。
自由に配置移動やボタンの追加等行って、それを保存呼び出ししたいと考えてますが、
その場合余計なことをせず、TOPのフレームをシリアライズANDデシリアライズで実現できそうでしょうか?
ComponentがSerializableなので、シリアライズ保存は想定されているんですよね?
49デフォルトの名無しさん:2009/12/24(木) 14:47:00
一応想定されてるんですが、バージョン間の互換性は保証されていません
XMLEncoder/XMLDecoderの方がいいかもしれません
50デフォルトの名無しさん:2009/12/24(木) 15:36:00
互換性って、JDKのバージョンでなく対象クラスのバージョンですかね?
51デフォルトの名無しさん:2009/12/24(木) 16:00:07
Swing各クラスのJavadocに下記の文がいちいち書いてある

> 警告: このクラスの直列化されたオブジェクトは、今後の Swing リリースと互換ではなくなる予定です。
52デフォルトの名無しさん:2009/12/24(木) 20:16:59
JButtonでボタンをクリックすると、あらかじめ登録しておいた内容を実行しますが
だれが、あらかじめ登録していた内容を呼び出すのですか?
53デフォルトの名無しさん:2009/12/24(木) 20:41:17
>>52
どういう内容が知りたいのか図りかねるが
取り敢えずEDTと答えておこう。
54デフォルトの名無しさん:2009/12/24(木) 20:41:56
>>52
JButtonの中の人
厳密にいえばAbstractButton#fireActionPerformed
その呼び元はDefaultButtonModel#setPressed
ButtonUIの中の人がマウスリスナかなんかを使ってマウスの動きを見てsetPressedを呼ぶ
5552:2009/12/24(木) 20:46:07
>>53
単純に誰が呼び出しているか知りたいだけで、
とくに意味はありません
thx
56デフォルトの名無しさん:2009/12/24(木) 21:43:01
IDEでプロファイラ動かすと、Swingアプリの見えないとこでうごめいている
小人さんスレッドがたくさん観察できるよ

※ コンソールからスレッドダンプでもおk
57デフォルトの名無しさん:2009/12/25(金) 01:41:34
イベントとかコールバックとか、
たしかに初めのうちは分かりにくい仕組みではあるよな
58デフォルトの名無しさん:2009/12/25(金) 11:53:30
各画面間の変数アクセスの最良の方法は何でしょう?
画面作成時のコンストラクタで親画面や操作したい画面を渡す?
画面をグローバル(public static)にする。

なんかstritsみたいにこれで行こうフレームワークはないですかね?
59デフォルトの名無しさん:2009/12/25(金) 13:00:35
MVCで設計を見直せばOKでは。
ControllerにViewとModelぶらさげて、
Viewから親画面と子画面をたどり
Modelから親データと子データをたどれば
画面間で変数アクセスできなくても無問題。

Webアプリとやらの「自称MVC」とはたぶん違うので注意。
60デフォルトの名無しさん:2009/12/25(金) 13:27:00
今のところこれで行こう的なフレームワークとかってないんですかね?
もしくはそんな動向の噂とか…
なるべく先をにらんだ設計にしたいもので
61デフォルトの名無しさん:2009/12/25(金) 13:42:32
ラベル、ボタン、チェックボックスなどをD&Dして表示位置を変更したいのですが、
JRE、サーとパーティのライブラリ問わずに、適した便利なクラス(マウスリスナー?)知っていたら教えてください。
62デフォルトの名無しさん:2009/12/25(金) 14:41:03
>>61
こんなん作ったけど、いまいちうまく動かん。
int x ;
int y;
boolean init = false;

public void mouseMoved(MouseEvent e) {

Component c = (Component)e.getSource();
if (!init) {
init = true;
x = e.getX();
y = e.getY();
return;
}

c.setLocation(c.getX() +(e.getX() - x), c.getY() +(e.getY() - y));
x = e.getX();
y = e.getY();
}
63デフォルトの名無しさん:2009/12/25(金) 17:39:53
アプレットでブラウザの×ボタンを押して終了したときに、そのイベントを拾うことっててきますでしょうか?
64デフォルトの名無しさん:2009/12/25(金) 19:01:25
  │A..  B
─┼───
.a │
.b │
Jtableの質問です
上記のような縦列表を作りたいのですがどうすれば良いのでしょうか
表の空欄には数値データを入れて計算等が出来るようにしたいと思っています
65デフォルトの名無しさん:2009/12/25(金) 19:16:09
>>63
destroy()メソッドが呼ばれたときに中でメッセージを表示したりは
できるけど、閉じるのを防ぐことは出来ないと思う。
66デフォルトの名無しさん:2009/12/26(土) 10:49:36
>>64
new JTable(3,3)
6764:2009/12/26(土) 12:04:16
説明不足で申し訳ありません
列ABにString[]、行abにString[][]を使って
JTable table = new JTable(String[][],String[])としたのですが、
String[][]を使ったために空セルにInt型のデータを入れられません
どうすれば列AB行abを残したまま空セルに数値データを入れられるのでしょうか
68デフォルトの名無しさん:2009/12/26(土) 12:08:11
String.valueOfで文字列化するというのは?
69デフォルトの名無しさん:2009/12/26(土) 12:54:57
表計算ソフトのようなテーブルを作るなら、
セルレンダラーやセルエディタを駆使しないと難しいよ。
7064:2009/12/26(土) 13:33:55
>>68
>>69
ひとまずチャレンジしてみます
ありがとうございます
71デフォルトの名無しさん:2009/12/26(土) 14:07:03
さがせばスプレッドシートのライブラリあるけど?
72デフォルトの名無しさん:2009/12/28(月) 12:39:08
JScrollPaneの中でJViewportがどの様に動いているか研究しているのですが、
スクロールバーをクリックした後に、JScrollPaneのどのメソッドが呼び出されているのかわかりません
どなたか教えてください
73デフォルトの名無しさん:2009/12/28(月) 15:56:07
スクロールバーをクリックすると、JScrollBarが持ってるBoundedRangeModelのsetValueが呼ばれる
それによってそのBoundedRangeModelに登録されたChangeListenerが起動する
BasicScrollPaneUIがここにChangeListenerを登録していて、その中でJViewport#setViewPositionを呼んで表示範囲を調節している
JScrollPaneはJViewportとJScrollBarとScrollPaneUIを管理しているだけ
74デフォルトの名無しさん:2009/12/29(火) 10:08:01
一般的なダイアログみたいに右下にボタン配置したいんだけど、どういった風にレイアウト組むのが自然?
7572:2009/12/29(火) 11:39:40
>>73
ありがとうございます
76デフォルトの名無しさん:2009/12/29(火) 11:48:24
tes
77デフォルトの名無しさん:2009/12/29(火) 16:12:26
BorderLayoutのPAGE_ENDに置いたBorderLayoutのLINE_ENDに置いたGridLayoutにボタンを置くのが俺流
78デフォルトの名無しさん:2009/12/29(火) 16:35:53
GridBagConstraints.SOUTHEAST でええやん
79デフォルトの名無しさん:2009/12/30(水) 00:03:27
JSliderでツマミのマウスドラッグにより変更された際、ChangeListenerのの中で
((JSlider)e.getSource()).setValue(0);
とかやっても、内部的な値は0にされるのですが、ツマミの位置がドラッグされた場所になってしまい
整合性がなくなってしまいます。これを防いでツマミも0の位置に合わせるにはどうすればいいでしょうか?
80デフォルトの名無しさん:2009/12/30(水) 00:08:36
SwingUtilities.invokeLater
81デフォルトの名無しさん:2009/12/30(水) 00:09:19
あと、e.getSource()とかやめた方がいい
82デフォルトの名無しさん:2009/12/30(水) 01:22:26
SwingUtilitiesよりEventQueueを使ったほうがいい
83デフォルトの名無しさん:2009/12/30(水) 01:22:52
ありがとうございます。
>>80
なんか振動?みたいな動きをしましたが、結局何も解決しませんでした。
>>81
なんでです?調べるキーワードも分からなかったんですが
84デフォルトの名無しさん:2009/12/30(水) 02:10:06
>83
たぶん振動するのは
1.スライダーが動く
2.スライダーの値が0になる
3.マウスがスライダーの上にあるのでスライダーが動く
これが繰り返されてるんだと思う。
スライダーをドラッグしたときどうしたいかがよくわからない、もう少し詳しく話してほしい
85デフォルトの名無しさん:2009/12/30(水) 06:06:09
なんでそんな不便なUIをおつくりなのか、状況が把握できていないので、確実に悪とはいえませんが、、
Swingは、スレッドセーフではないので、操作するときは、invokeLaterは、ほぼ必須です。
ちなみに、invokeLaterは、SwingUtilitiesでもEventQueueでも一緒ですね。

スライダーがかたかたいうのは、
スライダーに値をセットする前に、
マウスをはなした事にするイベントを、
擬似的に発生させれば回避できるかと思います。
86デフォルトの名無しさん:2009/12/30(水) 06:07:13
こんな感じで、スレッドが値と表示値を破壊しないようにできます。

if (EventQueue.isDispatchThread()) {
SwingUtilities.invokeAndWait(runnable);
}else {
SwingUtilities.invokeLater(runnable);
}

87デフォルトの名無しさん:2009/12/30(水) 06:09:48
e.getSource()は、ソースを見てもどのスライダーなのか、把握できないので、お勧めしません。
JSlider jSliderXXXXXなどと、パネル(フレームでも)のメンバー変数として、準備し、
そちらへアクセスしましょう。
88デフォルトの名無しさん:2009/12/30(水) 06:14:15
せめて、e.getSource()の使い道はこれくらいですかね。

if(e.getSource() == jSliderValueA) {
jSliderValueA.hoge();
}eles if(e.getSource() == jButtonX) {
jButtonX.setXXX();
}

89デフォルトの名無しさん:2009/12/30(水) 10:06:54
JSlider#getValueIsAdjusting()の説明は読んだか?
90デフォルトの名無しさん:2009/12/30(水) 13:36:15
JSliderの値を反映させないようにってことなら、MouseListener.mouseReleased()でsetValueすればいいんじゃない?
91デフォルトの名無しさん:2009/12/30(水) 17:13:53
>>87
でももし、明らかな場合はいいよね?ローカル変数にコンポーネントのインスタンス作っては
無名リスナークラスを設定しまくってるから、数十行の間に全ておさまってるんだけど・・・
92デフォルトの名無しさん:2009/12/30(水) 20:19:26
コンストラクタで渡すのが理想だけど、無名クラスならこういう風にすれば?
final JSlider target = slider;
slider.add○○Listener(new ○○Listener(){
 public void ○○(○○Event e){ target.・・・; }});

>85
SwingUtilitiesはEventQueueのカバーメソッドなのでなるべくEventQueueを使うように、とどっかに書いてあった
93デフォルトの名無しさん:2009/12/30(水) 20:50:18
>>85
やっぱり不便ですね。皆さんありがとうございました。
94デフォルトの名無しさん:2009/12/30(水) 22:43:21
>なるべくEventQueueを使うように
これswingの実装を知ってる必要があるんじゃね?
95デフォルトの名無しさん:2009/12/31(木) 00:13:30
staticメソッド呼ぶだけだって。
EventQueueのカスタム化も大した労力ではないが。
96デフォルトの名無しさん:2009/12/31(木) 10:51:30
TimerQueueがpublicなら・・・
97デフォルトの名無しさん:2009/12/31(木) 11:57:09
現在JTextAreaで入力を行っていて、入力時のイベントをDocumentListenerで受け取っているんですが、
漢字などの変換決定時に同じ文字のRemoveイベントとInsertイベントが飛んできてしまいます。
例えば"ねこ"を"猫"に変換するときに
INSERT ねこ
  [変換する]
REMOVE ねこ
INSERT 猫
  [変換決定]
REMOVE 猫
INSERT 猫

まぁ、動作としては正しいのでしょうが、こちらのプログラムの仕様上どうしても最後の重複した猫が
大きな無駄になってしまうので、なんとか変換決定イベントを知りたいのです。
もちろんRemoveイベントも受け取らなくてはならないのでRemoveを無視すれば?というわけにはいきません・・・。
キーイベントかなんかで頑張るしかないのでしょうか?(バグが出そうですが)
98デフォルトの名無しさん:2009/12/31(木) 15:12:59
InputMethodListener使ってInputMethodEventを見張る。

イベントのgetText()やgetCommittedCharacterCount()の長さを
デバッグ文で観察しつつ、いろいろなかな漢字変換操作を試してみよう。

確定した瞬間をとらえる判定式が、おのずと導けると思う。
細かいことは忘れた。
99デフォルトの名無しさん:2009/12/31(木) 15:31:52
普通にprocessEvent辺りだと思うんだが何でそんな面倒に考えるの?
100デフォルトの名無しさん:2010/01/01(金) 00:43:13
なんかややこしそうなので妥協します・・・
ありがとうございました
101デフォルトの名無しさん:2010/01/01(金) 02:57:20
上限4文字Maxの都道府県入力フィールドで
「わかやまけん」とか読みを入力するときだけリミッターを外すとか
みんなしてないのかな?
102デフォルトの名無しさん:2010/01/01(金) 03:02:32
都道府県入力フィールドに入力制限なんてつけないもの・・・
表記ゆれが怖いからコンボボックスじゃない?普通
103デフォルトの名無しさん:2010/01/01(金) 03:47:10
ある程度出来てから調整したほうがいいよ。
たぶん一から作り直しになるだろうけど、frameworkとかlibrary化するってのはそういうものだと諦めたほうがいいだろう。
その変換で無駄な感じとは思っていても、たいていは思ってたほどコストでもないからそのまま逝っちゃうってのがおおいけど。
104デフォルトの名無しさん:2010/01/01(金) 04:24:47
文字一つごとに膨大な計算をするのでフォントが複雑だと体感できるほどに遅くなることがあるんですよね。
入力中もリアルタイムで見た目を更新するので、うひゃ〜なんですけど、時間があればやります。ありがとうございました
105デフォルトの名無しさん:2010/01/04(月) 13:20:12
同じデータを用いて2つのテーブルを作りたいのですが、
1つのフレームに複数のテーブルを設置する事は出来るのでしょうか?
また、フレームを2つ作った場合、片方のテーブルのデータを変更した時に
もう片方のデータも同時に自動で変更するという事は出来るのでしょうか?
106デフォルトの名無しさん:2010/01/04(月) 14:01:37
>105
同じデータを使ってTableModelを作ればいいだろう
JTable自体は二つ、TableModelを共通のものとかにすれば自然とそうなるんじゃないか?
>>105
JavaAPIのJavadocからもリンク張られてるけど、
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#data
あたりも読んでみては。

106の方も言ってるけど、
この図のうち、
(TableModelやAbstractTableModelを継承した)Table Model Objectを1インスタンス、(JTableを継承した)Table Objectを2インスタンス作る。
んで、2つのTableのイベントリスナを同じModelに登録(addTableModelListenerメソッド)しとけば、
Model変更時にfireTableDataChangedみたいなメソッドで双方のTableに通知できる。


入力に使った方のTableも、入力イベントじゃなくて、
もう一方の方と同じようにfireイベントで更新しないといけないんじゃないかな。
(入力イベントで行うのはModelの更新だけ。もちろんModelの先にあるTable Dataも更新されるだろうけど。)
108デフォルトの名無しさん:2010/01/07(木) 20:34:19
ID、パスワード用のテキストボックスがメインのログイン画面があり、
htmlみたいにデザインを変更したいとの要求が上がっています。
Swingのhtml的デザインってどこまでできるのでしょうか?
109デフォルトの名無しさん:2010/01/08(金) 11:33:11
>>108
HTMLを使ったSwingコンポーネントのレイアウトは無理。

Swingの各種LayoutManagerのレイアウト機能はHTMLやCSSよりはるかに優秀。
リキッドデザインとかお手の物。CSSハックとかバカバカしくなって、戻れなくなるよ。
110デフォルトの名無しさん:2010/01/08(金) 11:44:16
htmlはcellも少ないしテーブルでいいのかなって思うけど何がダメなの?
111デフォルトの名無しさん:2010/01/08(金) 12:36:16
だめなとこなんかどこもないよー
でもswingのhtmlがレイアウトできるのはjavax.swing.text.Viewであって
swingコンポーネント(JComponent)ではないんだ
レイアウト周りのAPIは結構似てるけど。
112デフォルトの名無しさん:2010/01/08(金) 12:54:59
108です。
アドバイスありがとうございます。
cgiからアプレットに移行したシステムで、cgiがログイン画面をhtmlで変更できますよ、としていたので、
そのままの要求がアプレットにも上がってきた形になってます。

イメージとしては、表示したいhtmlの内容を設定ファイルに書いておき、
それをロードして、そのレイアウトでアプレットの画面を表示することをしたいです。

つまり、アプリ改修なしで好きなタイミングで好き勝手にデザイン変更することが求められ、
htmlに慣れているので、html以外のデザイン変更方法は受け付けない、というのが要求です。

凝ったことはしない+入力部品はID、パスワードだけで、増減はなしです。

Swingに取り込むときの設計イメージがわきません。アドバイスいただければと思います。
113デフォルトの名無しさん:2010/01/08(金) 12:56:51
>>112
文がおかしかったので、

cgiがログイン画面をhtmlで変更できますよ

htmlでできているのでログイン画面を自由にで変更できますよ
114デフォルトの名無しさん:2010/01/08(金) 13:07:47
それでいくらくれるんですか?
115デフォルトの名無しさん:2010/01/08(金) 13:11:30
DQNはweb何とかだけやってればいいのかなって思うよ。やっぱり改めてそう思った。
116デフォルトの名無しさん:2010/01/08(金) 13:14:25
そういえばJWebPaneってJava7に入るのかな。
>>112
もしその機能が本当に重要なのであれば、
ログイン画面はApplet化しないでウェブブラウザに任せる、つまり
htmlのままおいておくべきだとおもうけど。
117デフォルトの名無しさん:2010/01/08(金) 14:58:19
↓こういう取り組みもあるけどね。

http://ikemen.googlepages.com/htmltablepanel

でもなー、客のレベルも相当アレそうで先が思いやられるので、
難癖付けて断るのがベストだと思う。
118デフォルトの名無しさん:2010/01/08(金) 15:33:54
>>117
うおおお、これはすごいですね。
イメージが付いてきました。
119デフォルトの名無しさん:2010/01/08(金) 19:32:01
こういうDQNってさ、なにげなく白い奴のしゃぶりをやっちゃって、もうフィックスしちゃってんだろうなと思った。
120デフォルトの名無しさん:2010/01/08(金) 19:39:10
狂牛病に取り付かれたスポンジ脳と同じで、脳味噌スカスカって感じはするよね。
121デフォルトの名無しさん:2010/01/08(金) 19:45:08
うおおお、
122デフォルトの名無しさん:2010/01/11(月) 02:01:21
仕事で飯喰うなら、こんな所に丸投げするなよと思う。
そのうちhtmlをswingになんてアフォフレームワークを売り物にしてくる業者が出て来たら(ry
123デフォルトの名無しさん:2010/01/12(火) 11:59:50
>>122
仕事増えるならいいじゃん。
仕事ください
124デフォルトの名無しさん:2010/01/12(火) 23:52:11
JTextComponentのサブクラスは文字を表示することができますが、
文字列の座標情報?などはどうやって管理しているのでしょうか?

JTextComponentはDocumentインターフェイスに依存しているところまではわかるのですが、
そのあとがイマイチわかりません

125デフォルトの名無しさん:2010/01/13(水) 07:44:57
何をしたいの?
解析したいだけならデバックすれば?
126デフォルトの名無しさん:2010/01/13(水) 11:26:39
座標はViewが管理してます
ViewFactoryにDocumentのElementを渡して作ってもらいます
127124:2010/01/13(水) 21:09:05
>>126
確かに、viewで管理しているみたいですね(さっき、軽く読みました)

ところで、どうやって文字を表示しているんですか?
java.awt.graphicsは使っていないみたいなんですが
128デフォルトの名無しさん:2010/01/14(木) 10:32:08
なんかデジャヴが・・・ 前にJTableについて訊いてた人と一緒? まぁどっちでもいいけど
JButtonとかJTableとかJTextComponentとかSwingにあらかじめ用意されてるコンポーネントはみんな、
自分では描かずにButtonUIとかTableUIとかTextUIとかに処理を委譲している
だからJButtonとかJTableとかJTextComponentとかの方には表示関係のコードやマウス・キー処理のコードはない
ButtonUIとかTableUIとかTextUIとかの方にはルック&フィールごとに異なったサブクラスがあって(MetalButtonUI,等)、
それらがルック&フィールごとに異なった内容を表示し、ルック&フィールごとに異なったマウス・キー処理をしている
見るならそっち側
129デフォルトの名無しさん:2010/01/14(木) 10:39:38
>127
View#paint(Graphics g,Shape allocation)ってあるよな?

ちなみにTextUIってのは単なるViewFactoryだ。
130デフォルトの名無しさん:2010/01/14(木) 10:41:49
すまん。「BasicTextUIはTextUIを継承したViewFactory」の間違いだ。
131デフォルトの名無しさん:2010/01/14(木) 22:30:28
>>128-129
ありがとうございます
132デフォルトの名無しさん:2010/01/18(月) 19:29:12
JPanelで、paintComponent(Graphics g) をオーバーライドして描画を行う際
描画範囲がJPanelのサイズを超えた場合、自動でJPanelのサイズを拡大するには
どうすればよいですか?
133デフォルトの名無しさん:2010/01/18(月) 19:33:46
getPreferredSizeもオーバーライドして、描画範囲が超えないようなサイズを計算して返す
134デフォルトの名無しさん:2010/01/19(火) 08:00:54
getPreferredSizeに頼るとほとんどsetSizeが無効になりますよね?
setSizeでセットしたサイズ内で収まるようにするプログラムしたいときはnullレイアウトしかないのでしょうか。
135デフォルトの名無しさん:2010/01/19(火) 08:36:51
getPreferredSizeがsetSizeしたものより大きな値を返さないようにするとか。
136デフォルトの名無しさん:2010/01/19(火) 09:59:25
1.誰かがgetPreferredSize()呼んできたので100x100を返した。
2.そしたら誰かがsetSize()に80x80を渡してきたので不本意ながら従った。
3.そしたら誰かがクリップ領域10x10+20+20にしてpaintComponent()を呼んできた。

こんな状況?

クリップ領域は気にせず半径500の円弧だろうがなんだろうがガンガン描いたらよろしい。
どうしてもクリップ領域大きくしたいならrepaint(x,y,w,h)だけ呼んで
paintComponent()を終わらせればまたいつか新クリップでpaintComponent()が呼ばれる。

paintComponent()中にどうしてもコンポーネントサイズを大きくしたくなったなら
revalidate()だけ呼んでpaintComponent()を終わらせる。
そのうちgetMinimumSize()が呼ばれるので希望サイズを返す。
getPreferreSize()やgetMaximumSize()が呼ばれてもInteger.MAX_VALUEを
返しておけばいい。
やがてsetSize()が呼ばれるだろう。もし希望が叶わなくてもここは絶対服従。
137デフォルトの名無しさん:2010/01/19(火) 10:34:24
いや違うんです。
なんか誤解してるようですが、newしたときとかでその初期セットサイズ setSize(a,b)のまま固定しておきたくて、
基本的にサイズのは変更を許さず、resizeとかのレイアウト変更によって初期セットサイズを変更されたくないって意味です。
場合によっては縮小のときだけは許すが、拡大はmax sizeはsetSize(a,b)まで。
そういうときはnullレイアウトしかないのでしょうか。
レイアウトマネージャ使うとsetSizeの設定は実質意味をなしませんよね。
138デフォルトの名無しさん:2010/01/19(火) 10:43:42
paintComponentでやるしょりか?
139デフォルトの名無しさん:2010/01/19(火) 10:52:20
getPreferreSize()だろうがsetSize()だろうが実際はフレームと配下のコンポーネントのバランスをLMが勝手にとるから
AWTならnullレイアウトでいいけどSwingだと修飾がJava2Dだからなぁ。
ゲームだとGUI自前だしCanvasのサイズを強制したいからnullレイアウト使うがね。
140デフォルトの名無しさん:2010/01/19(火) 11:04:06
>>138
あまり分かってないようだけど、setSizeの質問ではswingはまったく関係ないよ。
141デフォルトの名無しさん:2010/01/19(火) 18:29:29
>>140
描画中にリサイズしたらイベントキューが理論的に順番めちゃくちゃにならない?
142デフォルトの名無しさん:2010/01/20(水) 19:04:26
JComponentのpaint(Graphics g)とprint(Graphics g)ってどう違うの?
143デフォルトの名無しさん:2010/01/20(水) 21:02:39
printって印刷だぜ?
144デフォルトの名無しさん:2010/01/25(月) 23:15:21
JTabbedPaneにadd("タイトル", JTableのインスタンス)を5回しています
JTableの列幅に変更があった場合、addした5つ全ての列幅を変更したいと考えています
どのように、すればよいのでしょうか?
145デフォルトの名無しさん:2010/01/26(火) 11:01:06
幅だけじゃなくて列の属性が全部同じなら、全部のJTableで1個のTableColumnModelを共有する
146デフォルトの名無しさん:2010/01/26(火) 20:47:58
>>145
thx
147デフォルトの名無しさん:2010/01/27(水) 06:05:30
Swingでゲームを作る人がいないのはなぜですか?
148デフォルトの名無しさん:2010/01/27(水) 06:12:28
ゲームを作るのに便利なライブラリ (画像効果など) とか手厚く用意されてるわけじゃないから。
149デフォルトの名無しさん:2010/01/28(木) 16:49:41
fillRectで塗った色はprintComponentで再描写しても消えないの?
150デフォルトの名無しさん:2010/01/29(金) 01:27:41
コンポーネントの描画に関して、何か誤解をしているように見える。
151デフォルトの名無しさん:2010/02/05(金) 22:22:26
NetBeansみたいなフォームデザイナってビジネスで使えるの?
IDEのバージョンアップでデザイナそのものが使えなくなるかもとか考えると怖い。
152デフォルトの名無しさん:2010/02/06(土) 12:14:53
GridBagLayout手書きしか使わんなー。
もちろん直接じゃなくて、ビルダークラス挟むけど。
builder.setContainer(container);
builder.setResourceBundle(resourceBundle);
builder.weight(0,0).addLabelResource("some.resource");
builder.weight(100,0).colSpan(2).add(new JButton(action));
builder.nextRow();
みたいな感じで。
153デフォルトの名無しさん:2010/02/06(土) 20:46:47
手書きなの?
1.6からだけど、手書きならgroup layoutとかいいよ。
grid bagのさらにパワーアップしたレイアウトだからそのブルダークラスとやらと同じ感じで設定できるだろう。
154デフォルトの名無しさん:2010/02/06(土) 23:51:42
JOptionPane の「OK」「キャンセル」みたいなデフォルトのラベルリソースってどこかから取れない?
JOptionPane でキャンセルボタンにデフォルトのフォーカスを置きたいのでユーティリティメソッド
使わないで書いていったんだけど、ボタン名を自分で指定しなきゃいけないのかな。
155デフォルトの名無しさん:2010/02/07(日) 00:26:41
うちMacなんでAqua LaFのしか見当たらないんだけど、
com/apple/laf/resources/aqua.properties (他数言語)に
OptionPane.yesButtonText=Yes
OptionPane.okButtonText=OK
などと書いてあるなあ。
156デフォルトの名無しさん:2010/02/07(日) 00:32:52
javax.swing.UIManager.getString(キー)
で取れそう。

ところで、
ttp://sites.google.com/site/shin1ogawa/java/swing/joptionpane-default-focus
なんて見つけた。
157デフォルトの名無しさん:2010/02/07(日) 01:28:10
>>154
"OptionPane.yesButtonText"
"OptionPane.noButtonText"
"OptionPane.cancelButtonText"
"OptionPane.okButtonText"
これらをキーにして UIManager.getString(String) を使う。
ロケールも指定すれば、各国語にローカライズされたテキストも取れる。
UIManager.getString("OptionPane.cancelButtonText", Locale.ENGLISH)
は "Cancel" を返す。
158デフォルトの名無しさん:2010/02/07(日) 11:03:35
JPopupMenuにたくさんのメニュー項目を入れると、メニュー項目が画面の縦幅に入りきらなくなります。
自動的に上下にスクロールとか、2列にするとかの仕組みはありませんでしょうか。
159デフォルトの名無しさん:2010/02/07(日) 11:51:22
>>158
こんなの見つけた。動作は見てない。
http://www.beginner-java-tutorial.com/scrollable-jpopupmenu.html
160デフォルトの名無しさん:2010/02/07(日) 15:17:17
マカってホント情報弱者だな。
161デフォルトの名無しさん:2010/02/07(日) 15:41:54
>>160
どこの誤爆?
162デフォルトの名無しさん:2010/02/07(日) 18:34:50
>>155-157
ありがそうございます ^^
163デフォルトの名無しさん:2010/02/07(日) 18:38:02
AWTUtilities#setWindowOpacity()
で透明度を設定すると、3回に1回くらい一瞬だけ真っ黒になるのだけれど、これはグラフィック性能がクソだからなのでしょうか?
164デフォルトの名無しさん:2010/02/07(日) 19:16:28
>>161
たぶん、PCニュース板あたりじゃない?
あそこではMacを、>>160みたいに馬鹿にしているし
165デフォルトの名無しさん:2010/02/08(月) 00:32:54
XP しか使ってないんだけど Windows Look and Feel って Vista や 7 だと違うの?
166デフォルトの名無しさん:2010/02/08(月) 14:26:22
マカってホントに情報弱者だな。
167デフォルトの名無しさん:2010/02/10(水) 10:32:30
JTableでセルごとに色を変えたいのですが、
どのように処理すればいいのでしょうか?
行ごと、列ごとは出来ましたが、
各セルごとができません。
ご存知の方がおられましたら、
ご教示していただけませんでしょうか?
168デフォルトの名無しさん:2010/02/10(水) 10:43:53
CellRendererじゃねーの?
169デフォルトの名無しさん:2010/02/10(水) 10:45:50
もっとちゃんとご教示していただけませんでしょうか?
170デフォルトの名無しさん:2010/02/10(水) 11:05:04
釣りか
171デフォルトの名無しさん:2010/02/10(水) 11:09:54
分からないなら答えなくても結構ですよ
172デフォルトの名無しさん:2010/02/10(水) 11:13:00
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html#renderer

ColorRenderer というクラスがあるから見てみ。
173デフォルトの名無しさん:2010/02/10(水) 11:36:45
DefaultTableCellRenderer のサブクラスを作り、getTableCellRenderComponent() (だったかな?) を
オーバーライドし、スーパークラスの同名メソッドを読んだあと this

めんどくせ
174デフォルトの名無しさん:2010/02/10(水) 12:07:42
C#にするからもういいや
175デフォルトの名無しさん:2010/02/10(水) 15:46:45
>>170
このスレ、質問者になりすまして回答してる人がいるね。
176デフォルトの名無しさん:2010/02/10(水) 15:51:16
この板ではよくあること
177デフォルトの名無しさん:2010/02/10(水) 21:46:58
というか最近さらに増えた。
ニートが増えたんだろうな
178デフォルトの名無しさん:2010/02/10(水) 21:55:21
今日はニートの日だったな。
179デフォルトの名無しさん:2010/02/10(水) 22:27:48
卒論提出前の学部生だと予想。
180デフォルトの名無しさん:2010/02/11(木) 09:43:02
GUI部分をnetbeansのGUIエディタで作成して,それ以外はjrubyで作る
みたいなことを簡単にできる方法ってありますか?
181デフォルトの名無しさん:2010/02/11(木) 09:46:28
イベントリスナで jruby 呼べば良いだけじゃん。
そういうフレームワークちょいちょいと作れば?
182デフォルトの名無しさん:2010/02/11(木) 14:21:03
SwingのEDTでスクリプトの実行って実行モデル的にどうなの?
リスナ上でやるには十分遅い処理じゃね?
183デフォルトの名無しさん:2010/02/11(木) 21:52:10
そんな重い処理ならスクリプトなんか使うなよ。
184デフォルトの名無しさん:2010/02/12(金) 03:11:41
ruby廚は巣に帰れよ。

http://pc12.2ch.net/test/read.cgi/tech/1264635554/
Ruby 初心者スレッド Part 34
http://pc12.2ch.net/test/read.cgi/tech/1265467681/
Rubyについて Part 39
http://pc12.2ch.net/test/read.cgi/tech/1200175247/
Rubyの宿題教えてください。2限目
http://pc12.2ch.net/test/read.cgi/tech/1233033091/
愛国Ruby
http://pc12.2ch.net/test/read.cgi/tech/1201603546/
魁け! Ruby 1.9.X
http://pc12.2ch.net/test/read.cgi/tech/1249737531/
Rubyについて(アンチ専用) Part004
http://pc12.2ch.net/test/read.cgi/tech/1155031689/
【ActiveScript】RubyをWindowsで使うスレ【GUI】
http://pc12.2ch.net/test/read.cgi/tech/1170047838/
Ruby最高や!
http://pc12.2ch.net/test/read.cgi/tech/1100563765/
Jython、Groovy、JRuby - どれが一番効率的?
185デフォルトの名無しさん:2010/02/18(木) 12:58:02
で、おまいら GUI コンポーネント組み立てて行く時は上位の JPanel あたりから組み立てる派か
末端の JButton, JTextField あたりから組み立てる派かどっちよ?
186デフォルトの名無しさん:2010/02/18(木) 15:03:13
iTextの質問ってここでよい?
187デフォルトの名無しさん:2010/02/20(土) 11:12:02
iTextの質問ってここでよい? age
188デフォルトの名無しさん:2010/02/20(土) 11:38:01
質問うp
189デフォルトの名無しさん:2010/02/20(土) 21:18:02
Swing アプリ使ってるとたまに再描画がクソ重くなるんで調べてたら、ときどき
javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).getCapabilities(null).isAccelerated()
これが false になってるのがわかりました。起動直後は true で、サクサク動きます。

これを防ぐ方法は無いでしょうか?

javax.swing.RepaintManager.currentManager(myframe).getVolatileOffscreenBuffer(myframe, 16,16).setAccelerationPriority(1.0f)
としてみましたが、やっぱりしばらく使ってると同じ状態になってしまいました。

環境は以下のとおりです。
Java 6u18
Windows XP 32bit
NVIDIA GeForce Go 6600 VRAM 128 MB
190デフォルトの名無しさん:2010/02/20(土) 22:53:51
SwingかJava2Dの使い方間違えてるかVRAMのデータが使えない状態にあるんだろう。
とりあえずjavaのオプションからDirectXとOpenGLのバージョンとソースすべてうp。
191デフォルトの名無しさん:2010/02/20(土) 23:46:18
>>190
問題のアプリは主に jEdit (http://www.jedit.org) です。
V2C でも似たような問題があるようですが、実行中に問題が発生するというわけじゃなさそうです。
http://v2c.s50.xrea.com/manual/win.html#problem

DirectX のバージョンは 9.0c です。

javaw.exe 起動時に -Dsun.java2d.opengl=true すればこの問題は起こらないんですが、
ときどき他のウィンドウと干渉してゴミが表示されたりします。これを回避するために
できれば OpenGL は使わないで済ませたいのですが、方法が見つからない状態です。
192デフォルトの名無しさん:2010/02/21(日) 15:30:51
ソフト使うだけは板違い。
193デフォルトの名無しさん:2010/02/21(日) 18:16:58
>>189
これ?
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6921654
取り敢えず他のオプションも試してみれば。
http://www.ea.u-tokai.ac.jp/~sakata/jdk6/docs/ja/technotes/guides/2d/flags.html

OpenGLはOpenGLで問題あるみたいだけど。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6723523
とか。

何にしてもスレ違いですね。
194デフォルトの名無しさん:2010/02/23(火) 00:20:02
>>193
ありがとうございます。

リンクしていただいたバグは VRAM 上のイメージとメインメモリ上のイメージとで
動作が異なると言うことで、速度低下だけが問題になっている >189 の問題とは違うもの
みたいです。

translaccel と ddforcevram がそれっぽいなぁと思って試してみたんですが、やっぱり
しばらく使ってると問題が発生してしまいました。

ソースコードに問題があるのなら修正に挑戦する気はあるのですが、再現させる手段が
さっぱりなのでどこに手を付けていいものかさっぱりな状態です。

他に同じ症状の情報が見当たらないので、やっぱり環境に大きく依存する問題なのかも
しれません。
195デフォルトの名無しさん:2010/02/23(火) 12:33:28
beansbinding\u306eObservableListImpl.fireElementChanged(int)
ってどこからも呼ばれないの?
196デフォルトの名無しさん:2010/02/23(火) 12:35:00
修正
beansbinding の org.jdesktop.observablecollections.ObservableCollections.ObservableListImpl.fireElementChanged(int)
197デフォルトの名無しさん:2010/02/23(火) 20:15:56
PCの構成とドライバのバージョンうp
198デフォルトの名無しさん:2010/02/28(日) 04:50:07
まじでおまえらSwingで何つくってんだ?
ゲームのマップエディタ適当にSwingで適当につくろうとして久々触ったけど
相変わらず糞だなぁ、、いつまともになるんだろこれ。。
199デフォルトの名無しさん:2010/02/28(日) 06:00:24
どこが糞なのか何がまともなのか理想を語りたいらしい。
200デフォルトの名無しさん:2010/02/28(日) 06:27:00
こんな夜中に語りだすのか?…
201デフォルトの名無しさん:2010/02/28(日) 09:15:14
糞なら使うなよ
適正な言語も選べないのか
202デフォルトの名無しさん:2010/02/28(日) 21:58:51
マップエディタの実装が糞なだけでswing関係なかったりしてw
cとかで組めるならjni使えばいい話し出し。
203デフォルトの名無しさん:2010/02/28(日) 22:43:23
ここでjni出してくるのはどうかと思う
204デフォルトの名無しさん:2010/03/03(水) 02:33:21
javaからwin32apiは使えないからな。
205デフォルトの名無しさん:2010/03/03(水) 03:32:54
つかえまsが
206デフォルトの名無しさん:2010/03/03(水) 04:57:50
Swing に対する唯一の不満は、Win32 用の L&F が
ネイティブのそれと微妙に違っててイラっとすることくらいなんだけど
操作感覚にダイレクトに突き刺さってくるので困る。

SWT の作りは大嫌いだし(いまどきイベントループとか)
全般的な命名も好きになれないし(Shell って名前をアレに使うなよ)
体感速度に差があるとも思えないんだけど、
この部分だけが引っかかってしまう。

自分で作るんなら Swing なんだが
使うんだったら SWT みたいな。
207デフォルトの名無しさん:2010/03/03(水) 11:35:13
そういうヲレクラス作ればいいだけじゃ?
208デフォルトの名無しさん:2010/03/03(水) 13:39:34
J/DirectなんてJ#にすら見捨てられたよな
209デフォルトの名無しさん:2010/03/03(水) 14:01:08
Browser と半透明ウィンドウのためだけに SWT 使うとる。
210デフォルトの名無しさん:2010/03/03(水) 22:19:17
AWTUtilだっけ?あれとJDICでよくね?
211デフォルトの名無しさん:2010/03/03(水) 23:08:39
JWebPaneってどうなったん? WebKitつかってるとかいう
212デフォルトの名無しさん:2010/03/04(木) 02:13:19
SwingWTという、SWTをSwing APIでラップしたものがある。
http://swingwt.sourceforge.net/
2005年頃に使ったときは、微妙な互換性不足が残念だった覚えがあるが、
今ならよくなってるかもしれない。試してみたら?
213デフォルトの名無しさん:2010/03/05(金) 17:08:54
>>206
いまどきイベントループ、って
どんな言語でもイベントループなんじゃないの?
214デフォルトの名無しさん:2010/03/05(金) 19:11:48
たしかにイベントループを表に出していない Swing の方が異端だな。
215デフォルトの名無しさん:2010/03/06(土) 09:11:25
どうもイベント廻りの挙動がおかしいと調べてみたら呼び出し先のライブラリで
イベントループしてました、なんて事にさっきまでハマってたところ。
元々イベントループなんざシングルタスク言語やノンプリエンプティブな環境向けの手法だお。
Java のようなマルチスレッド環境では使わないに越したことはない。green thread 時代に
yield() 駆使してた悪夢がよみがえる。
216デフォルトの名無しさん:2010/03/06(土) 21:58:42
最近、日曜プログラムでSwing始めました。
仕事ではCOBOLとかC言語が多かったのでJavaはかじった程度の知識しかありません。

ところで、コンポーネントのリスナークラスとか追加するときって、無名クラス使うのが
一般的なんですか?(本とか読むとそれが多いと書いてあったので)

個人的には画面系のプログラムも作ったこともなかったので、よく分からないんですが、
コンポーネントの生成や属性の設定の中に、ロジックが入ってくる様に思えて
なんか違和感を感じるんで、今は無意味でもクラスに名前を書いて内部クラスにしてます。

でも、無名内部クラスにするが一般的なら、それになれとかないとなぁと思い質問しました。
217デフォルトの名無しさん:2010/03/06(土) 22:03:15
画面系を作ったこともないんですよね?
どういう違和感を感じるんですか。
218デフォルトの名無しさん:2010/03/06(土) 22:07:05
>>216
アプリケーションと画面を同一クラスとして作っていると
そんな感じになってしまうかもしれない。
219デフォルトの名無しさん:2010/03/06(土) 22:13:36
>>217
ちゃんと勉強するとなるとかなり大変なんで初心者・初級者用のgui教本は全てそんなもんですよ。
分離しようとすると結局コード量が多くなるんでもしちゃんとguiやるならIDEないと無理でしょうね。
220デフォルトの名無しさん:2010/03/06(土) 22:14:45
>>216ね。
221デフォルトの名無しさん:2010/03/06(土) 22:40:14
>>216
分かりやすい・自然だと思う方を採用したらいいんじゃないでしょうか。
無名クラスの場合は引数以外に定義された環境の情報にアクセスできるメリットと、
切り分けても命名に困る(〜ボタン押したときの処理、以上の名前が思いつかない)
ことが多数なので、私自身は無名クラスで書くことが多いです。

良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
222デフォルトの名無しさん:2010/03/07(日) 00:10:01
javaのjTextAreaから日本語文字を[ctrl+c]でコピーして
テラパッドなどのテキストエディタに[ctrl+v]でペーストした時に
日本語が文字化けしてしまいます。防ぐ方法はありますか。
【Java】 1.6.0_17-b04 (Sun Microsystems Inc.)
【OS】 Windows XP 5.1 (x86)
223デフォルトの名無しさん:2010/03/07(日) 01:00:27
http://pc12.2ch.net/test/read.cgi/tech/1236529563/
文字コード総合スレ part5
http://pc12.2ch.net/test/read.cgi/tech/1153008301/
こんなエディタ・統合開発環境はいやだ  2種類目
224222:2010/03/07(日) 01:10:43
>>223 はは、文字コードスレにいってみます。
225216:2010/03/07(日) 03:16:14
>>217、218、219、221 コメント有難うございます。

コンポーネントを作る際、例えば以下の様なものがあるとするじゃないですか。
1.btnS11 = new JButton("Save");
2.btnS11.setFont(new Font("Monospace",Font.BOLD,14));
3.btnS11.addActionListener(new ActionListener {public void actionPerformed(ActionEvent e) {Saveロジック(処理)}})
4.pnl1.add(btnS11);
ってな順になるのかと思いますが、それをコンポーネント分繰り返して
「1.生成2.属性設定3.ロジック4.貼付 1.生成2.属性設定3.ロジック4.貼付…」
みたいな感じで書いてます。
「1、2、4」は画面の見栄えの部分で、「3」はリスナーを追加する行為は画面の見栄え
リスナークラス内は「ロジック」になって、画面定義とロジックが混ざる感覚になる。
「リスナーを有名の他クラスにして、外に飛ばしてやれば、それが除外されるので画面定義だけの部分になってくれる。」
ので、しっくり感が出てます。
(なんか説明、へただなぁ…。)
226216:2010/03/07(日) 03:44:09
>>221
221さんが行っているメリットは、無名クラスではなく、内部クラスのメリットだと思います。
一応、外だしの有名クラスにするときも、元のクラスの内部クラスにはして、フィールドとか
までは、利用してます。

結局、無名クラスの場合のメリットとしては
「べつにクラス化しても、結局一ヶ所しかから呼ばれないから意味ない」
「そんなクラスにわざわざ名前つけるのもバカらしい」
「コード見るときに、あっち行ったりこっち行ったりするのも分かりにくい」
のでまとめて書く。ってことかなと思ってます。
(無名クラスの場合のメリットというよりか、外だしにしたクラスのデメリットですが…)

>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
命名規則を何となく決めて置けば、まぁ、なんとかしのげます。
MyBtnS11ActionAdapter 見たいなこのボタンのこのリスナーってなクラス名にしてます。
(よい名前かは置いといて…、ってか、BtnS11って、命名なんやねんってツッコミ入りそうですけど)
227デフォルトの名無しさん:2010/03/07(日) 03:53:58
先ずはguiアプリを実際に作ってから半年後にまた考えてみても遅くないでしょうね。
228デフォルトの名無しさん:2010/03/07(日) 08:42:33
>>216
ビジネスロジックは別クラスに実装して、
無名リスナーはUIとビジネスロジックのアダプタとして実装している。
こんな感じ。

JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
  getSomeLogic().doLogic();
});

getHogeLogic()とdoLogic()の中身は想像で補ってくれ。

ビジネスロジックは、UIと粗結合であるべき、フレームワーク非依存であるべき、
というのが信条なので、SwingのAPIが混ざったクラスにビジネスロジックを書きたくない。
イベント処理にXXXListenerが必要というのはSwingの都合でしかないので、
そういう事情はSwingのUIクラスの中だけで隠蔽したい。

以上のような理由から、上記の作り方をしている。

次の課題として、UIオブジェクトとビジネスロジックオブジェクトのバインディングについて
考える必要があるけど、
そこは、ハードコーディングするなり、上位のオブジェクトからsetしてもらうなり、
DIコンテナでインジェクションするなり、好きな方法をどうぞ。
お薦めはDIコンテナだが、不慣れなら他の方法でもいい。
229228:2010/03/07(日) 08:44:34
ぐあぁコード間違えた。こうだ。
JButton b1 = new JButton("OK"):
b1.addActionListener(new ActionListener(){
 public void actionPerformed(ActionEvent e){
  getSomeLogic().doLogic();
 }
});
230デフォルトの名無しさん:2010/03/07(日) 15:49:11
>無名クラスではなく、内部クラスのメリットだと思います。
書いててそう思ったんですが、まあ多分通じると思ってそのままに・・

コンポーネント名+イベント名 な命名しか思いつかない場合、
自分だったら無名内部クラスで片付けてますね。
でもまあその辺りは個人の感覚次第で
何が正しいってわけでもないはず。
(特この件にかんしては明確にどっちが優劣ってのはない。)

「そういう書き方もある」ことを抑えてて、
そういうコード見て面食らう事がないのであれば
別にどっちで書いてもいいと思うんですよ。
vi も Emacs も優れたエディタなんです。
231216:2010/03/07(日) 18:05:59
あぁぁぁぁ。(なんか自分に腹立ってます)

>>230
自分が無知なので広く意見を伺いたく質問したつもりなのに
変な噛みつき方してすみませんでした。

コメント有難うございました。
232デフォルトの名無しさん:2010/03/07(日) 20:35:15
>>226
>良い名前が思いつかないのであれば、多分分けるべきじゃないと思いますよ。
は、名前が思いつくようなクラスは再利用性があるクラスだから、
「名前が思いつくかどうか」自体が、内部クラスにするかどうかの
そこそこ良い基準になるということを言ったんだと思った。

ちょっと思っただけ。
233デフォルトの名無しさん:2010/03/07(日) 21:44:27
やってれば分かるが普通は>>228にいきつく。今のswingはここらで止まってる。
234デフォルトの名無しさん:2010/03/08(月) 08:32:25
>>233
>>228でもいいんだけど、コンポーネントに直接ActionListenerをaddするんじゃなくて、
Action作って使いまわしたほうがマシだと思う。
ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。
235デフォルトの名無しさん:2010/03/08(月) 23:48:19
サーバサイドしかやったことないと思しき某外資系ITゼネコンのアフォSEが
JAR ファイルの中見て無名内部クラス使いすぎ云々 (品質悪い) と因縁
付けて来た事があったなー。
236デフォルトの名無しさん:2010/03/08(月) 23:52:36
サーバーサイドやっているとね
237デフォルトの名無しさん:2010/03/09(火) 00:04:28
そんなゼネコンと仕事してる時点で質が低いからどうでもいいな。
金が欲しいなら言う事聞くしかないだろ?
238デフォルトの名無しさん:2010/03/09(火) 00:10:36
自分ところが下請けだから下請け前提で読んじゃったんだね君。
239デフォルトの名無しさん:2010/03/09(火) 00:57:47
> ひとつのActionを複数のコンポーネントやキーに割り当てたいときとか。
さすがにそのくらいはやってんじゃなかろうか。
同じことを何度も書くのはそもそもアレだし。
240デフォルトの名無しさん:2010/03/09(火) 15:05:42
ダイアログ表示中に任意のキー押下で任意のアクションを呼び出す方法はあるでしょうか?
241デフォルトの名無しさん:2010/03/09(火) 16:43:51
もしかしてモーダルなダイアログの話?
242デフォルトの名無しさん:2010/03/09(火) 17:46:22
>>241
そうです。
エラーが発生してダイアログを出すときに、スタック情報を適当なpublic static にコピーしておいて、
ダイアログ表示中に隠し機能としてF5を押すと、
コピーしておいたスタック情報をクリップボードに張り付けるということがしたいです。

客から問い合わせがあったときに、簡単に対応したいので。
243デフォルトの名無しさん:2010/03/09(火) 18:11:22
InputMapとActionMap使ったら簡単なんじゃない?
JDialog dialog = new JDialog();
dialog.setModal(true);
dialog.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
JPanel pn = (JPanel)dialog.getContentPane();

pn.getActionMap().put("hoge", new AbstractAction() {

@Override
public void actionPerformed(ActionEvent e) {
System.out.println(e);
}
});
pn.getInputMap().put(KeyStroke.getKeyStroke("F5"), "hoge");

dialog.setVisible(true);
244デフォルトの名無しさん:2010/03/09(火) 19:35:53
>>243
ありがとうございます。

JOptionPane.getRootFrame()から何とかしてアクションマップを登録して、
JOptionPane.showMessageDialog(…);することはできないでしょうか?
245デフォルトの名無しさん:2010/03/09(火) 19:39:58
JOptionPane の API リファレンスにユーティリティメソッド使わないで
JDialog 参照する方法が載ってるだろう。
246デフォルトの名無しさん:2010/03/10(水) 15:44:20
>>245
JOptionPane.getRootFrame()から何とかして、って書いてあるから答えがかみ合ってないよ。
そんなことは知ってるけどもっと簡単な方法がないかってことだろ。

XXして
JOptionPane.getRootFrame()
で済む方法ってことでしょう。

要はその方法はないってのが正しい返しかな。
247デフォルトの名無しさん:2010/03/10(水) 18:55:30
超絶役に立たないレスだな。
だから JDialog 参照しろという話をしてるわけだが。
248デフォルトの名無しさん:2010/03/11(木) 09:06:33
強引なやり方としては
Toolkitを使って全てのイベントを監視する方法もある。
どのコンポーネントがフォーカスを持っていようと
F5が押されたらスタックトレースをダンプするようにもできると思う。
249デフォルトの名無しさん:2010/03/11(木) 11:01:19
Swingの画面を印刷するにはどうすればよいでしょうか?
ちなみに、スクロールで見えてない部分も含め印刷させることが出来るでしょうか?

WORDの差し込み印刷をSwingでやることになりまして…
250デフォルトの名無しさん:2010/03/11(木) 13:18:00
取ってもアフォな案件だなw
vbaをjavaから呼ぶcom作る輪
251デフォルトの名無しさん:2010/03/11(木) 14:29:22
俺vba苦手だから Apache POI に頼るー。
Apache POI だけはいつも俺の心のアニキ。
252デフォルトの名無しさん:2010/03/11(木) 16:34:54
XML で保存出来るのに今時 POI とかないわ。
253デフォルトの名無しさん:2010/03/11(木) 17:17:17
JEditorPane#getPrintableでRTF文書の印刷とか考えてるならやめとけー。
まずは簡単なWORD文書をディスプレイに描画させてみて、満足いく結果が得られるのか早期に検討すべし。

たぶん Aspose.Words for Java みたいな有料ライブラリが必要になるだろうよ。

>252
XMLなんか差し込み印刷したってしょうがないだろ
254デフォルトの名無しさん:2010/03/11(木) 17:25:41
>>253
Word XML (WordML) 形式の話をしてるんだが、まだ Office が XML で連携できてるって
気付いてない奴って多いんだよな。おまえみたいな。
255デフォルトの名無しさん:2010/03/11(木) 17:43:50
DB 舐めて Word ファイル作るだけにバカみたいな金払わされてる客がいたんで
(レイアウト変更等別料金)、検索結果の XML から XSL で Word ファイル作る
ツール作って XSL の書き方だけ教えてあげたらもの凄く喜ばれた。
んで別のデカい仕事貰った。
256デフォルトの名無しさん:2010/03/11(木) 17:53:46
>254
「Word XML (WordML) 形式の話をしてる」

「WORDの差し込み印刷をSwingでやる」の話じゃなかったんならオレが謝る。
257デフォルトの名無しさん:2010/03/11(木) 17:54:12
もしプロなら人の仕事を奪うのは良くないなと気づかないといけない
258デフォルトの名無しさん:2010/03/11(木) 17:57:02
>>256
Swing から Word XML 出力 & Desktop#print() が思い付かない時点でオhル
259デフォルトの名無しさん:2010/03/11(木) 18:08:24
>258

重ね重ね申し訳ない。
「Swingの画面を印刷するにはどうすればよい」の話じゃなかったんならオレが謝る。
「スクロールで見えてない部分も含め印刷させる」の話じゃなかったんならオレが謝る。

「Word XML 出力 & Desktop#print()」がSwingなのかスレ違いなのかはオレもよくしらん。
260デフォルトの名無しさん:2010/03/11(木) 18:12:01
バカは黙ってろよ
261デフォルトの名無しさん:2010/03/11(木) 18:18:44
逝ってよし
262デフォルトの名無しさん:2010/03/11(木) 18:19:39
ところで >249 氏はもしかするとWindowsユーザーなのだろうか
263デフォルトの名無しさん:2010/03/11(木) 18:32:57
Wordは最初っからどうでもいいんですが、
結局Swingの画面をjavaのコードだけで印刷って出来ないんですか?

デスクトップの機能を使ってなんとかできないですかね…

Wordの差し込み印刷はバージョンによって動作が違うし、Linuxじゃ動かないのでパスしたいんです。
264デフォルトの名無しさん:2010/03/11(木) 19:50:51
与えられた紙の隅から隅まで自分でお絵かきしたいなら「Java 2D API プログラマーズガイド」の7章を読む

既成コンポーネントやコンテナのprint()がどこまでまじめに印刷に対応してるかはレッツトライ

スクリーンキャプチャがしたいならjava.awt.Robotだ。
265デフォルトの名無しさん:2010/03/11(木) 22:13:33
awtでボタンを押すとFileDialogをsetVisible(true);するメソッドを呼び出すだけの
アプレットを作りました。

これをブラウザ(IE6)でHTMLから呼び出して、
ボタンを押してファイルダイアログを呼び出します。

この開いているファイルダイアログを放置して
呼び出し元のウィンドウをクリックすると
クリックするたびにコンソールに例外がモリモリ出ます。

↓こんなの
Exception occurred during event dispatching:

java.lang.NullPointerException: null pData
at sun.awt.windows.WComponentPeer._requestFocus(Native Method)
at sun.awt.windows.WComponentPeer.requestFocus(Unknown Source)
at java.awt.Component.requestFocusHelper(Unknown Source)

            以下略

これを出さないようにしたいのだけれど調べてもさっぱりわかりませぬ。
これってJavaのバグなのかな?
それとも何かしなきゃいけないことがあるのかな!
助けてエスパー!
266デフォルトの名無しさん:2010/03/11(木) 22:19:15
AWT のスッピン FileDialog なんて久しく使ってないから忘れた。
267265:2010/03/11(木) 22:24:17
ですよねー
ふるーいアプレットのシステムを
ポーティングするお仕事でこの問題が見つかったのですが
事象の起こし方もすごい簡単なのに
調べても調べてもちっとも出てこないので
泣きそうです

HTMLから呼び出すとモリモリなんだけど
アプレットビューワーから呼び出すと起きないのですよ
268デフォルトの名無しさん:2010/03/11(木) 22:35:44
"java.lang.…pData" でまんまググったら出たがこれじゃねーのか。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6829326
269デフォルトの名無しさん:2010/03/11(木) 22:38:29
中身読んだら Java 7 でリサイズした時の話だった。失礼。
270デフォルトの名無しさん:2010/03/12(金) 09:19:25
>>265 を読んだ限りでは、どうもJRE自体のバグっぽいね。
あるいはブラウザとの相性が悪かったか。
実害がないなら放置していいんじゃないかな。
271デフォルトの名無しさん:2010/03/12(金) 15:25:24
Swing→RMIの通信をSwing→httpに変更しようと思っています。
RMIはもう使用したくないとのこどで、大幅改修はせずに移行したいとのことです。
まぁ、その辺は言いたいことはあるんですが、この不景気なもので来るもの拒まずです。工数が増える分には。

そこでまずRMIのインターフェースはあまり変えないということで、
メソッド呼び出しのリモートプロシージャの考え方を踏襲することに。

Swingにhttpクライアントを入れて"multipart/form-data"でデータを送信します。
データはRMIで使用した全ての引数でシリアライズした中身をファイルアップロードで送ります。
ポップ引数は2つで、リモートクラス名とメソッド名。シリアライズを解凍して(引数の配列)、
リモート側で(httpサーバ)メソッドインボークする感じです。

レスポンスは"text/plain"で、RMIの戻り値のシリアライズです。

このやり方はいかがなものでしょうか?
改善案や便利な方法があればお願いします。
落とし穴などもあれば。
Swing→httpは外せないってところでお願いしますm(__)m
272デフォルトの名無しさん:2010/03/12(金) 15:32:33
RMI-HTTP Tunneling というものがあってだな。
使ったことないけど。
273デフォルトの名無しさん:2010/03/12(金) 16:04:30
>>272
なんすかそれ
274デフォルトの名無しさん:2010/03/12(金) 16:30:26
中身はrmiのままなんだから、http通しても大差ないのにね。
まあ金貰えるなら言う通りに実装してやればおk。
275デフォルトの名無しさん:2010/03/12(金) 16:42:23
単に HTTP にすりゃ良いってだけなら (ファイアウォールでも通すのか?)
SOAP に置き換えりゃ良いんじゃねぇの。
276デフォルトの名無しさん:2010/03/12(金) 17:43:15
>>271
RMIとHTTPってレイヤが違うような…?
277デフォルトの名無しさん:2010/03/12(金) 22:02:48
RMIがいやだからHTTPにしたいって言うのが理解できないんだがまあそんなことはどうでもいい。
Swing関係なくね?
278デフォルトの名無しさん:2010/03/12(金) 22:04:22
RMI か HTTP かで心が Swing してんだろ。
279265:2010/03/13(土) 01:43:58
>>268-270
気にかけていただいてありがとうございます

例外の内容で調べて同じのは出てこなかったけど
「Defaultmodel.なdialogが云々でバグです!」
といったような内容のがBugDataBaseでボロボロ出てくるので
指定しなくてもモーダルだと主張しているFileDialogの
フォーカスの処理とブラウザから呼び出した際の相性に問題があるんだと思います。
(自分でmodalを指定するDialogだと同じ操作をしてもこの問題は起きません)

お客さんには事例を寄せ集めて
「我々のせいじゃないし、どうにもできないので勘弁していただきたい!」
と主張してみることにします。
ありがとうございました。
280デフォルトの名無しさん:2010/03/13(土) 04:32:08
他所に仕事取られる訳だな。物はいい用と思うけどね。せっかくのビジネスチャンスを(ry
281デフォルトの名無しさん:2010/03/14(日) 10:33:40
>>279は月曜日にクソッタレのフニャチンどもにこう言われるはずさ

そんな欠陥のある言語を選択したのはお前の会社のミスだろ?
それにJavaはオープンソースなんだろ?
中追ってお前のところで直せよ

そしたら>>279はExceptionを握りつぶしてこう言ってやるのさ
問題ありませんってね
HAHAHA
282デフォルトの名無しさん:2010/03/14(日) 10:39:45
おまえは書き込む前に一息置いて読み直す癖を付けろ。
283デフォルトの名無しさん:2010/03/15(月) 01:08:29
バグ混入させるぐらいなら、プログラマ辞めればいいのに。
明らかに向いてないというか、能力足りてないだろう。
284デフォルトの名無しさん:2010/03/15(月) 01:40:43
翻訳:極論振りかざすオレカコイイ!
285デフォルトの名無しさん:2010/03/15(月) 03:22:24
バグが混入しないと思ってる時点であほだな
286デフォルトの名無しさん:2010/03/15(月) 04:20:28
優秀なプログラマほどバグが少ない現実。
馬鹿にはプログラミングは向いてないよ。
287デフォルトの名無しさん:2010/03/15(月) 05:29:51
そう自分を責めるな
288デフォルトの名無しさん:2010/03/15(月) 07:44:34
たとえ4秒に1回落ちてもフロントエンドに影響が無いように作れってぐぐるの中の人が言ってた!!(違
289デフォルトの名無しさん:2010/03/15(月) 11:22:12
>>286
いくら優秀でもバグがゼロにはならない。
>>283に従うと、バグを混入させるプログラマは辞めなければならない。
したがって、最終的には全てのプログラマは辞めなければならない。
290デフォルトの名無しさん:2010/03/15(月) 11:49:36
>>283はエンドユーザーだろ
291デフォルトの名無しさん:2010/03/15(月) 14:37:43
ユーザとして使ってるとバグが出るのってホント頭に来るのは事実。
作った香具師出てこいよ。
292デフォルトの名無しさん:2010/03/15(月) 15:05:30
>>291
マ板へどうぞ。
293デフォルトの名無しさん:2010/03/16(火) 20:53:14
やだよ。
あいつら池袋のヤベェ工房から買ったヤニでトんでんだもん。

どうでもいいけど、池袋に溜まってる工房ってだいたい病気持ってるよなw
まじ怖いわw
街中で堂々とコンジローマ自慢してんじゃねえよwくせえw
294デフォルトの名無しさん:2010/03/17(水) 12:17:56
いやだから池袋のヤベェ工房から買ったヤニでトんでる香具師が作ってんだって。
295デフォルトの名無しさん:2010/03/17(水) 19:28:45
でも池袋のガキどもは、本当にヤバい事する時は隠れてやるんじゃね?
そういう現場を生で見たことないし。
だからまだいい方。

三軒茶屋あたりでうろついてるのは、本当にどうにかしてほしい。
あそこは深夜になるとリアル北斗。
296デフォルトの名無しさん:2010/03/17(水) 19:34:13
>>295
マ板でどうぞ。
297デフォルトの名無しさん:2010/03/20(土) 11:10:39
>>294
いまどき香具師って……
298デフォルトの名無しさん:2010/03/20(土) 12:11:20
>>297
たまに使っている人いるよな
死語だけど
299デフォルトの名無しさん:2010/03/20(土) 12:15:45
>>298
元ネタがネットじゃなくて小説だからかな
300デフォルトの名無しさん:2010/03/20(土) 20:38:53
池袋といったらダラーズだよな
301デフォルトの名無しさん:2010/03/20(土) 20:45:23
デュラララカ
302デフォルトの名無しさん:2010/03/21(日) 04:54:29
あらららぎさん
303デフォルトの名無しさん:2010/03/23(火) 09:47:31
Swingで、ドラッグ中のキー入力を取得するにはどうしたらいいでしょうか。
JDesktopPaneを使っていて、JInternalFrame間のDnD中に、アクティブなフレームを
切り替えたいと思っています。
Windowsプラットフォームだと、CTRL-F6で内部フレームが切り替わりますが、
ドラッグ中だと切り替わりません。
304デフォルトの名無しさん:2010/03/23(火) 10:40:52
>>303
まずそのUI設計をやめたら?
305デフォルトの名無しさん:2010/03/23(火) 14:31:09
DnD中にアクティブなウィンドウを切り替える意味は何?
306デフォルトの名無しさん:2010/03/23(火) 14:36:29
下にあるフレームを上に持って来たいんだろ。
307デフォルトの名無しさん:2010/03/23(火) 18:15:39
マウスリリースされたときにlafが勝手にやってくれる動作じゃダメなのか
308デフォルトの名無しさん:2010/03/23(火) 19:00:18
>>303
ExplorerやNautilusのように、ウインドウ内のドロップ対象で動作が変わるのですが、
そのような作りは一般的ではないのでしょうか。
ドロップ元とドロップ先が完全に見える状態にウインドウを並べてドラッグ&ドロップするのでしょうか。
それとも、CLIしか使わないのでわからない、ということでしょうか。

>>305
Windows Explorerでファイルドラッグ開始
→ALT+TABでドラッグ対象ウインドウの非表示部を表に出す
→隠れていた部分のアイコンにドロップ
みたいなことです。

>>307
ドロップされる位置によって動作が変わります。
309デフォルトの名無しさん:2010/03/23(火) 21:13:11
つ nlink
310デフォルトの名無しさん:2010/03/23(火) 22:59:06
Macでもドラッグ中にExposeとかSpacesを使えるけど
あれと似たような感じなのかな。
311デフォルトの名無しさん:2010/03/24(水) 00:14:11
マカって情報弱者だな。
312デフォルトの名無しさん:2010/03/24(水) 00:17:43
おまえってボットなの?
313デフォルトの名無しさん:2010/03/24(水) 00:40:02
九分九厘そうだろう。
314デフォルトの名無しさん:2010/03/24(水) 00:44:35
Mac 使ってるけど
これで来るわけ?
315デフォルトの名無しさん:2010/03/24(水) 01:14:11
マカって情報弱者だな。
316デフォルトの名無しさん:2010/03/24(水) 01:24:17
goto 311;
317デフォルトの名無しさん:2010/03/24(水) 01:27:56
きっちり一時間で巡回してんのかw
318デフォルトの名無しさん:2010/03/24(水) 02:14:30
呪文を唱えるとボットが召喚できると聞いてry

マックって旨いよな!
319デフォルトの名無しさん:2010/03/24(水) 03:14:11
マカって情報弱者だな。
320デフォルトの名無しさん:2010/03/24(水) 09:05:11
>>319
分秒合わせてくるとか、何コレコワイwwwww
321デフォルトの名無しさん:2010/03/24(水) 11:45:52
こいつ自作板にも出るし何年も前からpc11鯖に寄生してるボットだろ
322デフォルトの名無しさん:2010/03/24(水) 14:50:56
eclipseのプラグインで使いやすいお勧めのSwingサポートプラグインはVisual Swing for Eclipseになるでしょうか?
323デフォルトの名無しさん:2010/03/25(木) 11:27:37
Swing Application Frameworkってどう思います?
324デフォルトの名無しさん:2010/03/25(木) 11:34:09
ok
325デフォルトの名無しさん:2010/03/25(木) 11:44:49
>>323
フレームワークというかライブラリ?
326デフォルトの名無しさん:2010/03/25(木) 11:51:42
>>322
Visual Swing for Eclipse かな
327デフォルトの名無しさん:2010/03/25(木) 13:25:28
いや Visual Swing for Eclipse でしょ。
328デフォルトの名無しさん:2010/03/25(木) 14:03:10
JDK1.5で画面をデフォルトプリンタで印刷したいんですけど、print()の引数のGraphicsってどうやって取得すればいいのでしょうか?
というか、swingの印刷のサイトがなさ過ぎ…
あまりやんないんですかね
329デフォルトの名無しさん:2010/03/25(木) 14:45:01
>>323
netbeans platformでおk
まあこっちはミドルウェアに近いが。
たとえばなんだろうか、専ブラの類の規模を作ろうとするとApp Frameworkでは物足りない。

もとからSwing初学者がjavaの流儀でGUI作るのを容易にする目的のものだからね。
それがJava 5のEoDの一環でJDKに含まれるようになるだけだから。

#俺はTiming Framework入れて欲しい。Swing Labsの成果はもっと取り込んでいいと思う。
330デフォルトの名無しさん:2010/03/25(木) 18:46:04
swingにフレームワークはいらんだろう
331デフォルトの名無しさん:2010/03/25(木) 18:49:37
Swing 自体がフレームワークじゃねぇの。
あと自分とこの要件向けにドメインフレームワーク作るだけだろ。
332デフォルトの名無しさん:2010/03/25(木) 18:52:46
>>331
ドメインフレームワーク?
333デフォルトの名無しさん:2010/03/25(木) 21:52:33
SwingはToolKit
334デフォルトの名無しさん:2010/03/26(金) 00:41:08
ホント、マジで教えて欲しいんだが、
おまいらSwingで何つくってんだ?

ゲームのマップエディタつくったんだが、遅くて、見た目もイビツで
恥ずかしくて公開できやしない。
335デフォルトの名無しさん:2010/03/26(金) 01:00:44
>>334
それ Swing のせいなの?
336デフォルトの名無しさん:2010/03/26(金) 02:24:50
センスが無いと何やっても駄目な典型。
337デフォルトの名無しさん:2010/03/26(金) 04:36:59
速い言語で作ったら今度は Segmentation Violation が出まくりの糞言語とか言ってそう。
338デフォルトの名無しさん:2010/03/26(金) 10:27:46
テキストボックス入力中に、ボックス直下に入力でマッチした候補をインクリメンタルで表示する部品はあるでしょうか?
googleの入力補てんみたいなものです。
自作の必要あり?
339デフォルトの名無しさん:2010/03/26(金) 10:45:21
>>338
標準にはない。

原理的にはコンボボックスのエディターが持っているテキストが変更
されるたびに、その時点のテキストに応じてモデルが返す候補一覧を
変化させればよい。

例(ソース付き): http://terai.xrea.jp/Swing/ComboBoxSuggestion.html
340デフォルトの名無しさん:2010/03/26(金) 13:24:56
>>334
Swing以外で、サクサクで見た目も良いツールつくれるなら、そっち使えば良い。
無能ほど他人のせいにしたがる。
しかも無能は自分の無能さに気づく能力も無い。
341デフォルトの名無しさん:2010/03/26(金) 22:37:45
>>334
オープンソースにして公開すれば、
誰かが高速描画仕様に修正してくれるんじゃないかな。
ここには有能な人も多いみたいだし。
俺は嫌だけどね。
342デフォルトの名無しさん:2010/03/27(土) 04:10:43
価値有るものじゃないと弄る気にも成らないけどな。
金払ってプログラマに拘束化してもらうのが確実。
343デフォルトの名無しさん:2010/03/27(土) 07:36:53
他人を無能呼ばわりする奴が、
どの程度描画を高速化できるのか興味あるね。
さぞかし有能なコードを書いてくれるんだろうよ。
まずはソースをうぷだ。
344デフォルトの名無しさん:2010/03/27(土) 09:19:03
俺は、この前このスレじゃないがソースうpしたけど、
ソースについて何の評価も貰えなかった・・・

そんな俺は腐ったミカンですか?
345デフォルトの名無しさん:2010/03/27(土) 09:21:54
2ch ではマジレス・ソースうpするとまともにコメントつかないのが常識
346デフォルトの名無しさん:2010/03/27(土) 09:27:07
ヒットアンドアウェーの チンカス ばっかだしな。
347デフォルトの名無しさん:2010/03/27(土) 10:29:57
ソースをうぷったのにコメントを戴くことができなかった7つの理由

1.閲覧者のレベルが低かった
2.閲覧者の得意分野が違っていた(学校、仕事、趣味、ゲームetc.)
3.問題のある部分は見当たらなかった
4.ソースが巨大すぎて読む気が失せる
5.あまりにも低レベルすぎて指摘のしようがない
6.誰も見てくれなかった
7.その他

>>344
もう1度ここでうぷってみたら?有能者が応えてくれるんじゃないの
348デフォルトの名無しさん:2010/03/27(土) 10:59:18
有能な人のソースを見てみたい
凄く速いのかな
349デフォルトの名無しさん:2010/03/27(土) 11:03:42
宿題スレでお礼がくると
あぁネタだったんだなぁ
と思ってしまう
350デフォルトの名無しさん:2010/03/27(土) 11:16:44
>>347
1、3、4、6はありえないと思う。
5は、そこまでひどくないとは信じたい

JAVAの勉強で作ったゲームなんだけど・・・
何度も晒すのは、ちょっと気が引ける・・・
ゲームは、まぁまぁおもしろいとは言ってくれたけど
351デフォルトの名無しさん:2010/03/27(土) 11:25:43
まずはソースをうぷだ
話はそれからだ
352デフォルトの名無しさん:2010/03/27(土) 11:25:53
あえて本気を出さないソースがうけるのか
353デフォルトの名無しさん:2010/03/27(土) 11:46:16
これがうpしたゲームだけど・・・
http://toku.xdisc.net/cgi/up/qqq/nm22064.zip

かなり不器用な処理してると思うけど、
まだまだ勉強中なので
いろいろ教えてもらえると嬉しい
354デフォルトの名無しさん:2010/03/27(土) 12:20:48
スネークゲームか。

implements Config はやめて static import
NyoroArrayは事実上双方向リストなので、LinkedListあたりを利用
できないか考える。

Foodのもつ画像は、 static イニシャライザを使って、クラス全体で
10個持てばよいと思う。

今はノーマルエサがダイエットエサの出現状態まで管理までしている
ようだけど、ノーマルエサとダイエットエサは同時に各1つしか出な
いみたいなので、ゲーム世界側でそれぞれ1つずつ持つのがよいのでは
ないだろうか。

では、ごはんー。
355デフォルトの名無しさん:2010/03/27(土) 13:22:40
ActionKey.java
値が0と1しかないのなら、intじゃなくてbooleanを使ったほうがよいのでは。

初期化
private boolean status = false;
メソッド
public void press() { status=true; }
public void release() { status=false; }
public boolean isPressed() { return status; }
356デフォルトの名無しさん:2010/03/27(土) 14:18:47
ゲームの出来ない(コンピュータにも余裕で負けるよ)、俺にはさっぱりルールが分からなかったorz
可愛い女の子の絵だけで、お腹が一杯です
357デフォルトの名無しさん:2010/03/27(土) 14:20:09
ゲーム本体の良し悪しはともかくとして、
問題にしてるのはマップエディタの方では?
358デフォルトの名無しさん:2010/03/27(土) 14:44:25
uploaderはこちら
http://toku.xdisc.net/
359デフォルトの名無しさん:2010/03/27(土) 14:49:47
>>353
向こうのスレで「面白い」とだけコメントしてたものです…

ぱっと見て気になったのは>>354で書かれてる最初のものですね。
あと全般的に、定数は自分だったらEnum使うかな。
Enum使うと振る舞いを持たせられるので夢がひろがりんぐ。

Nyoro2のメインメソッドの中身はSwingUtilities.invokeLater使ってEDTで呼ぶべきでしょうね。
http://java.sun.com/docs/books/tutorial/uiswing/concurrency/initial.html

それとJava関係ないですけど、NetBeansのnbproject/privateディレクトリ以下は
配布しない方が良いかもです。
http://netbeans.org/kb/docs/java/import-eclipse_ja.html の"NetBeans プロジェクトファイル"
360デフォルトの名無しさん:2010/03/27(土) 14:53:18
>>357
ゲームの人とマップエディタの人は別人じゃないの?
361デフォルトの名無しさん:2010/03/27(土) 15:00:44
ゲームクリアしたら女の子とのセクロスシーンが出てくる、
なんてことになったらウレシくてティンコ旅立ち
362デフォルトの名無しさん:2010/03/27(土) 15:03:27
マッポエディッタがうぷられて、マッポvs有能人の壮絶なバトル、ってなことになったら面白いのになあ
363デフォルトの名無しさん:2010/03/27(土) 16:18:30
マップのセルが全部JButtonとか、グリッドがJTableとか、
そんなとこをエスパー予想。

…いや、Wizardryレベルのマップならそれで十分なんだけどさ
364デフォルトの名無しさん:2010/03/27(土) 16:56:23
>>353
ゲームは全然知らないけど、それでも問題が多いのは分かる。
たぶん354, 355のような指摘は100個くらいは挙げらるし、クラス設計にも問題がある。
(が、設計の能力はすぐには身につかない)
普通の職業プログラマに対してなら、『プログラミング作法』、『Effective Java 第2版』、
『Java言語で学ぶデザインパターン入門』あたりの書籍を勧めるところだけど、ゲームは
文化の違い等があるから、たぶんこれらの本を読むのは遠回りになるだろうな。

>>355
おまえもいろいろと酷そうだなw
boolean型でstatusなんて名前はない(名前は重要だぞ)

private boolean pressed = false;
public boolean isPressed() { return pressed; }

普通はこう。(ただしクラス設計としては問題がある)
365デフォルトの名無しさん:2010/03/27(土) 21:11:34
誰か、statusという名前が駄目でpressedならオケという理由を教えてくれまいか
ていうか、変数名に動詞を使うのにはめちゃくちゃ違和感がある
俺の場合、動詞から始まる名前はメソッドにしか使わないからなぁ
366デフォルトの名無しさん:2010/03/27(土) 21:20:09
>>365
status = true とか return status とか見てもなにしてんのかわかりにくいだろ。
あと、 pressed は動詞じゃないから。
367デフォルトの名無しさん:2010/03/27(土) 21:28:38
statusでは「何の」状態なのか分からない
pressedなら押したかどうかなんだなと分かる
まあキーなら押したかどうかしか状態がないだろという話もあるが
メソッドと命名の方向性は合わせた方がいいと思う
368デフォルトの名無しさん:2010/03/27(土) 21:48:11
そういうことか…レスサンクスコ。
369デフォルトの名無しさん:2010/03/27(土) 21:54:16
とりあえずJavaコーディング規約おいときますね。
http://www.objectclub.jp/community/codingstandard/CodingStd.pdf

これ以上の命名法の話題は命名系のスレでやった方がいいんじゃないかな。
370334:2010/03/27(土) 21:56:30
別にこまってないし、ソースupする気なんてないよ
遅い理由はJTableのレンダラにJLabelを使っているからなんだけど手を抜こうとしたらこれが都合よかったのでそうしてるだけだし。

にしても、あとはSwingのせい。
DataGridView@C#でやったらどんだけ高速だったことか。

見た目がいびつなのは、レイアウトマネージャーの動作がキチガイだから。
SWTのGridLayoutが神レイアウトだと思うんだけど、これのSwing版発見したのでつかってみて

ttp://code.google.com/p/uface/issues/detail?id=8

掲示板添付のzipが使えた。
正式にはどこで公開されているのか知らん。英語わからんし。
371デフォルトの名無しさん:2010/03/27(土) 22:01:10
俺はSwingを使うときは無条件でSwingUtilities.invokeLater()を使ってたけど、
よくよく考えると結構重要なのかも
http://wisdom.sakura.ne.jp/system/java/swing/swing4.html

353のソースは、まあ、よくできてるんじゃね?
俺も初心者レベルなんで詳しいことはよくわからんがw
あとは…

ifが連なってるところはswichi にしたほうがいいとか(一般的には条件分岐よりも
ジャンプのほうが速いはず…だけどこれはコンパイラ依存か)、
女の子の画像は裸のほうがいいとか、そのくらいしかわからん。

個人的に、画像の直貼り付けは遅そうな感じがするけどどうなんだろうね。
(もちろん、速度を気にしないなら直貼り付けで全く問題ないけど)
画像データを配列に読み込んで、その配列を処理したほうが速い気がするんだけど、
それをやるとかなりソースが複雑になりそうだなあ。
372334:2010/03/27(土) 22:06:05
連続書き込みすまん

swtgridlayoutで見た目は完全に改善された。かなりオススメ

で、とりあえず俺はJavaもSwingも上級レベルで使えると自負してるけど

これで(公開できるほど)まともなアプリをつくるのは
不可能または、並々ならぬ努力が必要と思うので
本気でみんなが何をつくっているのか気になる。
何かまともなもん作ったって事例があったら教えてくれ。
373デフォルトの名無しさん:2010/03/27(土) 22:08:09
>>371
あまり関係ないけど、コンパイラ依存じゃなくてVM依存だと思うw
374353:2010/03/27(土) 22:55:33
おぉ!沢山のレスありがとうございました!
こんなに沢山アドバイス貰えるとは思ってなかったよ
知らない単語も出てきてるし、参考URLまで貼ってくれてるしで、
いろいろ調べて勉強してみます。
ありがとうございました

ちなみに、トップの絵書いてくれた友達にも、
JAVA質問スレと、このスレで絵についてのレスされてる事を教えた所すごく喜んでましたw
375デフォルトの名無しさん:2010/03/28(日) 00:03:48
>>364
で、あんたは>>347のうちどれなの?
376デフォルトの名無しさん:2010/03/28(日) 00:05:46
バカでも出来るコードレビューには食いつきが良いのなw
377デフォルトの名無しさん:2010/03/28(日) 00:05:59
>>370
> 別にこまってないし
じゃあなんで>>198から1ヶ月もこのスレで頑張ってるの?
378デフォルトの名無しさん:2010/03/28(日) 00:07:45
>>376
で、あんたは>>347のうちどれなの?
379デフォルトの名無しさん:2010/03/28(日) 00:10:32
>>378
誰と勘違いしてるの?バカなの?
380デフォルトの名無しさん:2010/03/28(日) 00:21:39
また猛牛が暴れだしたようだな
381353の友達:2010/03/28(日) 00:21:55
>>361さんのために300点クリア絵を描きました><*
皆さんのレス嬉しかったです><*
ありがとうございました><*

ttp://a-draw.com/contents/uploader2/src/up19034.gif
382デフォルトの名無しさん:2010/03/28(日) 00:24:27
うpするにしてもレベル低いソースの方が食い付きがいいよね
383デフォルトの名無しさん:2010/03/28(日) 00:29:38
>>381
なんだコイツ
受け狙いのつもりなのだろうか
384デフォルトの名無しさん:2010/03/28(日) 00:31:30
くだらねぇ話でスレ延びてんな。Swing 関係ねぇじゃん。
もう Java 総合スレで統一したらどうだ。
385デフォルトの名無しさん:2010/03/28(日) 02:36:03
嫌あっちで反応悪くて、こっちでうpしたら、みんな気合い入れてコメント下から、当人らが興奮したってだけだろ。
どうせswingスレは普段過疎ってるから有効利用なんじゃねw
386334:2010/03/28(日) 04:26:13
>>377
おおおぉ、凄いチェック力。>>198書いたのすっかり忘れてた
このスレで頑張ってるというか、グチ&みんなが何つくってるのか興味で書き込みしてるだけなんだけど

.NETが性能も開発効率も見た目も圧倒的に良いのに、
いまだSwingにこだわる君たちの思考に興味がある
387デフォルトの名無しさん:2010/03/28(日) 04:33:39
>>386
.NET って UNIX 系 OS や Mac とかでも動いたっけ?
388デフォルトの名無しさん:2010/03/28(日) 10:43:44
春だなあ
java.netでもsf.netでもいいからSwingアプリ探してみなはれ。
389デフォルトの名無しさん:2010/03/28(日) 15:31:24
monoの再現度がまだまだ。
というかwinでMS製言語使うにしてもVC++だと思う。
390デフォルトの名無しさん:2010/03/29(月) 00:42:14
Swing と比べるなら .NET ではなくて
Windows Forms や WPF じゃなかろうか。
391デフォルトの名無しさん:2010/03/29(月) 21:15:04
JDK1.5なのでSwingWorkerが使えません。
この場合

1秒間隔でTimer起動→スレッド起動→バックエンド処理→待ち受け画面表示→イベント処理終了でswingスレッドを戻す
 →バックエンド処理終了→Timerのstaticに終了フラグセット(継承して持たせた)
  →Timer起動で呼ばれる→フラグ立ってるので待ち受け画面非表示

こんなことしないといけないんすかね…
あ〜1.6で書きたい。ただ1.5以上サポートなんで1.6依存でかけない…
392デフォルトの名無しさん:2010/03/29(月) 21:42:41
ライセンスとかに問題がなければ
SwingWorkerをパッケージに含めてしまうというのも可能かも。
あるいは似たようなクラスを自分で書くとか。
393デフォルトの名無しさん:2010/03/30(火) 00:33:05
>>370
1000x1000程度のJTableなら、全セルにイメージ貼り付けても、
スカスカ動くがな。
大方、全セルにJLabelをnewしてつっこんだとかだろ。
394デフォルトの名無しさん:2010/03/30(火) 01:36:30
>>391
https://swingworker.dev.java.net/
This project is a backport of SwingWorker included into 1.6.
395デフォルトの名無しさん:2010/03/30(火) 10:10:40
>>394
1.5で使えるとかって書いてないんですけど使えるものなんですかね?
396デフォルトの名無しさん:2010/03/30(火) 10:20:14
たいていの質問回答スレには、最初の一行しか読まずに回答始めるあわてんぼさんが常駐してる。
397デフォルトの名無しさん:2010/03/30(火) 11:09:30
This project is a backport of SwingWorker included into 1.6.
を訳してみろ…
398デフォルトの名無しさん:2010/03/30(火) 11:17:06
あ… もし backport の意味がわからなかったら用語辞典とかで調べるといいよ
http://e-words.jp/w/E38390E38383E382AFE3839DE383BCE38388.html
399デフォルトの名無しさん:2010/03/30(火) 11:35:50
意味が分かりました。すみません。躍起になって1.5ばかり探してました・・・
400334:2010/03/30(火) 19:48:53
>>393
newなんてするかい・・そこだけはりつけちゃる
public Component getTableCellRendererComponent(JTable table, Object data,
boolean isSelected, boolean hasFocus, int row, int column) {
MapTable mapTable = (MapTable) table;
if (!(mapTable.enableStartColumn <= column && column < mapTable.enableStartColumn
+ mapTable.enableLength)) {
this.setIcon(null);
} else {
if (data != null) {
int item = (Integer) data;
if (item != -1) {
PalletTableItem pi = palletTable.getValueAt(item);
if (pi != null) {
this.setIcon(pi.icon);
} else {
this.setIcon(null);
}
} else {
this.setIcon(null);
}
} else {
this.setIcon(null);
}
}
if (isSelected) {
this.setBorder(lineBorder);
} else {
this.setBorder(emptyBorder);
}
return this;
}
401デフォルトの名無しさん:2010/03/31(水) 00:40:49
きったねー
402デフォルトの名無しさん:2010/03/31(水) 01:14:53
>>400
動作には関係ないが、ソースは少し見やすくなったかもしれない。

public Component getTableCellRendererComponent(JTable table, Object data,
boolean isSelected, boolean hasFocus, int row, int column) {
MapTable mapTable = (MapTable) table;
Icon icon = null;
Integer item = (Integer) data;
if (mapTable.enableStartColumn <= column
&& column < mapTable.enableStartColumn + mapTable.enableLength
&& item != null && item != -1) {
PalletTableItem pi = palletTable.getValueAt(item);
if (pi != null) {
icon = pi.icon;
}
}
this.setIcon(icon);
this.setBorder(isSelected ? lineBorder : emptyBorder);
return this;
}
403デフォルトの名無しさん:2010/03/31(水) 04:22:34
>>393 は逃げたか…
404デフォルトの名無しさん:2010/03/31(水) 05:24:22
単に図星だったから、慌ててソース書いただけだろw
405デフォルトの名無しさん:2010/03/31(水) 06:55:43
そう思いたいんですね
406デフォルトの名無しさん:2010/04/01(木) 08:45:49
最初から示さなかった時点で負けとしか。
後だし乙。
407デフォルトの名無しさん:2010/04/01(木) 15:31:23
JTreeの要素の並び順ってJtreeの機能で設定することができるでしょうか?
それとも登録の前にソートして、ソートされた順番で登録しないといけないでしょうか?
408デフォルトの名無しさん:2010/04/01(木) 16:07:36
>>407
TreeNodeに対して children() を呼んだときにソート済みで返ってくればよいと思う。
UIよりはモデル側の問題。
409デフォルトの名無しさん:2010/04/01(木) 20:20:00
>>406
誰と戦ってんのおまえw
410デフォルトの名無しさん:2010/04/02(金) 02:39:22
>>409
お前だろ、粘着乙www
411デフォルトの名無しさん:2010/04/06(火) 23:17:26
javafx を始めたいんだけど、入門書ってありますか?
412デフォルトの名無しさん:2010/04/07(水) 04:06:16
javafxは辞めておいたほうが。
413デフォルトの名無しさん:2010/04/07(水) 04:32:26
入門レベルは英語ばっかだね。
414デフォルトの名無しさん:2010/04/08(木) 03:31:16
LaboBrowser っての使ってみたけど全然ダメだの。
マトモに表示できるのは Google トップくらいだ。
415デフォルトの名無しさん:2010/04/08(木) 03:56:42
Lobo? あれは JEditorPane よりもマシという程度
416デフォルトの名無しさん:2010/04/08(木) 04:05:08
一般的なブラウザ >> [実用性の壁] >>> Lobo >> Swing >>>> HotJava
417デフォルトの名無しさん:2010/04/08(木) 07:42:00
JWebPaneまだ〜?
418デフォルトの名無しさん:2010/04/08(木) 22:47:25
Flying Saucerの出番か!?
419334:2010/04/11(日) 12:07:15
おひさしぶり!

んでもって君らが何つくってんのか教えてくれんの?
420デフォルトの名無しさん:2010/04/11(日) 22:24:28
JaneStyleとかすごい恥ずかしいUIだけど公開されてんぞ?
421デフォルトの名無しさん:2010/04/12(月) 20:46:27
a
422デフォルトの名無しさん:2010/04/13(火) 13:09:55
window自体に最優先のキーイベントを登録したいのですが、
要は、どのパネル、どのコンポーネントを開いていても呼ばれるイベントです。
WindowにWHEN_IN_FOCUSED_WINDOWのイベントをgetActionMap().put(action, action)するみたいな感じです。
423デフォルトの名無しさん:2010/04/13(火) 13:10:50
ほほう。それでそれで?
424デフォルトの名無しさん:2010/04/15(木) 10:17:51
>>422
KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventPostProcessor(new KeyEventPostProcessor() {
    public boolean postProcessKeyEvent(KeyEvent e) {
        if (e.getID() == KeyEvent.KEY_PRESSED)
            System.out.println(e);
        return false;
    }
});

このサンプルコードのようにすると出来るようです。
あとはKEY_PRESSEDの所と、System.out.println(e)の所を適切に変えればOKです。
1日掛けて調べました。。。

もし宜しければ、私のブログの応援クリックをしてもらえませんか?
http://study-blog.jugem.jp
425デフォルトの名無しさん:2010/04/15(木) 10:21:33
間違えました。

KeyboardFocusManager.getCurrentKeyboardFocusManager().addKeyEventDispatcher(new KeyEventDispatcher() {
    public boolean dispatchKeyEvent(KeyEvent e) {
        if (e.getID() == KeyEvent.KEY_PRESSED)
            System.out.println(e);
        return false;
    }
});
426デフォルトの名無しさん:2010/05/01(土) 20:59:02
JTableに行ヘッダを追加しようとJScrollPane#setRowHeaderView()でJListのインスタンスを渡しました。
行ヘッダは追加されたのですが、
行ヘッダのJListでカーソル移動やマウスドラッグをするとJTable側がついてこず
JListだけがスクロールします。

JTable側も連動させるにはどうすればよいのでしょう??
427デフォルトの名無しさん:2010/05/02(日) 21:41:40
>>426
scrollPane.getRowHeader().addChangeListener(new ChangeListener() {
    public void stateChanged(ChangeEvent e) {
        scrollPane.getViewport().setViewPosition(scrollPane.getRowHeader().getViewPosition());
    }
});

これで、カーソル移動とマウスドラッグはOKでした。たぶん他も大丈夫かと思います。
もしよろしければ>>424のクリックをお願いします。
428デフォルトの名無しさん:2010/05/03(月) 09:12:47
>>424
削除ガイドライン違反

8. URL表記・リンク
宣伝・罠・実行リンク
・明らかに宣伝を目的としたリンク・クリックや訪問で課金が発生するもの等は、宣伝掲示板以外では削除します。
429デフォルトの名無しさん:2010/05/03(月) 13:13:52
こんなところで宣伝したら馬鹿に突撃されるぞ。
430デフォルトの名無しさん:2010/05/03(月) 14:48:00
専門板なら平気だよ。
431デフォルトの名無しさん:2010/05/03(月) 23:02:19
>>428
悪気はないんですけどね。
まぁ無職で時間にゆとりがあるので、色々やっとるという訳です。
とりあえずクリックした人はいないようですw

どうにかやっていく方法はないものでしょうか。

1.質問が出る。
2.アフィリエイトをクリックしてもらう。(1クリック数円)
3.解答をする。

という形式にしたいなぁと思っております。

>>429,430
基本的にプログラム板は過疎っていますからね(^^;
432デフォルトの名無しさん:2010/05/03(月) 23:03:37
↑スレ違い。適切なスレでやってください
433デフォルトの名無しさん:2010/05/03(月) 23:33:06
>>432
そこを何とかお願いします。
434228:2010/05/04(火) 07:47:44
じゃあ俺は>>424のブログ?のコメントをエロサイトの宣伝に使わせてもらうよ。
だめ?そこを何とかお願いします。
435デフォルトの名無しさん:2010/05/04(火) 09:07:07
>>434
あ、おはようございます。Give&Takeの精神でお願いします。
436デフォルトの名無しさん:2010/05/04(火) 12:46:21
宣伝嵐報告してきておk?
437デフォルトの名無しさん:2010/05/04(火) 12:53:21
>>436
>>422,426にも意見を聞きたいところですけど。
438426:2010/05/05(水) 12:40:32
>>427
できました!つたない質問で的確な回答を頂けてとても感謝しています。
クリックしておきましたよ(^^
439427:2010/05/05(水) 20:19:49
>>438
こちらこそ、ありがとう。
迷惑でなければ今後も質問があれば調べて回答したいと思います。
440デフォルトの名無しさん:2010/05/10(月) 22:39:00
1つのJPanelのインスタンスを、複数のJFrame上に同時に描画するにはどうすればよいですか?
441デフォルトの名無しさん:2010/05/10(月) 23:05:40
シリアライズしてネット越しに垂れ流してデシリアライズとか
442デフォルトの名無しさん:2010/05/10(月) 23:57:41
>>441
それじゃ「1つのインスタンス」にはならないじゃん。
>>440
共有すべきはmodelであってviewじゃない。
443デフォルトの名無しさん:2010/05/11(火) 00:04:46
          ____
       / \  /\ キリッ
.     / (ー)  (ー)\    共有すべきはmodelであってviewじゃない
    /   ⌒(__人__)⌒ \
    |      |r┬-|    |
     \     `ー'´   /
    ノ            \
  /´               ヽ
 |    l              \
 ヽ    -一''''''"~~``'ー--、   -一'''''''ー-、.
  ヽ ____(⌒)(⌒)⌒) )  (⌒_(⌒)⌒)⌒))
444デフォルトの名無しさん:2010/05/11(火) 00:33:59
445デフォルトの名無しさん:2010/05/11(火) 22:36:26
>>443-444
ワロタ。
446デフォルトの名無しさん:2010/05/12(水) 17:37:21
>>440
描画する数だけインスタンスが必要。
447デフォルトの名無しさん:2010/05/14(金) 00:08:32
なんでviewじゃ駄目なんですか?
448デフォルトの名無しさん:2010/05/14(金) 01:29:42
>>447
GUIコンポーネントは親を1つしか持てないから、複数のコンポーネントで1つの子を共有することができない。
参考: java.awt.Component とか java.awt.Container のソース。
449デフォルトの名無しさん:2010/05/14(金) 01:31:59
てっきりイベントがらみで駄目なのかと思った
450デフォルトの名無しさん:2010/05/14(金) 10:36:09
>>449
それもあるから親を1つしか持てないようになってるんだろう
451デフォルトの名無しさん:2010/05/25(火) 10:07:14
ルックアンドフィールは、複数同時には使えない?

JFrame 2つつくって、片方は、javax.swing.plaf.metal.MetalLookAndFeel
もう片方は、UIManager.getSystemLookAndFeelClassName() でとってきたやつを
適用する、みたいなことはできないようになってるってことでいい?
452デフォルトの名無しさん:2010/05/25(火) 10:14:23
JFrame を表示する前に都度 UIManager#setLookAndFeel()、
SwingUtilities#updateComponentTreeUI() で指定してやれば
見た目は別々になるんじゃないの。全くお勧めは出来ないが。
453デフォルトの名無しさん:2010/05/25(火) 10:28:24
MetalLookAndFeelで1.1や1.2のころの昔の紫色のUIに変更するにはどうするんですか?
454デフォルトの名無しさん:2010/05/25(火) 10:32:22
JFrame.setDefaultLookAndFeelDecorated(true);
JDialog.setDefaultLookAndFeelDecorated(true);
の事か?
455デフォルトの名無しさん:2010/05/25(火) 18:33:26
>>440
http://www.javakb.com/Uwe/Forum.aspx/java-setup/11894/Copying-the-View-of-a-JPanel

このページの2番目のサンプルコードがとても参考になると思います。

>>451
VMを2つ起動という手も・・・ないか。
456デフォルトの名無しさん:2010/05/25(火) 20:26:49
>>451
できるけど挙動が狂うって話があった気がする。
457デフォルトの名無しさん:2010/05/25(火) 20:33:23
>>452 >>456
基本できないよな 少なくともAPI作り手はそんなこと想定しなていようだな
サンキュー
458デフォルトの名無しさん:2010/05/25(火) 23:53:25
>>453

LookAndFeel laf = new javax.swing.plaf.metal.MetalLookAndFeel();
MetalTheme theme = new javax.swing.plaf.metal.DefaultMetalTheme();
MetalLookAndFeel.setCurrentTheme(theme);
UIManager.setLookAndFeel(laf);

多分これのことかな?
459デフォルトの名無しさん:2010/05/30(日) 00:19:25
>>443
あたりに関連して、
frame1 : JFrame --- button1 : JButton
frame2 : JFrame --- button2 : JButton
みたいに、なってて、button1とbutton2が同じモデル buttonModel0をsetModelされてるとき、
frame1をクローズして、frame1がGCで回収された後でも、button1は、buttonModel0からリスナ経由で
参照されてるから残る。
もちろん、button1を再利用したいときもあるけど、そのままメモリリークになりやすい。
どこかのタイミングでプログラマの責任で、button1.setModel(null)して、モデルへの参照を切るべきなんだろうけど、
なんか、定石みたいな書き方ありますかね?
460デフォルトの名無しさん:2010/05/30(日) 00:27:38
>>459
frame1 のクローズイベントで切り離す。
461デフォルトの名無しさん:2010/06/06(日) 22:28:00
JTable でセルをdbl clickだんどするとそのセルをエディットできますよね。
これを無効にしたいんですがどのAPIでしょうか。
それにしてもJTableは複雑ですよね・・・
462デフォルトの名無しさん:2010/06/06(日) 22:53:53
日本語でおk
463デフォルトの名無しさん:2010/06/06(日) 23:12:24
JTableは本当に複雑ですけど1つのコンポネントにあれこれ機能を詰め込みすぎって感じがします。
dbl clickやF2でセルを編集できるようになりますがこれをoffにするにはどうするんですか?
464デフォルトの名無しさん:2010/06/06(日) 23:49:21
JTable.setDefaultEditor()にnullを渡しておくのはどうだろう。
本来は自作TableModelを作るべきだと思うが。
465デフォルトの名無しさん:2010/06/07(月) 00:33:23
>>464
javadocみるとそれしかないかなって思ってましたけど、一番単純な方法はやはりそれでしょうね。
javaはclassの継承を中心とした言語設計なのに、swingはDIというかMVCというかプラグインというか、java langにとってswinの設計思想はまったく異質なので非常に複雑なライブラリとなっています。

愚痴を言うわけではないですが複雑な割にこの程度の機能(それもtableとして当たり前のような機能)しかないswing.tableなら、
少なくともhtml,dom,xmlやgridbag + cellの自作コンポでほとんど用が足りると思います。
javascript.prototypeのような考えならまた違ったのかもしれませんが、それをいうとあとの祭りなのでしょうね。
それと日本語のswingを扱ったHPは皆無ですね。グーグルでもこのスレがよくヒットします。
466デフォルトの名無しさん:2010/06/07(月) 00:41:38
ああ、誤解を招きかねないですが、spiなら問題ないですがswingのようなui,skinableではspiや
plubableじゃなくてcssや、顧客一人一人に合わせたskin(script)のようにもっと軽く設定できない
(つまりskin,look,feelingについては固定の設定は存在しないという設計思想)と、UI開発者は敬遠するかなって思います。
webクリエーチャ達の髪の毛の軽さと同じく、JEditorPaneのhtmlエディタもしかりです。
467デフォルトの名無しさん:2010/06/07(月) 05:26:11
>>465-466
SwingはJavaプログラマのためのライブラリです。
htmlやcssの方が得意な人のためのライブラリではありません。
SwingにhtmlやcssでUIを設定できないと文句を言うのはお門違いだと思います。
468デフォルトの名無しさん:2010/06/07(月) 13:05:58
正確に言うとjavaじゃ無くてjvmプラットのUI
469デフォルトの名無しさん:2010/06/07(月) 15:55:54
xmlならsynthがある。
JEditorPaneは最初はやる気満々だったけど扱おうとするドキュメントが方言だらけで投げた。
というかここら辺のフォローはSwing labの管轄なんだが。

まあ俺々思想が強すぎて>>465の意図がよく分からんが。
470デフォルトの名無しさん:2010/06/07(月) 16:02:48
synthはswing uiに新しい機能を定義したり追加したりするものじゃないですよね・・・
471デフォルトの名無しさん:2010/06/07(月) 16:19:01
swin sets 3も見てみましたけど、ただ高機能にしただけってところじゃないですかね。
それら機能の追加などカスタムなことをユーザ(開発者)が簡単にできるようにしないと汎用コンポでもないし汎用ライブラリ(javax swing)としても意味ないです。

少なくともjava,c++(qt3,qt4),dotnet,gameライブラリを当たり前のように使える開発者は時間があればそれぐらいのコンポネントは普通に作れますよ。
swing labのコンポネントはnetbeans apiに組み込んじゃったほうがいいんじゃないかと思います。
今はjavafxでしょうし、lgplのようですし、せっかく有用なコンポなのでswtと同じ感じでnetbeansを特に使う人達への特権ってことで。
472デフォルトの名無しさん:2010/06/07(月) 16:42:55
ブログでやれ
473デフォルトの名無しさん:2010/06/08(火) 11:39:06
キーバインドの変更だけならInputMap使うほうが素直では。
474デフォルトの名無しさん:2010/06/08(火) 21:52:13
htmlしかコーディング出来ないスキルでguiやろうってのが無謀。
475デフォルトの名無しさん:2010/06/26(土) 19:50:11
ahe
476デフォルトの名無しさん:2010/07/02(金) 10:14:55
低速だとはおもわない
477デフォルトの名無しさん:2010/07/02(金) 13:15:39
伝統だから付いてるだけだよ。
# 「Java 高速 GUI SWT」に対する皮肉も込めて…
478デフォルトの名無しさん:2010/07/03(土) 02:29:19
教えてください。
JFrame→JDialog(モーダル)→JDialog(モーダル)の画面遷移で、
最後のJDialogをdispose()すると、最後のJDialog残像が残るんですが、(何回かやってると)
dispose()した後、2番目のJDialogをrepaint()しないといけないもんですか?

実際はもうちょっと複雑で、
2番目のJDialogの中にtableがあってTableのセル内のボタンを押した時に、
3番目のJDialogが開くようになってます。
そこで、選択した物をテーブルに表示するという処理になります。

3番目のJDialogを引数無で作成すると残像は起こらないんですが、
オーナー(2番目のJDialog)を指定してJDialogを作成した場合のみ問題が発生します。
479デフォルトの名無しさん:2010/07/03(土) 09:30:08
hideしてからdispose
480デフォルトの名無しさん:2010/07/03(土) 18:04:51
1.5以降ではhide()は推奨されないメソッドになっているため、
JavaDocの通り、setVisible(false)をしてからとか、
windowクラスのtoBack()をしてからdispose()をするなど、
色々と試してみたんですがうまくいきません。(モーダルなのでtoBack()は効くかもわかりませんが(汗))

あとは、windowsの問題かと思い、VM引数のnoddraw=trueでやってみたりもしたんですがダメでした・・

奥が深いですね・・・
481デフォルトの名無しさん:2010/07/03(土) 18:19:52
それが再現出来るような説明を付けてバグ報告
482デフォルトの名無しさん:2010/07/03(土) 23:55:02
3番目のJDialogをEventQueue.invokeAndWait()経由で開いてみるのはどうだろう。
483デフォルトの名無しさん:2010/07/04(日) 18:14:32
先回りエスパーでinvokeLaterと修正してみるテスト
484デフォルトの名無しさん:2010/07/04(日) 23:58:22
SwingUtilsですね
確認してみます。

色々と助言ありがとうございます。

解せないのは、
オーナーを指定した場合と、していない場合の動作ですが
まだわからないことが多いので勉強してみます。
485デフォルトの名無しさん:2010/07/09(金) 12:48:41
Apache pivotのWTKって、Swingの補完に使えんのかな。
486デフォルトの名無しさん:2010/07/17(土) 17:38:40
Java SE 6環境でNetBeans6.9を使ってSwing勉強中なんですが、手動でフォーカス制御することができなくて詰んでいます。
調べてみたところフォーカス指定にはFocusTraversalPolicyを自力実装する必要があるようなのですが、
フォーカス順が複数のパネルにまたがっている場合にどうすれば良いのか解りません。
(同一パネル内の場合はsetNextFocusableComponentと同じ動きをするpolicyを実装して想定どおりに動かすことができました)

親JPanelの中にボタンと2つの子JPanel 1, 子JPanel 2を配置して、
それぞれの子パネルにいくつかのコンポーネントが在るような画面で、
子供1と2が混在するフォーカス指定をする方法を教えていただけませんか。

例えば、子1.テキスト1 → 子2.ボタン1 → 子2.ボタン2 → 子1.テキスト2 → 親.ボタン → 子1.テキスト1といった感じです。

長文失礼しました。
よろしくお願いします。
487デフォルトの名無しさん:2010/07/17(土) 22:24:12
requestFocus()を使うんじゃないの?
488デフォルトの名無しさん:2010/07/18(日) 01:40:43
ありがとうございます。
そんなのがあったんですね。。。orz
489デフォルトの名無しさん:2010/07/18(日) 12:19:07
別人が返答してて笑った。

requestFocus()を実行するのは誰の仕事になるんでしょうか。コンポーネントが自分の次が誰なのか知っていないといけない実装は避けたく思っています。
何より次のフォーカスがそのコンポーネントの所属していないパネル上の場合は、
親を経由してしかもその先のパネルの情報まで持っていないとダメな強い依存関係が生まれませんか?

と、ここまで書いてきてmediator作れば良いのかなと少し思った。
490デフォルトの名無しさん:2010/07/20(火) 13:44:44
>>486
親JPanelから子JPanel は参照できるし、依存してもいいんだよね?

やりたいようにフォーカスしてくれる FocusTraversalPolicy 実装して
親JPanelに setFocusTraversalPolicy(policy) するだけじゃない?
491デフォルトの名無しさん:2010/07/21(水) 19:00:35
>>490
レスありがとうございます。
親Panelに独自traversalPolicyを設定しただけではダメでした。
親に対してsetTraversalPolicyProvider(true)することで期待した動作になりました。
ただ、今度は別のパネルに一度でも切り替えるとrequestFocusInWindow()が動作しない(falseが戻り、フォーカスも当たらない)状況に。

初めから画面遷移とフォーカスでハマると考えていましたけど、まさかここまでとは。
JComboBoxのeditableの値で異なる動作になるとか色々とハマりどころが多いので、
どうやってその辺りのハマり回避と使い勝手のバランスをとるかを考えると難しいですね。
492デフォルトの名無しさん:2010/07/23(金) 13:05:54
パネルごとにfocustraversalpolicyを切り替える必要がないのなら、フレームに設定したら?
493デフォルトの名無しさん:2010/07/23(金) 15:38:19
>>491
画面遷移とか、別パネルに切り替えとか後出しで出てくるし…
どういうGUIを作ってるのか書かないとアドバイスのしようもないよ?
# たぶん非標準的UIでSwingを変な使い方して自らハマリ所に突撃してるんだと思うが…
494デフォルトの名無しさん:2010/07/23(金) 21:45:41
>>492-493
ありがとうございます。
フレームにポリシー設定というのは知りませんでした。
おかげさまで全パネルで自由なフォーカス制御ができるようになりました。

情報が後出しになっているとのご指摘については申し訳ありません。
Swingを学び始めて何をどう実現できるのかを色々と試しているところなので、それぞれの問題はすべて別のプロジェクトになっています。

requestFocus()の問題は、CardLayoutにパネルを2枚add()して片方のパネルのボタンを押すともう片方のパネルを表示(CardLayout#show())する実装で、
初回表示では正しくフォーカスされるのに、2回目以降ではrequestFocusInWindow()がfalseを戻して正しくフォーカスされない状態です。

Swingはブラウザベースのアプリに比べてできることが格段に多いので楽しみながら学ばせてもらってます。
何が実現可能で何が実現困難なのか、ActiveX連携とかOCX周りとかもためしたいなと思ってます。
495デフォルトの名無しさん:2010/08/02(月) 11:56:19
テキストフィールドにフォーカスが当たった時に背景と文字の色を変えたいと思っています。

テキストフィールドのフォーカスゲインとフォーカスロストのイベントで色指定すればできたのですが
複数のテキストフィールドに対して統一的な設定をする方法があったら教えてもらえないでしょうか。
例えば100個のテキストフィールドがある時にゲインとロストで合わせて200個のメソッドを書かずにすませたいんです。
よろしくお願いします。
496デフォルトの名無しさん:2010/08/02(月) 13:28:46
>>495
どう考えてもメソッド書くのは2個でいいだろ…
497デフォルトの名無しさん:2010/08/02(月) 15:09:29
>>496
レスありがとう。
2個ですませられるやり方が知りたいです。

自分の知ってるやり方だとテキストフィールドのインスタンスにリスナー登録するから
インスタンスの数に比例してメソッドの数が増えるんです。
498デフォルトの名無しさん:2010/08/02(月) 15:42:05
>>497
やり方としては全く同じだと思うが。
FocusListener colorChangeFocusListener = new FocusListener{
 public void focusGained(FocusEvent event) {
  JComponent target = (JComponent)event.getSource();
  target.setBackground(Color.CYAN);
 }
 public void focusLost(FocusEvent event) {
  JComponent target = (JComponent)event.getSource();
  target.setBackground(Color.WHITE);
 }
}
JTextField[] textFields = new JTextField[10];
for (int i = 0;i < textFields.length;i++){
 textFields[i] = new JTextField("Hello");
 textFields[i].setColumns(10);
 textFields[i].addFocusListener(colorChangeFocusListener);
 mainPanel.add(textFields[i]);
}
499デフォルトの名無しさん:2010/08/03(火) 12:11:14
>>498
サンプルコードありがとうございました。
やっぱり個々のフィールドにリスナー定義というのは避けられないんですね。
内容は498さんのコードそのままになりそうですがリスナーグループみたいなモノが作れないか考えてみます。
500デフォルトの名無しさん:2010/08/03(火) 15:12:33
>>499
リスナーグループとかって作るのは簡単だろうけどそれって本当に必要なの?
同じ性質のTextFieldを大量につくるんならサブクラス化したっていいんだし
フレーム内のコンポーネントを再帰的にたどってリスナーをセットしてまわるコードだって
簡単に書けるだろうし…
501デフォルトの名無しさん:2010/08/05(木) 21:33:56
単にコードが汚くなるのが嫌ならファクトリで追い出すくらいにしたほうがいいぞ。
502デフォルトの名無しさん:2010/08/09(月) 19:39:23
495です。
諸事情でネット使えないところに缶詰めでした。
体は大切にした方がいいよ、ホント。

さて、継承クラスを作るっていうのは思いつきませんでした。
早速作って色変え問題は解決です。
他にも似たような問題がいくつかあったのも同様のやり方で対処できました。

簡単なログイン画面作るだけで60時間とかかかって涙目になったけど今回使った部品のハマりそうなところは一通りハマった気がします。
あとはこのハマりどころをまとめて発表すればおしまい。
ほんとにありがとうございました。
503デフォルトの名無しさん:2010/08/13(金) 04:02:06
Frameを破棄する処理がよくわからず困っています。

↓のように、生成したFrameにWindowListenerを追加し、
WindowListener.windowClosing()にてdispose()を呼び出すようにしています。

SwingUtilities.invokeLater(new Runnable() {
@Override
public void run() {
Frame frame = new Frame("Frame" + i);
frame.addWindowListener(new WindowAdapter() {
@Override
public void windowClosing(WindowEvent e) {
Window window = e.getWindow();
window.setVisible(false);
window.dispose();
}
});
frame.setVisible(true);
}
});

これで閉じるボタンを押すと確かにframeは非表示にはなりますが、
どうもframeのリソースが解放されないようなのです。

小規模かつ小数のウィンドウを生成/破棄するなら特に問題ありませんが、
Frameを拡張したクラスのフィールドに大きな画像などをもたせ、
生成/破棄を繰り返すなんてことをするとヒープ領域不足に陥ってしまいます。

frameを完全に破棄するにはどのように記述すれば良いのでしょうか。
504503:2010/08/13(金) 06:24:14
自己レスです。

画像などの保持をFrame拡張クラスでなくComponent拡張クラスにさせてFrameにadd、
disposeする前にremoveAll()を呼び出すようにしてみたところ、
画像の分のメモリ領域が回収されるようになり、
ヒープ領域不足にはならなくなりました。

Frameの分のメモリは回収されないので、根本的な解決にはなっていませんが、
取りあえず10000回開閉しても大丈夫だったので、この方向で行こうかと思います。

引き続き、何か良い方法があればよろしくお願いします。
505デフォルトの名無しさん:2010/08/13(金) 08:13:52
JFrameとかDialog,JDialogじゃないの?
imageをfreeしたいなら用途が違うけど、removeNotifyとか近いかも。
506デフォルトの名無しさん:2010/08/13(金) 10:02:02
どこかでFrameのインスタンスを掴んでいて、オブジェクトリークしてるんじゃね?
507デフォルトの名無しさん:2010/08/13(金) 11:21:16
FrameかJFrameかはっきりしてSwingならwindowClosing()じゃなくwindowClosed()のほうだな。
508503:2010/08/17(火) 02:03:33
>505-507
返信ありがとうございます。
java.awt.Frameを使用しています。
Window、JWindow、Dialog、JDialog、JFrameでも試してみましたが、同じ問題が発生しました。

>505
imageも含む、Frameインスタンスをfreeしたいと思っています。
imageのfreeのみであれば、>504の方法で実現できたのですが、
どうもFrame自体はfreeされないようなので、何とかならないかなあという状況です。

removeNotify()はツールキット以外からは呼ばないようにと
ドキュメントに記述されていたので、触れないようにしていました。
試しにprintデバッグしてみましたが、
どうやらウィンドウを閉じる過程で内部的に呼び出されているようでした。

>506
リークしないようにFrameへの参照をすべてローカル変数にしてみましたが、ダメでした。
Window.getWindows()で取得できるWindow配列にはdisposeしたウィンドウも含まれていたので、
Windowのstaticフィールドか何かに参照が残っているのかもしれません。

dispose()のドキュメントに以下のような記述がありました。
「Window およびそのサブコンポーネントは、pack または show を呼び出してネイティブリソースを再構築すればふたたび表示可能にできます。
再生された Window およびそのサブコンポーネントの状態は、Window が破棄された時点のそれらのオブジェクトの状態と同じです。
破棄と再生の間の追加変更は考慮されません。」

「破棄された時点のオブジェクトの状態」で再生されるってことは、それがどこかに保存されているってことですよね。
ひょっとして一度Windowを生成したら完全な破棄はできなかったりするんでしょうか。

>507
Swingの場合はwindowClosed()で何かをすれば解決できるということですか?
509503:2010/08/17(火) 02:30:18
何度も長文ですみません。
検証用のコードは以下のような感じです。

public static void main(String[] args) {
  SwingUtilities.invokeLater(new Runnable() {
   public void run() {
    for (int i = 0; i < 10000; ++i) {
     MyFrame frame = new MyFrame();
     frame.addWindowListener(new WindowAdapter() {
       public void windowClosing(WindowEvent e) {
         final Window window = e.getWindow();
         window.setVisible(false);
         window.dispose();
         for(Window w : Window.getWindows()){
           System.out.print(w.getName() + " ");
         }
         System.out.println("");
       }
     });
     frame.setVisible(true);
     frame.dispatchEvent(new WindowEvent(frame, WindowEvent.WINDOW_CLOSING));
   }
  }
 });
}
510503:2010/08/17(火) 02:33:27
続きです。
private static class MyFrame extends Frame {
  private final BufferedImage image;
  private MyFrame() {
    image = new BufferedImage(1920, 1080, BufferedImage.TYPE_4BYTE_ABGR);
  }
  public void removeNotify() {
    System.out.print("removed, ");
    super.removeNotify();
  }
  public void addNotify() {
    System.out.print("added, ");
    super.addNotify();
  }
}

実行結果
added, removed, frame0
added, removed, frame0 frame1
added, removed, frame0 frame1 frame2
(略)
added, removed, frame0 frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8 frame9 frame10 frame11 frame12 frame13
added, removed, frame0 frame1 frame2 frame3 frame4 frame5 frame6 frame7 frame8 frame9 frame10 frame11 frame12 frame13 frame14
Exception in thread "AWT-EventQueue-0" java.lang.OutOfMemoryError: Java heap space
(略)
511デフォルトの名無しさん:2010/08/17(火) 03:54:20
GCされたときにフレームへの参照が残ってなければ、Window.getFrames()のリストからも消える。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Hoge {
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override public void run() {
(new Timer(50, new ActionListener() {
private int count = 0;
@Override public void actionPerformed(ActionEvent e) {
if(count%5==0) System.gc();
JFrame f = new JFrame();
f.dispose();
System.out.println(Window.getWindows().length);
if(count++>50) ((Timer)e.getSource()).stop();
}})).start();}});}}
512デフォルトの名無しさん:2010/08/17(火) 06:41:03
>>510でエラーが出てるのは
MyFrame frame = new MyFrame();
でBufferedImageがヒープ食いつくしてるだけ。
Window.dispose()が実際にリソース解放するのはGCが発生したとき。またはいろいろ依存。

GCが発生するより先に
>image = new BufferedImage(1920, 1080,BufferedImage.TYPE_4BYTE_ABGR);
ここでヒープなくなってるだけだ。一回で32MByte食ってるだろ。
disposeする前にimage=nullすれば食いつくさないしdisposeした分もGCしたとき回収される。
513503:2010/08/17(火) 12:10:50
>511
確認できました。
分かりやすいサンプルをありがとうございます。

>512
解説ありがとうございます。
dispose()してもリソースはすぐには解放されないんですね。
画像の保持をComponentにさせた場合にうまくいったのも、これで理解できた気がします。


おかげさまで何とかなりそうです。
dispose()とGCについて、続けてもう少し勉強してみようと思います。
どうもありがとうございました。
514デフォルトの名無しさん:2010/09/11(土) 16:02:23
質問させてください。
JFrameをsetFullScreenし全画面表示を行っています。この状態でJOptionPaneなどを呼びだすと
JFrameごとJOptionPaneも最小化されてしまい、デスクトップに戻ってしまいます。

タスクバー上で選択すればJOptionPaneの表示されたJFrameが再表示されるのですが、
ユーザの操作なしで画面を再表示することはできないでしょうか?
515デフォルトの名無しさん:2010/09/11(土) 17:52:10
嘘を嘘と見抜けない人には2chは向いていないと思う
516デフォルトの名無しさん:2010/09/12(日) 02:42:20
チャンコロの騙されるほうが悪いと同じ理屈だな。
517デフォルトの名無しさん:2010/09/12(日) 10:03:20
2chはグローバルスタンダードだからな
518デフォルトの名無しさん:2010/09/13(月) 16:05:22
つまり英語こそが標準言語で、日本語はマイナー言語と。
519514:2010/09/18(土) 10:45:48
>>515-518
意味がわからないw
自己解決しました。
520デフォルトの名無しさん:2010/09/19(日) 03:15:10
どうやって解決下の価格のは礼儀だろう。
もうシスモンするなよ。
521デフォルトの名無しさん:2010/09/19(日) 03:45:33
礼儀以前に意味不明なのが多いので迷うけど…同じように悩む人がいるかも知れないので。

JFrameは、ハードウェア支援が受けられる排他モードのフルスクリーンをサポートしています。
でも他のウィンドウを呼んで、フルスクリーン化したウィンドウの手前に出すことはできません。
http://download-llnw.oracle.com/javase/6/docs/api/java/awt/GraphicsDevice.htm

どうしても全画面ぽくしたいなら、次のメソッドを組み合わせるとそれらしく動作しますね。
ウィンドウ枠を無くすJFrame#setUndecorated(true)と常に手前に出すようにするJFrame#setAlwaysOnTop(true)、
ウィンドウを最大化するJFrame#.setExtendedState(Frame.MAXIMIZED_BOTH)かJFrame#setSize()でスクリーンの大きさに合わせる。
あとはこのウィンドウをオーナーにしたJDialogあたりを呼び出せば大丈夫。
ただ、本物のフルスクリーンに比べてパフォーマンスは落ちます。

しかし、書き込む前に誤字ぐらい直したら?>>520
見づらすぎる。
522デフォルトの名無しさん:2010/09/19(日) 11:17:10
試してないがJInternalFrameにするのは?
523デフォルトの名無しさん:2010/09/19(日) 14:38:37
>>522
JInternalFrameを置くJDesktopPaneをどこに配置するかの問題と、
子ウィンドウのJDialogかJFrameをJInternalFrameに置き換えるのが多少手間ですね。

まあ、子ウィンドウのContentPaneを取ってきてJInternalFrameにそのまま貼りつけてやれば
なんとかなりそうだけど、問題はJDesktopPaneかな。
親ウィンドウのlayeredPaneかglassPaneに置いてやれば上手くいくような気が…しなくもありません。
自分も考えただけで試してないけど。
524デフォルトの名無しさん:2010/09/19(日) 15:15:03
やってみた。JLayeredPaneの方は、どうもだめかな。
というのは、下にJTableでもあってスクロールしたりするとJInternalFrameの方がかき消されてしまう。
もちろん描画されてないだけで上にあるから、JInternalFrameの見えない枠をつかんで移動し直せば
描画されるし動かせるけど、ペイントマネージャーを何とかしないと無理そうです。

GlassPaneの方はJFrameにsetGlassPane(new JDesktopPane())で問題なく動作した。
ただ、下のコンポーネントにマウスイベントは伝わっても位置が伝わらないので
JScrollPaneの中のコンポーネントでgetViewPort().getMousePosition()とかしたりしてるとnullが帰ってくる。
GlassPaneで凝った表示とかさせてなければ、これでもいいかも。
525デフォルトの名無しさん:2010/09/19(日) 16:32:09
とはいえ、JInternalFrameの移動が遅いのでほとんどメリットはないかもしれません。
いろいろsetDoubleBuffered(true)したけど、どうも変わらないし。
小さなウィンドウならいいけど、それなりの大きさのを動かすと重いです。
526デフォルトの名無しさん:2010/09/19(日) 16:36:17
527デフォルトの名無しさん:2010/09/19(日) 17:07:18
これはひどい。

>In Java 1.6 the upcoming dialog is damaged and in the upper left corner.
とあるけど、こちらでは呼び出したJDialogにフォーカスが合わないし、操作すると
下の全画面ウィンドウがちらついて、タスクバーが見え隠れします。
閉じるボタンを連打するとなんとか閉じられる。
おそらく全画面化したフレームからフォーカスが外れると排他モードから抜けるんだろうけど・・・
528デフォルトの名無しさん:2010/09/19(日) 23:39:38
vistaか7じゃないだろうな
529デフォルトの名無しさん:2010/09/20(月) 03:37:58
Vistaでも再現するようだが
530デフォルトの名無しさん:2010/10/01(金) 14:37:51
WindowBuilder Pro
http://code.google.com/intl/ja/webtoolkit/tools/wbpro/index.html

googleがどっかの会社を買収して、そこが販売していたツールを
無料提供してくれたらしい
531デフォルトの名無しさん:2010/10/01(金) 22:43:25
こんな過疎スレにurlだけはってもただの宣伝だから使用レビューくらい貼れ。
532デフォルトの名無しさん:2010/10/01(金) 23:50:41
>>530じゃないけど使ってみたよ。
サクサク動くし、生成されたコードがきれい(変なタグが入ったりしない)で、思い通りにポトペタすることができたよ。
SWTでだけど、レイアウトを間違えてAbsoluteLayoutでやってて、途中でFormLayoutにしたらまったく見た目変わらずコンバートしてくれたのには驚いたw
とにかく細部まで作りこまれてて完成度が高いと思った。
まだ今のところは気になる点はないね。
533デフォルトの名無しさん:2010/10/02(土) 00:02:09
>>532
でもエクリプス専用だよね
534デフォルトの名無しさん:2010/10/02(土) 00:12:34
>>533
何か問題ある?
仮にEclipse使いじゃなかったとしても、GUI生成のためだけに導入ってのもありだと思うけど。
535デフォルトの名無しさん:2010/10/02(土) 00:16:04
>>534
5、6年前なら説得力あっただろうけど、今さらイラン
536デフォルトの名無しさん:2010/10/02(土) 21:56:40
>>532
jiglooより使いやすいでしょうか?
537デフォルトの名無しさん:2010/10/04(月) 00:34:29
かなり使いやすいよ

つーか533は何が使いたいんだw
538デフォルトの名無しさん:2010/10/04(月) 08:50:48
windowbuilderは元々日本円で4万位の有償ソフトだしなあ。
実際の開発案件で採用したこともあるよ。
GUI系のツールの中ではトップレベルに使いやすいと思う。

ただ、気になる点もいくつかあった。
1.GUIとソースがタブ切り替えになってて、その切り替えが遅い(タブ切り替えの都度コンパイルから初期化までのロジックを実行してる)。
2.自動生成のテンプレから逸脱したGUI初期化ロジックを組むと、その部分がGUIの編集画面に反映されない。
3.いくつかのレイアウトでは冗長なコードが生成される。

NetBeansで開発してて、生成ロジック部分が編集不可なことに苛ついた人にはオススメ。
539デフォルトの名無しさん:2010/10/04(月) 12:44:27
そういうの、EclipseでJAVAを普通に使ってる人は金払ってライセンスを受けている。
いまさらだけどエクリプス使いの日曜プログラマーにはおすすめかもね。
540デフォルトの名無しさん:2010/10/04(月) 22:06:57
>>539
>金払ってライセンスを受けている。
そりゃそうだけどタダで公開して環境を簡単に揃えられることに意味があるんじゃないのか?
そのためにわざわざ買い取ったの公開したんじゃないの。
541デフォルトの名無しさん:2010/10/05(火) 01:50:40
WindowBuilder Proのフリーってビール的フリーだけ?
542デフォルトの名無しさん:2010/10/05(火) 02:13:12
>>540
とするとnetbeansで何かダメなところがあるのか?
543デフォルトの名無しさん:2010/10/05(火) 08:22:54
540じゃないけど、
netBeansも良い開発環境だと思う。
ただ、参画するプロジェクトで指定されるのはeclipseの方が多いかな。
IB◯が絡んでるとほぼ確実にRADが指定されるし。
まああれです、両方とも使えるようになっておくのが一番。
544デフォルトの名無しさん:2010/10/05(火) 13:55:04
うちも個人ではNetBeansに乗り換えたんだが、
仕事ではプロジェクトでEclipse指定されることが多いな…
# IB◯は絡んでない仕事でもそんな感じ
545デフォルトの名無しさん:2010/10/05(火) 21:06:51
Windows Builderでソースコードとアプリ画面を同時にみるためにはどのようにしたらよいでしょうか?
下の説明みるとできるみたいなんですが、英語翻訳してもやり方がわかりませんでした。
お願いします。
http://code.google.com/intl/ja/webtoolkit/tools/wbpro/userinterface/source_view.html
546デフォルトの名無しさん:2010/10/06(水) 01:04:14
IBMとか関係なくGUI使うプロジェクトだけNetBeansだったな。
あとはEclipseがデファクトすぎてどうにもならない。
547デフォルトの名無しさん:2010/10/06(水) 03:54:47
両刀の俺にはどっちもいける
548デフォルトの名無しさん:2010/10/07(木) 10:58:43
ちょっと質問いいかな。
GUIアプリ作る時ってJFrameを継承したサブクラスをわざわざ作って
そのクラスをベースにGUIを構築するけど
これってどんな利点があるの?
インスタンス名を省略できることくらいしか利点が思いつかないんだが。
549デフォルトの名無しさん:2010/10/07(木) 11:06:20
独立したコンポーネントとして捕らえれば自然な考えでしょ。
別にリスナーとかを独立して管理したければそうすればいいよ。
デスクトップアプリはMVCのVとCがくっ付いてるのが普通だと思うけど。
550デフォルトの名無しさん:2010/10/07(木) 11:24:14
別に継承する必要ないから俺はJFrameそのまま使う
VとCを分離したっていいじゃん?
551デフォルトの名無しさん:2010/10/07(木) 11:30:38
ダメとは言ってないだろw
552デフォルトの名無しさん:2010/10/07(木) 12:38:45
MVCの話はさておき、
将来アプレットにするかもしれないとか計画があるんなら、
自作する最上位ビューはJPanel継承したコンポーネントにしておくかな。

あとはJAppletでもJFrameでも好きなコンテナにハメてくださいってかんじで
553デフォルトの名無しさん:2010/10/07(木) 21:16:24
>>552
会社で設計するときは、こうだね。
フレームワークが使うから。
554デフォルトの名無しさん:2010/10/07(木) 23:20:06
話がそれるが、GUIアプリの教本なんかでJFrameやらコンポーネントを継承したクラスに
さらにリスナをimplimentsしてるコードをみるとイラッとくるんだがおかしいだろうか?
555デフォルトの名無しさん:2010/10/08(金) 02:47:21
>>545
自分は数行のコードならAddListenerの引数中で無名クラスに実装してそこで見られるようにしておくが。
VisualEditorが吐くように。
まああまり長くなると見にくいので分離するけど。
556555:2010/10/08(金) 02:48:02
失礼、>>554だった
557デフォルトの名無しさん:2010/10/08(金) 22:20:02
実際の開発ではみんなロジック分離してるんじゃないか?
public class hoge extends JFrame implements ActionListener {}
は教本かなにかの名残だろ。
558デフォルトの名無しさん:2010/10/08(金) 22:30:56
何でイラっとくるの?
559デフォルトの名無しさん:2010/10/08(金) 22:34:30
560デフォルトの名無しさん:2010/10/09(土) 16:18:18
implements 〜Listener でイベントのソースを見ないで処理してたりすると
サブクラス化が面倒だったり
561デフォルトの名無しさん:2010/10/09(土) 21:13:12
JTreeで空フォルダを実現するには
オーナードローするしかないの?
562デフォルトの名無しさん:2010/10/09(土) 21:39:06
javax.swing.tree.TreeNode#isLeaf()でfalse返すようにするんじゃダメだったっけか?
まぁ、自前でアイコンつけちゃう方が楽かも知れんけど。
563デフォルトの名無しさん:2010/10/09(土) 22:19:51
お、なるほど isLeaf ですか
ありがとうございます
564デフォルトの名無しさん:2010/10/09(土) 23:39:40
ツリーのノードをreloadすると
そのノード以下のフォルダが閉じてしまうのは不可避?
565デフォルトの名無しさん:2010/10/09(土) 23:42:26
reload後に自分で展開するしかなかろう
566デフォルトの名無しさん:2010/10/10(日) 00:05:28
やはりそうなのか・・・
567デフォルトの名無しさん:2010/10/10(日) 00:29:41
>>564

下のようにするとreload後も閉じないよ

Enumeration expandEnum = jtree.getExpandedDescendants(tree.getPathForRow(0));
reload();
if(expandEnum == null){
//もともと何も開かれていない
}
else{
//ここで元通り開く
while(expandEnum.hasMoreElements()){
jtree.expandPath((TreePath)expandEnum.nextElement());
}
}
568デフォルトの名無しさん:2010/10/10(日) 00:48:34
なるほど、それで全ノード列挙できるんですね
うまくいきました
ありがとうございます
569デフォルトの名無しさん:2010/10/11(月) 19:48:05
Swingの勉強にどんな本使ってる?
2000年絶版のBlackBookのSwing版か、Java GUIプログラミング〈Vol.3〉さらにパワーアップしたSwing を購入しようと思ってるんだけど、ほかに良さそうなのある?
570デフォルトの名無しさん:2010/10/11(月) 21:53:39
本買わなくてもJavaTutorialだけでいいような
571デフォルトの名無しさん:2010/10/11(月) 22:24:45
>>569
そこの会社だったかその本のシリーズが無くなったからそのシリーズ未完だけどもう出ないぞ。
572デフォルトの名無しさん:2010/10/11(月) 22:48:59
>>570
本だとPCつけなくてもどこでも読めるし、何かと便利だから欲しいんだよね


>>571
BlackBookの方はもう中古じゃないと売ってないね
だいぶ古いけど同シリーズのJAVAプログラミングが良かったから、Swing版もいいかもなと
573デフォルトの名無しさん:2010/10/12(火) 11:37:13
>>572
PCが起動していない時間があることにちょっと驚いた
574デフォルトの名無しさん:2010/10/12(火) 23:40:44
>>570
ていうか重要なことをあんなチュートリアルに置くなと思った。
575デフォルトの名無しさん:2010/10/14(木) 13:47:07
Windows の Java1.4〜6。JInternalFrame と DnD。
ドロップ先のコンポーネントを別の JInternalFrame で隠しても、判定が透けてしまう。
(Container#getMouseEventTargetImplの仕様)
ずーと多用してたのに、今日はじめて気がついた。

個々の JInternalFrame に、すべてを reject する DropTarget をくっつけるか、
dragOver で、別の JInternalFrame に隠されていないかチェックして reject すれば対処できた。

でも、JDesktopPane (つまり JLayeredPane) ではデフォでそうなるようにしていいと思うんだが・・・
576デフォルトの名無しさん:2010/10/14(木) 14:46:49
MDIなんて死滅してるから見放されてるんじゃない
577デフォルトの名無しさん:2010/10/15(金) 13:41:42
>>576
同感
そろそろ消滅してもいいと思う
578デフォルトの名無しさん:2010/10/21(木) 21:19:46
sf.netのJMIDILayerにaward与えるってメールがきてた

ワクテカしてサイト見に行ったら
スパイウェアとマルウェアとウイルスのない100%Awardってやつだった

俺様m9

まあ、Windowsで開発していたのにMACで動作確認されてて助かりました

SwingもMDIも現役です。

今は人様のJSynthLibに浮気してる。

SwingもMDIも現役です。
579デフォルトの名無しさん:2010/10/22(金) 11:46:21
MDIなくてもいいっていう人はタブがあればOKな人?
データいっぱい比較したい時どうすんの?
ツールバー付きのメインウィンドウたくさん出すの?
580デフォルトの名無しさん:2010/10/22(金) 12:13:57
CopyRect
581デフォルトの名無しさん:2010/10/22(金) 13:42:31
>>579
比較が重要な要件なら比較機能をつけるべき、
ユーザがウィンドウを並べて目で見て比較って
のが既に微妙なんじゃないかと…

# 工数的にとか予算的にそういうところに落ち着くことはありますけど…
582デフォルトの名無しさん:2010/10/24(日) 03:07:58
>>581
もちろん差がしきい値以上なら強調するとか、対策はしてる。
でも研究用のツールとかだとセルをなめて見るなんてのもざらです。
583デフォルトの名無しさん:2010/10/30(土) 17:25:23
>>570
swingのチュートリアルなんてあったっけ?
もしかしてピアソンエデュケーションのJavaチュートリアルの章のこと?
584デフォルトの名無しさん:2010/10/30(土) 17:41:14
公式Java Tutorialは、昔、所詮は公式のおざなりだと思って見もしなかったっけ。
行ってみてなかなかの充実ぶりに驚いた。

Swingのパートはここ?
http://download.oracle.com/javase/tutorial/uiswing/index.html

今さらながらロゴとURLに面食らう。
585デフォルトの名無しさん:2010/10/31(日) 09:51:59
以前のように Java Tutorials のダウンロード版が公開されることを期待してます。
586デフォルトの名無しさん:2010/10/31(日) 12:48:09
セル内に大きなサイズの画像を表示させるときに
セル内でスクロールさせて表示することはできますか?
587デフォルトの名無しさん:2010/11/05(金) 01:03:33
>>585
URLだけ生きてない?
前のjavadocとかリンクないけど鯖においたままなのが大量にあるよ
588デフォルトの名無しさん:2010/11/05(金) 05:35:25
589デフォルトの名無しさん:2010/11/05(金) 19:38:48
Windows7(aero)のLookAndFeel(WindowsとNimbus)って
JButtonのsetBorderPainted( false )
に対応しないの?

たぶんLookAndFeelの仕様なのかもしれないけど
こういうのってきちんと修正されるの?
590デフォルトの名無しさん:2010/11/05(金) 22:35:39
そもそもボーダーのユーザー設定を素直に聞いてくれるLaFは少ない。そういうもん。
"ユーザー設定のボーダー"をどうしても"描画したい"というならJPanelに放り込んでパネルにボーダー設定する方法があるが、消したいとなるとLaF次第。
591デフォルトの名無しさん:2010/11/07(日) 21:51:29
消すんであれば setBorder(null) すればいいんでないの
まぁ>>589の言いたいのは単に「バグだ」ってことなんだろうけど
592デフォルトの名無しさん:2010/11/08(月) 00:01:28
俺もWindows7だけどJMenuBerのsetMnemonicの動作もおかしいね。
Altキー押すとメニューにフォーカスはされるんだけどキー押してもメニューの展開がされない。
同時押ししないとメニューが開けない・・・。
これWinのGUIで一番大事な機能なのにな。
593デフォルトの名無しさん:2010/11/08(月) 02:17:51
Synth LaFって人気ないよね。学習が難しいのかな。
594デフォルトの名無しさん:2010/11/08(月) 12:16:41
いちおー使ってんだけど、ほかで見かけないんだよなー
背景画像の引き延ばしはできても繰り返しがない?のがちと不便

それはともかくバランスのいいデザインにするのがむずい
595デフォルトの名無しさん:2010/11/08(月) 12:27:54
SubなんとかってLaFがなかったっけ?あれはSynthだよね
他では聴いたことがない。
596デフォルトの名無しさん:2010/11/08(月) 15:48:28
WindowBuilder Proは無料で使えるの?
597デフォルトの名無しさん:2010/11/08(月) 18:00:52
>>596
無償。
598デフォルトの名無しさん:2010/11/08(月) 19:55:58
>>597
サンキュー。早速入れてみた。カッコウイイなこれ。ところでswing使えるんだが

SWT使えないの?なんかエラーになるんだが・・・
599598:2010/11/08(月) 20:10:13
できた!ビルドパス通さないといけないのね。
600デフォルトの名無しさん:2010/11/09(火) 00:21:52
JTextArea使用中にAltキーを押すとメニューバーにフォーカスが移ってしまうんですが、
これを無効化する方法ってないですか。
テキストの編集中にのみフォーカスの移動を制御したいのですが。
601デフォルトの名無しさん:2010/11/09(火) 08:34:20
>>600
まったく検証してないから的外れなこと書いてたらすまん。

当該テキストエリア(またはアプリ全体)のKeyEvent拾ってAltを検出できるか確認。
検出できるなら条件指定してイベントをつぶせばいいはず。
検出できないならOSレベル(またはJavaVM)で処理が終わってると思われるので難しそう。

または、Documentクラスで入力チェックできるか確認。
こっちはクラスの使用目的考えるとイレギュラーな匂いがする。

ツッコミおまちしてます。
602デフォルトの名無しさん:2010/11/09(火) 13:03:29
>>600
JMenuBar じゃなくて MenuBar の場合かな。
なお、JMenuBar であればフォーカスは移らないが、その代わり、[Alt]押した後、文字は打ち込めるが、
[↓]押すと Windows の「移動」「サイズ変更」... のコンテキストメニューが出る。(W2K+JDK5)

キーを押すと JFrame がイベントをディスパッチし、DefaultKeyboardFocusManager に処理がわたり、
下って下って、例えば JTextArea に行く。
その後上って上って、DefaultKeyboardFocusManager に戻り、
結局なんだかんだで native メソッドに処理がわたっているらしい。
MenuBar の場合も Windows のコンテキストメニューの場合も、同じらしい。
(らしい、というのは反証がないか調べて尽くしてないから)

そこまでの間に、どこかで KetEvent#consume すればいい。
手っ取りばやくはこれでどうかな。

JTextArea a = new JTextArea() {
 protected void processKeyEvent(KeyEvent e) {
  super.processKeyEvent(e);
//ここまでで IME の処理も終わってるはず(定かではない)。

//consume されておらずかつ [Alt]単押しの場合にのみ作用。
//MenuBar でも JMenuBar でも対応できる。
  if (! e.isConsumed() && e.getModifiers() == KeyEvent.ALT_MASK) {
   e.consume();
  }
 }
};

JFrame でディスパッチする前につぶしてもいいかもしれない。
603デフォルトの名無しさん:2010/11/09(火) 13:21:52
上の[Alt]単押しってのは、[Alt]PRESS イベントのときを想定してるだけなので、
その次にやってくる 「[Alt]+[ローマ字]」のイベントなどは、つぶれてしまう可能性がある。
とはいえ実際はソースに書いたように IME の処理は終了済みなので、問題はないと思う。
JFrame がディスパッチするまえにつぶすとそうは行かない。

「[Alt]に間違って触れたとき」の予防なのか、
「フォーカス制御した挙句、さらに特殊な処理をしたい」のか、
必要な処理に応じて厳密な調べ方を加えて下さい。
604デフォルトの名無しさん:2010/11/10(水) 23:13:23
質問です。
現在JFrame上からファイルをPC上にドラッグ&ドロップでコピーを行うプログラムを組んでいます。
しかしファイル名が英字なら動作するのですが日本語ファイル名だとコピーが行われません。
特に例外が発生しているわけでもないので原因もよく分かりません・・・。
ファイルパスをSJISでのエンコードしてからFileを生成したりと色々試してはみたのですがだめでした。
どなたかこのような現象を解決した方はおられますか?
605デフォルトの名無しさん:2010/11/10(水) 23:34:10
PC上?
そもそもJFrame上と言われても、その説明ではJFrameの上に
何を置いてファイル操作のGUIを実現してるのかさっぱりわからんよ
606デフォルトの名無しさん:2010/11/10(水) 23:44:51
>>604
JLabel に自作の TransferHandlerあてこんで、Transferable 実装して、
javaFileListFlavor で java.util.List(ArrayList) 渡すっていう意味でいいのかな。
今そう作って試してみたら俺の環境ではできた。
"E:\\temp\\アドレス帳.txt" ファイルを、
"E:\\temp" 以外にコピーできる、Excel で開ける、Word に貼り付けられる。など。
XP と JRE6、Windows2000 と JRE5、Windows2000 と JDK1.4。

できちゃった以上俺には解決できないかもしれないけど、
OSとJREが何か書いてみたら? あと必要だと思ったらソースも。
607デフォルトの名無しさん:2010/11/10(水) 23:53:48
俺がソース張った方が早いかな。
http://www.uproda.net/down/uproda165397.java.html
これで失敗したら環境が原因、成功したら >>604 のソースが原因
608デフォルトの名無しさん:2010/11/11(木) 15:23:13
せめてOSくらい書いて欲しいところだな…
609デフォルトの名無しさん:2010/11/11(木) 18:16:58
DnD APIでファイルリストの処理するくらいならOS差はないからDnD関係ないところでミスってる可能性があるな
610デフォルトの名無しさん:2010/11/11(木) 21:14:03
>>606
コードまで作ってくださりありがとうございます。
ほぼ私の作成していたコードと同じ内容です。
しかし実行してみたところやはりコピーが行われませんでした。
となると環境が問題なんですかね・・・?
OSは7、JREは6を用いていて、同じく7を用いている友人も動作しなかったようです。
611デフォルトの名無しさん:2010/11/11(木) 22:39:14
>>610
Windows7 64bitだけど、1.6.0_21で動いたよ。
612デフォルトの名無しさん:2010/11/12(金) 00:05:22
JTableテーブルについて質問なんですけど、
大量の複数のスレッドから一斉にテーブルにアクセスしてテーブルの内容を更新したい場合、
それぞれのスレッドでSwingUtils.invleLaterを使って更新処理をすればいいんでしょうか?
613デフォルトの名無しさん:2010/11/12(金) 01:14:58
>>610
ファイルの絶対パスを file.encoding にしたがって
byte[] bs = file.getCanonicalPath().getBytes() して VM外に送出してるらしい
なので file.encoding を変えれば動くのかもしれない
でも特にミスしてないかぎり わざわざそんな必要性なさそうだよな
614デフォルトの名無しさん:2010/11/12(金) 07:46:28
>>612
いいよ
615デフォルトの名無しさん:2010/11/12(金) 14:29:00
WINSCPみたいのってSwingで作れる?
616デフォルトの名無しさん:2010/11/12(金) 15:37:54
scpのプロトコルは実装可能なんだから、可能じゃね?
617デフォルトの名無しさん:2010/11/13(土) 02:54:42
どの部分を懸念してるのか書くともう少し的確に答えられる
618デフォルトの名無しさん:2010/11/14(日) 22:42:50
Java初心者です。
メニューからファイルを開き、画像(JPEG)をパネル上に表示させるというプログラムを書いているのですが
上手くいきません。
本・ネット等色々調べたのですが、解決できませんでした。

具体的には

JMenuItem openmenu = new JMenuItem("開く");を押すとイベントが発生し
JFileChooserで開きたい画像を選択
その画像をJPanelに表示させる

という流れです

よろしくお願いします
619デフォルトの名無しさん:2010/11/14(日) 22:45:19
まずはその上手くいかなかったプログラムを見せた方がよい
620デフォルトの名無しさん:2010/11/14(日) 22:55:34
>>619

ご指摘ありがとうございます
少々長くなりますがお願いします

setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Modelling");
setSize(800, 700);

JPanel p = new JPanel();
p.setPreferredSize(new Dimension(300, 700));//大きさ指定
p.setBackground(Color.ORANGE);
p.setLayout(null);//これにより座標で配置できるようになる

JPanel p2 = new JPanel();
p2.setPreferredSize(new Dimension(500, 700));
p2.setBackground(Color.GRAY);

JMenuBar menuBar = new JMenuBar();
JMenu menu1 = new JMenu("ファイル");
menuBar.add(menu1);
JMenuItem openmenu = new JMenuItem("開く");
setJMenuBar(menuBar);

public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "開く"){
//開くが押されたときの処理
JFileChooser filechooser = new JFileChooser();
Icon icon = new ImageIcon(filechooser.getSelectedFile().getPath());
JLabel label4 = new JLabel(icon2);
p2.add(label)4;
}
621デフォルトの名無しさん:2010/11/14(日) 22:57:25
すみません

p2.add(label)4;→p2.add(label4)
です

パネルp2に画像を表示させたいです;
622デフォルトの名無しさん:2010/11/14(日) 23:49:47
1.コンパイルできるものを書く
2.最低限必要な部分だけ書く

それくらいはがんばってください
623デフォルトの名無しさん:2010/11/15(月) 00:10:53
import javax.swing.*;
import java.awt.*;
import java.io.File;
import java.awt.event.*;

public class ModelTest extends JFrame implements ActionListener{

Modelling frame;
public JPanel p,p2,p3;
JButton bt1,bt2,bt3;
JMenuBar menuBar;
JMenu menu1;
JMenuItem openmenu,savemenu,closemenu;
JLabel label4;
ImageIcon icon1,icon2;
JFileChooser filechooser;
String filename;
String name="";

public static void main(String [] args) {


//フレームの作製
ModelTest frame = new ModelTest();
frame.setVisible(true);

}
624デフォルトの名無しさん:2010/11/15(月) 00:11:55
ModelTest() {//コンストラクタで初期画面表示部品の配置を行う

////////////
//フレーム//
////////////
//getContentPane().setLayout(new FlowLayout());
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setTitle("Modelling");
setSize(800, 700);
//setLocationRelativeTo(null);

//アイコンの表示
ImageIcon icon1 = new ImageIcon("./icon.gif");
setIconImage(icon1.getImage());


//////////
//パネル//
//////////
JPanel p = new JPanel();
p.setPreferredSize(new Dimension(300, 700));//大きさ指定

p.setBackground(Color.ORANGE);
p.setLayout(null);//これにより座標で配置できるようになる



//パネル2画像表示用
JPanel p2 = new JPanel();
p2.setPreferredSize(new Dimension(500, 700));
p2.setBackground(Color.GRAY);
625デフォルトの名無しさん:2010/11/15(月) 00:13:51
JButton bt1 = new JButton("ボタン1");
bt1.setBounds(10, 50, 80, 30);
         JButton bt2 = new JButton("ボタン2");
bt2.setBounds(10, 90, 80, 30);
         //ボタン配置
p.add(bt1);
p.add(bt2);

         //パネル配置
Container contentPane = getContentPane();
contentPane.add(p, BorderLayout.WEST);
contentPane.add(p2,BorderLayout.EAST);

         ////////////
//メニュー//
////////////
JMenuBar menuBar = new JMenuBar();
JMenu menu1 = new JMenu("ファイル");
              menuBar.add(menu1);

JMenuItem openmenu = new JMenuItem("開く");
JMenuItem savemenu = new JMenuItem("保存");
JMenuItem closemenu = new JMenuItem("閉じる");

menu1.add(openmenu);
menu1.add(savemenu);
menu1.add(closemenu);

//イベント
openmenu.addActionListener(this);
closemenu.addActionListener(this);
              setJMenuBar(menuBar);
626デフォルトの名無しさん:2010/11/15(月) 00:15:06
public void actionPerformed(ActionEvent e){
if (e.getActionCommand() == "開く"){
//開くが押されたときの処理
       File dir = new File("C:\\pleiades-e3.6-java-jre_20101025\\workspace\\Modelling");
JFileChooser filechooser = new JFileChooser();

int selected = filechooser.showOpenDialog(this);
if (selected == JFileChooser.APPROVE_OPTION){

//name= chooser.getSelectedFile().getPath();
File file = filechooser.getSelectedFile();

ImageIcon icon2 = new ImageIcon("filechooser.getSelectedFile().getPath()");
JLabel label4 = new JLabel(icon2);
p2.add(label4);

}

}
if (e.getActionCommand() == "保存"){
//保存が押されたときの処理

}

if(e.getActionCommand() == "閉じる"){
//閉じるが押されたときの処理
System.exit(0);
}
}


}
627デフォルトの名無しさん:2010/11/15(月) 00:15:47
よろしくお願いします。
628デフォルトの名無しさん:2010/11/15(月) 00:21:18
>>626
File dir = new File("C:\\pleiades-e3.6-java-jre_20101025\\workspace\\Modelling");
JFileChooser filechooser = new JFileChooser();

JFileChooser filechooser = new JFileChooser();
です

色々ミスがありまして、すみません
629デフォルトの名無しさん:2010/11/15(月) 00:41:33
icon1,p1,p2,bt1,bt2,その他以下略がコンストラクタ内でローカル変数として宣言されているせいでModelTestのフィールドが設定されていない
コンストラクタ内の JPanel p2 = new JPanel(); とかは p2 = new JPanel(); などとして、新しいローカル変数を作らないようにする

いったん表示した後に新しいコンポーネントをaddするなどレイアウトが変わるときはrevalidateを呼ぶ必要がある
p2.add(label4); の後に p2.revalidate(); を

あとは
× ImageIcon icon2 = new ImageIcon("filechooser.getSelectedFile().getPath()");
○ ImageIcon icon2 = new ImageIcon(filechooser.getSelectedFile().getPath());
630デフォルトの名無しさん:2010/11/15(月) 00:42:44
それから2レス以上要るような長いソースはどこかにうpしてくれ・・・
631デフォルトの名無しさん:2010/11/15(月) 01:18:03
>>629

アドバイス通りに変更したところ画像を表示することができました。
本当にありがとうございます!


revalidateというのを知らなかったので、とても参考になりました。
そして自分の調べが足りませんでした…
重ねてお礼申し上げます。
ありがとうございます。


こういうスレに書き込み自体が初めてだったので勝手がわかりませんでした。
今後はソースはうpということを念頭に置いておきます。
失礼いたしました。


次は、大きな画像がはみ出さないように表示する
ということにチャレンジしてみたいと思います!

何回もしつこいとは思いますがが、本当にありがとうございました!
632デフォルトの名無しさん:2010/11/15(月) 15:10:46
死ね
633デフォルトの名無しさん:2010/11/15(月) 15:41:11
通報しました
634デフォルトの名無しさん:2010/11/18(木) 22:33:13
http://hibari.2ch.net/test/read.cgi/tech/1267796762/
★★ Java の宿題ここで答えます Part 69 ★★
635デフォルトの名無しさん:2010/11/26(金) 20:33:00
age
636デフォルトの名無しさん:2010/11/26(金) 22:08:54
頻出の質問かもしれませんが、うまく調べられませんでした。

環境はJRE6です。
JTableのヘッダについて、以下の順序で作ったテーブルをスクロール
すると、新しく表示される部分が正しく描画されません。
 たとえば右にスクロールすると、スクロール開始前の右端の数ピクセルが
繰り返し描画されます(右端にFと描画されている時はFFFFFFFFFが続きます)
スクロールを戻すと、最初に描画されていた範囲は正しい描画のままです。
 テーブル本体は正しく描画されています。

1.new JTable()
2. setModel(new MyModel())を使ってモデルをセット。
(モデルはAbstractTableModelを継承させていて、
 列数(20)、行数(20)、返す値("nulpo")を定数で返す様に定義しています。)
3.setAutoResizeModeでAUTO_RESIZE_OFFをセット。
4. JScrollPaneにsetViewportViewでセット
5. JScrollPaneをフレームにセット
6. jTable.getTableHeader().setPreferredSize(new Dimension(100,30))


すいません、もう一つ質問があります。
JTableにセルエディタとしてJListをそのまま使った場合、
セルの表示域までしかJListが表示されなくて使えませんでした。
この場合は、どのようにすれば正しく実装できるのでしょうか?
Ctrlで複数選択できる機能が付いたコンボボックスの様な動作を期待しています。
JComboboxじゃなくJListを使おと思った理由は複数選択がしたかったからです。
JCombobox->AccesibleContext->JList->setSelectionMode
という方法も試してみましたが、単一選択しかできませんでした。

以上です。長文失礼しました。
637デフォルトの名無しさん:2010/11/26(金) 22:45:44
>>636
>jTable.getTableHeader().setPreferredSize(new Dimension(100,30))
んなことするからじゃないの。
縦幅指定したかったのなら Renderer 作るかなんかしたらどうじゃ。
table.getTableHeader().setDefaultRenderer(new TableCellRenderer() {
 public Component getTableCellRendererComponent(
  JTable table, Object value, boolean isSelected, boolean hasFocus, int row, int column
 ) {
  JLabel label = new JLabel(table.getColumnName(column));
  label.setPreferredSize(new Dimension(100, 30));
  label.setBorder(new BevelBorder(BevelBorder.RAISED));
  return label;
 }
});

638デフォルトの名無しさん:2010/11/26(金) 23:15:44
>>636
後者は、俺は TableCellEditor の仕組みは良くわかってないし
>JCombobox->AccesibleContext->JList->setSelectionMode
も何を実際に試したんだか見えないけどさ、
JComboBox つかってる限りどうしたって単一選択になるんじゃないの。

こういう方向で攻めたらいいんじゃないかな。
http://www.dotup.org/uploda/www.dotup.org1270352.java.html
とりあえずそれっぽく動いた。疲れちゃったのであとは自分でやってちょ。
JList のフォーカスリスナーかなんか使えばうまくいくんでなかろうか。
639デフォルトの名無しさん:2010/11/26(金) 23:19:10
ん、違うか。
まぁいいや。イケてる人の突っ込み待ってくんろ。
640デフォルトの名無しさん:2010/11/26(金) 23:49:21
>>637
そのとおりに実装した所、うまく動きました。
とても助かりました。ありがとうございます。

>>638
 目から鱗です。セル位置にウィンドという方法は考えていませんでした。
動くコードまでつくって頂いて本当にありがとうございます。
その方向での実装方法も検討するようにします。
>何を試した
http://www.ne.jp/asahi/hishidama/home/tech/java/swing/JComboBox.html
の最後のあたりにJCombobox内のJListを取得する方法があったので
それにsetSelectionMode(MUL~)をしてみました。
みましたが、CtrlやShiftを押しながら選択しても、一つの項目を選択
したタイミングで選択終了になってしまう為、複数選択ができませんでした。
641デフォルトの名無しさん:2010/12/03(金) 02:24:39
これからSwingを使って開発する人が参考にすべき美しいソースコードの例ってありますか?
サンプルコードじゃなくて実際のソフトウェアのソースコードがいいです。
gitとかsvnでとってこれるとうれしい。
642デフォルトの名無しさん:2010/12/03(金) 07:54:30
NetBeans
643615:2010/12/05(日) 20:39:10
http://www.dojeun.com/itweb/java/java002.php
こういうの使うとwinscpみたいの作れますか?
644デフォルトの名無しさん:2010/12/06(月) 07:48:30
FTPとSCPは別物ですぜ?
645デフォルトの名無しさん:2010/12/06(月) 15:25:55
>>643
その程度のことを人に聞かなきゃ分からん奴には作れない
646615:2010/12/06(月) 16:54:45
どういうの使えばwinscpみたいの創れるの?
647デフォルトの名無しさん:2010/12/06(月) 17:42:55
apache antがscpタスクの実装にjcraftのjschというのを使っている。
648デフォルトの名無しさん:2010/12/06(月) 19:38:42
>>646
Winscpの機能を実現するのに必要な処理がわからないのですよね?
その状態でライブラリがあれば作れると思っているなら大間違いです。
Winscpのソースコードを読んでどんな処理が必要か理解する必要があります。
このソースコードを理解できたら、同じ処理をするJavaプログラムを作れます。
このソースコードを理解できないなら、ライブラリがあっても作れません。
http://winscp.net/eng/download.php#download2
http://winscp.net/download/winscp429source.zip
649615:2010/12/06(月) 20:21:10
>>648
わざわざありがとうございます。勉強します。
650デフォルトの名無しさん:2010/12/07(火) 03:12:59
真面目にそれなりの規模のソフトを書こうと思うと、最低でも数ヶ月、
下手すりゃ何年も手を入れ続けることになる。
俺もそうだし。
あんまり精神論語るのもアレだけど、それでもやろうってモチベーションと、
最低限自分で出来るところまでは自分で頑張る気概がなければせいぜい
Hello World!に毛が生えたくらいのコードしか書けないよ。
今はGoogle先生が1円も払わずに色々教えてくれるんだから自分で
出来るとこまではやりなよ。
ま、頑張って。
良いソフトかけたらここで教えてくれ。
651615:2010/12/07(火) 06:19:51
>>650
そうなんですか。甘く見てました。早速コード見てみたらあまりの多さにびっくりしました。c++理解してないと無理そうですね。Javaとは別にc++勉強します。
色々とありがとうございました。
652デフォルトの名無しさん:2010/12/07(火) 10:08:30
>>615
まずググれ。
「Java scp」で検索するだけで掃いて捨てるほど
使えそうなサンプルが出てくるのになぜここで聞く?
自分で調べるのが面倒だからとか言ったら張り倒すよ。
自分で何とかしようとした上でわからなければ力を貸すけど、
そうじゃなきゃ誰も協力しないよ。

俺は別にwinscpのコードが読めなくても構わないと思う。
winzipのコード読めないがJavaでZIPの圧縮解凍するコード書いてるし。
ただ読めて損は無いから頑張ってや。
653615:2010/12/07(火) 18:35:08
>>652
ググった上で聞きました(java scp等)。
正直一人で調べてやっていると
今自分がやっているのが本当にあっているのかすら
わからない状態になってしまい、
途方にくれてしまったので。
コマンドプロンプト状態とGUI状態では
また別物なので混乱してしまいました。
特にswingは処理長いものをやると固まるし、
swingworkerもなかなか・・・
申し訳ない
654デフォルトの名無しさん:2010/12/07(火) 20:31:19
>特にswingは処理長いものをやると固まるし、
Swing関係ない。
多くのGUIツールキットはシングルスレッドで、そのスレッド上で長い処理を行うと固まるのは当然のこと。
655615:2010/12/08(水) 11:23:38
>>654
わかりました
656デフォルトの名無しさん:2010/12/08(水) 17:03:21
長い処理を遣るときは工夫が必要だしねえ。

http://hibari.2ch.net/test/read.cgi/tech/1267796762/
★★ Java の宿題ここで答えます Part 69 ★★
http://hibari.2ch.net/test/read.cgi/tech/1290103530/
★★Java質問・相談スレッド142★★
http://hibari.2ch.net/test/read.cgi/tech/1253521167/
マルチスレッドプログラミング相談室 その8
657デフォルトの名無しさん:2011/01/08(土) 19:45:24
正直なところSwingとAWTってどっちが速いの?
なんかAWTはシステムデフォルトのGUIを呼び出してるっぽいし、
そっちのほうが速い気がするんだけど。
658デフォルトの名無しさん:2011/01/08(土) 20:19:15
「速い」の定義による。
659デフォルトの名無しさん:2011/01/09(日) 01:24:08
SWTが一番速い
660デフォルトの名無しさん:2011/01/11(火) 11:37:56
>>657
実際速いかどうかはしらんが。
SwingのJFileChooserなんかと比べると
AWTのFileDialogほうが高機能ではある。

SwingのGUIはJVM独自で描画してるから、
それがネイティブのGUIに勝っているのであれば速いんじゃまいか。
661デフォルトの名無しさん:2011/01/20(木) 09:28:50
Swing後のGUIって何?
もしかいて無いの?
662デフォルトの名無しさん:2011/01/20(木) 10:16:17
Java 7 で Swing Application Framework の追加が予定されている
663デフォルトの名無しさん:2011/01/20(木) 17:06:57
SWT
664デフォルトの名無しさん:2011/01/21(金) 01:43:04
AppFrameworkならJava 8に回されたよ。
しかも開発が終了してるので今後メンテされることはないよ。
665デフォルトの名無しさん:2011/01/21(金) 08:11:12
>>536
The Jigloo SWT/Swing GUI Builder is free for NON-COMMERCIAL use only.
666名無しさん:2011/02/01(火) 06:48:45
参考になるSwingのオープンソースはどのようなものがありますか?
部分的なサンプルはよくみかけるのですが
667デフォルトの名無しさん:2011/02/01(火) 20:07:56
kodersとかgoogleソースコード検索で探すといいよ
668デフォルトの名無しさん:2011/02/01(火) 21:58:25
いいよね
669デフォルトの名無しさん:2011/02/03(木) 14:00:06
Javaがデスクトップで流行らなかったのはGUIだよね。
遅いダサい作り辛い。
ま個人的にはMetalは好きなんだけど。
.netになれた自分としてはSwingはよーわからん・・
670デフォルトの名無しさん:2011/02/03(木) 21:22:18
Metalがダサいというかフォントが酷かったな。
あの汚いフォントで使いづらいファイル選択ダイアログとか出すから、
一瞬でアンインストールされるフラグ立っちゃうんだよ。
671デフォルトの名無しさん:2011/02/04(金) 07:34:47
フォントって変えられないの?
クリアフォントが使えないことを言っているんだろうが、
個人的には気にならんが。
672デフォルトの名無しさん:2011/02/04(金) 18:16:53
確かにデフォルトで表示されるフォントはもうちょっと考えればよかったのにな。
Emacsでもメイリオにしちゃう俺が言うのもなんだがw
673デフォルトの名無しさん:2011/02/08(火) 23:59:10
MVCモデルで設計した場合について質問です。
あるJFrameとListenerとControllerをすべて別クラスにする場合はどのようなクラス構成がいいのでしょうか?まず思いついたのがこんなのなんです。
public class Controller{
public void init (){
Model mode = new Model();
ViewListener viewListener = new ViewListener(this);
View view = new View(viewListener);
}
public void helloWorld(){ System.out.println("Hello World"); }
}

public class ViewListener extends ActionListener{
private Controller controller;
public ViewListener(Controller controller){
this.controller = controller;
}

@Override
public void actionPerformed(ActionEvent e) {
controller.helloWorld();
}
}

public class View{
puclic View(ActionListener viewListener){ this.addActionListener(viewListener) }
}
けどこれの場合JFrameが子画面の子画面の子画面みたいなときに、コンストラクタにひたすらActionListenerを伝って渡していかなければいけないので余り綺麗に思えません。
それを解決するためにActionListenerシングルトンにしてしまって、利用するviewでViewListener.getInstance()みたいにするのは問題ないのでしょうか?
また画面ごとに別のActionListenerを追加したい場合、引数がひどいことになってしまいます。
あともしViewの値をModelの処理に利用したい場合は、helloWorldメソッドの中で、view.getTextField().getText()みたいに呼べばいいのでしょうか?
これも子画面の子画面の子画面みたいなときはview.getView2().getView3().getTextField().getText()みたいになってしまい余りかっこよくないです。
ListenerとViewのクラスが分かれてなければactionPerformedメソッドの中でtextFieldの値を取得して、helloWorldの引数に渡すとか簡単なんでしょうけど
674デフォルトの名無しさん:2011/02/09(水) 21:11:31
ViewListenerってのを、Controllerのannonymous innerクラスにすると、
なにかまずいの?

あと、
View view = new View(viewListener);
じゃなくて、
View view = new View();
view.addActionListener(viewListener);
の方が良いと思う。
675名無しさん:2011/02/10(木) 07:39:27
>>674
コンストラクタに渡していたのは、自分で処理させた方が綺麗かなと思っただけであまり意味はないです
確かにそれの方が渡す引数を1階層減らせていいですね

viewが複数階層ある場合は、コンストラクタに渡していかなければいけないのは、どうしようもないのですかね
676デフォルトの名無しさん:2011/02/10(木) 13:52:16
>viewが複数階層ある場合は、コンストラクタに渡していかなければいけないのは、どうしようもないのですかね

addViewListener()メソッドが子viewに対してもaddViewListenerすればいいのでは?

「複数階層」というのがどんなものをイメージしているのかわからないけど、
レイアウト的な意味での階層(java.awt.Container)と、
viewの階層(アプリケーションドメインの階層)は切り離して考えていいと思う。

具体的には、ViewManagerみたいな入れ物クラスを作って、
内部のレイアウト階層がどうであれ、子viewに対してフラットに(=たとえば配列で)
アクセスできる仕組みをつくるとか。
677デフォルトの名無しさん:2011/02/10(木) 14:08:17
通報しました
678名無しさん:2011/02/10(木) 20:15:48
>>676
なるほどー 切り離しちゃってViewは1つのマネージャーで管理しちゃってもいいんですね
なんかオブジェクト指向という名前に釣られてどうしても現実とリンクさせてしまいがちです

Swingはコンポーネントの解説は調べれば出てくるんですけど、そういう構造をどうしたほうがいいみたいな資料がないので困っていたんですが助かりました!


そこで更に疑問なのですが、私が想定しているアプリならメソッドや変数はそんなに多くはならないんですけど、結構大きくなった場合はどのように分割するんですかね
Eclipseみたいな大規模なものはどういう構造になってるんだろうと思ってソース見てみましたがちんぷんかんぷんでしたw
679デフォルトの名無しさん:2011/02/10(木) 20:18:36
うざい
680デフォルトの名無しさん:2011/02/10(木) 22:57:32
ActionListenerがどのViewに充てられるかは、ViewよりもControllerに担わせた方がいい。
Viewの中身は、配置や大きさのようにひたすら表示に関することのみに専念するべき。
ViewのModelを取りたい場合は、PropertyChangeListenerを充てて取得する。
681デフォルトの名無しさん:2011/02/10(木) 23:34:15
そこまでする必要性が感じられない
682デフォルトの名無しさん:2011/02/10(木) 23:48:10
Swingに限らずMVC分離するとき、
Viewは、どのControllerやどんなModelが充てられるかは知らない。
Modelは、どんなControllerに保持されるかは知らない。

素直にやればこんなかんじになる
http://pastebin.com/BjKH9md5

Viewが増えたらViewを増やせばいいし、
Controllerが増えたらそれを増やせばいい。
ListenerはControllerだから、外部クラスにしたっていい。
683デフォルトの名無しさん:2011/02/10(木) 23:51:41
>>680
addActionListenerはControllerでViewにActionListenerを渡すんではなく、ControllerでViewを取得してActionListenerをした方がいいということですか?

ViewManager{
private View1 view1 = new View1();
private View2 view2 = new View2();  // getter省略
}
Controller{
private ViewManager vm = new ViewManager();
public void init(){
vm.getView1().addActionListener(new View1ActionListener(this));
vm.getView2().addActionListener(new View2ActionListener(this)); } }
×
ViewManager{
private View1 view1 = new View1();
private View2 view2 = new View2();
public void addActionListener1(ActionListener actionListener){
view1.addActionListener(actionListener);
}
public void addActionListener2(ActionListener actionListener){
view2.addActionListener(actionListener);
}
}
Controller{
private ViewManager vm = new ViewManager();
public void init(){
vm.addActionListener1(new View1ActionListener(this));
vm.addActionListener2(new View2ActionListener(this));
}
}
684デフォルトの名無しさん:2011/02/11(金) 00:14:01
>>683
そういうこと
×の方で書いてしまったとしても、リファクタリングすると自然と○のコードになる。
×のViewManagerは、継承クラスを作られることが(まず)無いので、
addActionListener1内の処理はメソッドである必要が無くなる
685デフォルトの名無しさん:2011/02/15(火) 22:28:11
SwingXの成果物全部マージしてくれ。
JXDatePickerとかJXTaskPaneとかJXBusyLabelとかJXCollapsiblePaneとか便利すぎるだろ。
だがJXTipOfTheDay・・・てめぇは要らねぇ!!
686デフォルトの名無しさん:2011/02/16(水) 08:31:01
1.6.0_23になってからサブメニューの位置が左にずれてしまった...
1.6.0_22までは問題無かったのに
687デフォルトの名無しさん:2011/02/19(土) 12:27:43
Swingって最初はつっかいずれーなーと思ってたけど
慣れてくるとなかなかどーして
結構気に入った
688デフォルトの名無しさん:2011/02/19(土) 12:40:22
>>687
特にどこが使いづらいの?
689デフォルトの名無しさん:2011/02/19(土) 13:34:28
GUIビルダ
.netを先に経験してるとけったいなことこの上ない
でも、SwingってGUIビルダ使うよりコードで書いた方が
気持ちいいことに気づいたら気に入った
690デフォルトの名無しさん:2011/02/19(土) 15:56:37
Swingに限らず、一週間で帳票画面100枚作らなければならない人とかでない限り
GUIビルダなんていらんと思うんだ
691デフォルトの名無しさん:2011/02/19(土) 16:29:35
nebeansのエディタで組んでeclipseで書くのが結構いい。
692デフォルトの名無しさん:2011/02/19(土) 16:41:45
>>687
挫折する人が多いのにどこが気に入ったの?
693デフォルトの名無しさん:2011/02/20(日) 16:05:13.12
質問なんですが、
通信用の子スレッドを作って、常にListen状態にしておき、受信データをメインスレッドのGUI部品に表示させたいんですが、
子スレッドから、親スレッドの部品にアクセスするにはどうすればいいんでしょうか?
694デフォルトの名無しさん:2011/02/23(水) 01:02:40.67
EventQueue.invokeLater
695デフォルトの名無しさん:2011/02/23(水) 01:05:49.45
>>692
普通に考えて挫折した人の気持ちなんてわかんないだろ
696デフォルトの名無しさん:2011/02/24(木) 01:08:36.59
スロットゲームみたいに一枚絵を上から下に決められた枠内だけに描画して
それを繰り返すってのはどうすればいいですかね
697デフォルトの名無しさん:2011/02/24(木) 04:53:05.85
>>696
Graphics#setClip
Graphics#drawImage
for文
698デフォルトの名無しさん:2011/02/24(木) 09:59:35.58
>>692
DelphiとかC#あたりから入ったから最初にSwingさわった時は
ギャップが大きくて訳ワカメだったけど
その後AndroidいじくってるうちにJava脳が鍛えられてたんだとオモw
699デフォルトの名無しさん:2011/02/24(木) 12:15:47.83
class Foo(object): pass
f = Foo()
f.bar = 'a'
setattr(f, 'baz', lambda self: 'b' + self.bar)
f.bar
'a'
f.baz()
'ba'
700デフォルトの名無しさん:2011/02/24(木) 15:23:05.78
>>696
スクロールバーなしのJScrollPaneに画像付きJLabel表示させて自前でスクロールさせるのがたぶん早い。
縦にJLabel二つ並べてギッコンバッタンさせれば客にはばれないだろう。

JViewportに適切な指示を出しとけば、ハードウェア支援を受けることも可能かも。
701デフォルトの名無しさん:2011/03/01(火) 01:31:31.07
>>698
Androidって言語にjava使ってるだけであんまりjavaっぽくないぞ。
702デフォルトの名無しさん:2011/03/01(火) 09:16:21.33
Javaって、こんなへぼいアプリしか書けないわけ?

38 名前:デフォルトの名無しさん [sage]: 2011/02/27(日) 21:31:11.41
>>16-17
ちょっと恥ずかしいけどさらしとく。
http://uncorrelated.servehttp.com/jar/KnockingBird.jar
703デフォルトの名無しさん:2011/03/01(火) 09:20:46.64
へぼくないアプリってたとえばどれ?
704デフォルトの名無しさん:2011/03/01(火) 10:02:25.25
705デフォルトの名無しさん:2011/03/01(火) 19:50:37.42
>>703
昔、ジャストが出してたこんなのとか?

http://www.justsystems.com/jp/software/dt/justarks/index.html

今のjast suiteのjava版って所やね
706デフォルトの名無しさん:2011/03/01(火) 22:28:12.67
>>705
前ソースのダウンロードは無料でできて、動かしたことあるけど
ひどい出来だったぞ。
707デフォルトの名無しさん:2011/03/01(火) 22:43:15.49
http://pc.watch.impress.co.jp/docs/article/20010920/just.htm
ジャストシステム、Javaベースの統合オフィスソフト「Just Arks」

jdk1.2.2で2000年ごろでIDEサポートもなくよく頑張ったと思う
javaでもms-officeクローンなものを、また作ってしまえばいいだろうって発想が失敗の元だったんじゃないか
708デフォルトの名無しさん:2011/03/01(火) 22:52:03.28
ひさしぶりにSwingを使ったプログラムを作ろうと思ったら
NetBeansに「JSR-296の開発は終了しています。」って言われた。

SwingはJava SE 6で最後になっちゃったの?
709デフォルトの名無しさん:2011/03/01(火) 22:55:04.82
何のことだろうとぐぐった
すぃんぐあぷりけぃしょんふれぃむわぁくの開発が終了しただけなんでね?

7に標準搭載を目指してたけど諦めたのかな
710デフォルトの名無しさん:2011/03/01(火) 23:27:10.82
>>709
諦めたらしい。JavaFXもあるしな。
Swingの新機能なら、SwingXもあるから、何とかなるでしょ、と。

肝心のSwingXも開発母体に資金が流れなくなったんで、今後は先細りっぽいけど…
711デフォルトの名無しさん:2011/03/01(火) 23:28:49.70
ああ、javax.swing.*が無くなるわけではないのか。
712デフォルトの名無しさん:2011/03/01(火) 23:40:41.82
swing frameworkはjava 8で入るって話だよ
java7,8はsiwnglabsのdatepickerとからいくつか入れるから別に見捨てられてるってわけではない
というか、swing-gui-mvcも理解出来る人が増えたからここいらでsynthを解説して普及させると、swing再評価とかで少しは流行るんじゃないか
mvcを理解できてもweb javafx appletやhtml dom cssとどう違うかってことまで説明できる人はまだいないだろうから、まだまだかな。実際現在のguiでも区別する程複雑なことをやってるわけでもないし
713デフォルトの名無しさん:2011/03/02(水) 00:18:43.30
css風レイアウトマネージャがあれば
HTML+JavaScriptのウィジェットを輸入できそうなんだけど
難しいのかな
714デフォルトの名無しさん:2011/03/02(水) 23:11:47.59
>>712
AppFrameworkはSwing知らない初学者にたいしてのEoDだしswing/gui/mvcの点でみればOpenSwingみいたいなFWのほうがいいと思うんだけど。
MVCでやってたらちょっとでかくなっただけでJavaだとデータバインディングやるしDBをhogehogeするのだってやるかもしれないし。

>>713
JavaFXが大コケしたから二度とそっち方面には手を出さないだろう。

ところでsynthのjavadocは平気で嘘書いてあるからソース読んだほうが早いし結局はカスタムペインタ書かなきゃいけないし
ただLnFをSkinableにしただけだから俺は最近はやりのXMLでUI定義して中身をコードで書くような新しいLnFが標準でほしいな。
715デフォルトの名無しさん:2011/03/03(木) 19:29:47.08
swingでWinのペイントツールにあるようなエアブラシって作れますか?
NetBeansで作ろうとしていますが、いろんなクラスがあって迷ってます
716デフォルトの名無しさん:2011/03/03(木) 20:25:17.51
ランダムな位置に 1x1 の大きさで fillRect するんじゃだめかね
717デフォルトの名無しさん:2011/03/03(木) 21:46:26.35
fillRectってJavadoc見ると塗りつぶしってあるのでエアブラシのような拡散して描画するって
感じにならないことありませんか??
718デフォルトの名無しさん:2011/03/03(木) 21:59:04.44
>>717
そうならないように、1x1ずつランダムに散らして塗るんだよ
719デフォルトの名無しさん:2011/03/03(木) 22:50:01.04
そういえば、ドット1つだけ打つメソッドってないんだっけ。
範囲を切り出してImageにして、好きなだけピクセルに色セットして、もとの場所に貼り直すという手はあるか。
720デフォルトの名無しさん:2011/03/04(金) 00:05:33.83
>>717
BufferedImage#getRGBで、BufferedImageをint[]に変換。
自分で設計した幾何フィルタで、int[]を変換。
BufferedImage#setRGBで、int[]をBufferedImageに変換。
721デフォルトの名無しさん:2011/03/04(金) 01:54:35.70
>>720
ありがとう
挑戦してみるよ!

しっかし、GUIは難しき
722デフォルトの名無しさん:2011/03/04(金) 01:57:51.51
そういやJWebPaneどうなったんだ
723デフォルトの名無しさん:2011/03/04(金) 18:07:39.67
見てごらん。
あの金色にかがやくお星様がJWebPaneだよ。
724デフォルトの名無しさん:2011/03/04(金) 20:19:58.84
エアブラシが出来ない・・orz
なんか塗りつぶされてしまう
fillrectの使い方がおかしいのだろうか
1×1にしてるのに
725デフォルトの名無しさん:2011/03/04(金) 23:33:58.44
塗る座標を乱数を交えて散らさないとペンみたいになるんじゃないか?
あとは一度に沢山試行したら結果的に満遍なく分布するから疎になるように試行回数を減らすとか
726デフォルトの名無しさん:2011/03/04(金) 23:44:12.18
ARGB
727デフォルトの名無しさん:2011/03/07(月) 17:37:37.00
>>724
2x2 ?
728デフォルトの名無しさん:2011/03/08(火) 03:11:21.05
>>727
1×1にしてる…はずなんだけど…おかしい
塗りつぶされてしまう
729デフォルトの名無しさん:2011/03/08(火) 19:53:04.55
現状のコード晒してみたら、と
730デフォルトの名無しさん:2011/03/09(水) 01:26:51.51
1x1って普通かけないよね。
javaにputみたいな関数ないし。
731デフォルトの名無しさん:2011/03/09(水) 04:28:23.41
732デフォルトの名無しさん:2011/03/13(日) 20:02:53.12
>>724
java大分忘れたけど、setPixel(もしくはそれっぽいの)で良いんじゃ。。。
733デフォルトの名無しさん:2011/03/15(火) 16:37:07.78
JOGL・Java3Dと一体化しないかな
734デフォルトの名無しさん:2011/03/21(月) 13:12:14.78
JFrameとかのJCompornentって何で、
PropertyListenerじゃないの?
せめてActionクラスから変更できて欲しいんだけど。
自前でモデルオブジェクトとCompornentをバインドする
コードを書くのがめんどい。
735デフォルトの名無しさん:2011/03/21(月) 13:20:25.85
とりあえず PropertyChangeListner のことだと思ってよろしいか?
736デフォルトの名無しさん:2011/03/21(月) 13:23:38.75
yes
737デフォルトの名無しさん:2011/03/21(月) 23:54:26.96
>>734
何を言いたいのかよく解らないがなんか勘違いしてないか?
738デフォルトの名無しさん:2011/03/22(火) 07:06:42.02
>>737
controllerがbeanのproperty変更→beanがリスナーcompornentを更新
てな変更の伝達を行いたいわけだけど。 何か変?
まぁ、今のswingなら素直に実装出来ないから変では有るんだろうけど。
739デフォルトの名無しさん:2011/03/22(火) 08:38:53.91
リスナーcompornent
ってのはCompornentListenerのこと?
740デフォルトの名無しさん:2011/03/22(火) 09:24:23.45
円を表す bean (radiusというプロパティを持つ)
半径を入力するための JTextField
bean を見える形で描画する JPanel
なんていうものがあったとき、

1. JPanel を bean に propertyChangeListener として登録。
2. 半径をテキストフィールドで入力
3. beanにsetRadius()
4. bean が PropertyChangeSupport#firePropertyChange などする
5. JPanelに反映

みたいな話だと思うので別におかしなところはないと思う。

JComponent が implements PropertyChangeListener でない理由はよく分からないけど、
意味のある使い方をするときはどうせ propertyChange メソッドを実装しなけりゃならないので、
実装してデフォルトの空実装を提供する必要はないと判断したんじゃないだろうか。
メソッド1つしかないし。
741デフォルトの名無しさん:2011/03/22(火) 20:47:22.28
>>740
まさしくそんなかんじ。
実際には、画像の情報のbeanを用意して、
ウインドウのタイトルにbeanが持つ画像のファイル名をだしたり、
リストにbeanの持つ詳細情報を表示させるって感じ。
そんで画像の切り替えはbeanの操作だけで行うと。

しかし、よく考えると、CompornentをPropertyCangeListinerにできるとまずいね。
titleの変更を複数のbeanからできちゃう。
Actionクラスみたいな感じで操作できるといいんだけど。
742デフォルトの名無しさん:2011/03/23(水) 02:21:13.82
>自前でモデルオブジェクトとCompornentをバインドする
ああ、だからこういったのか。
java beansはたしかにMVCのMに相当するけどModelに相当することをやるための仕様じゃなくて
再利用可能なコンポーネントを定義して(主にRAD環境から)使い回すための仕様だから普通に
SwingのMVCに従って「ウインドウのタイトルにbeanが持つ画像のファイル名をだしたり...」を実装したほうが良いと思うよ。
java beansのしがらみに縛られる必要性はないんでしょ?
743デフォルトの名無しさん:2011/03/23(水) 04:37:38.85
MVCなら、swing.Actionと同じようにbeansをMとするならM-CVでなくMC-Vってことだからそれでも出来るんじゃないか。
ただswingのしくみを正確に理解してないとM-CVでもMV-Cでも難しいだろうね。
744デフォルトの名無しさん:2011/03/23(水) 18:02:24.06
>>742
そうだね。単にbeanの資産を生かしたいってだけだったから、そこまでこだわる必要もないかもね。

>>742-743
swing流MVCってよくわかんない。
documentインターフェースとか、文字列系
Compornent全般で使えるわけじゃないところが。
個人的にいびつな感じがする。
てか、わたしのswing流MVCに対する知識が無いだけ
なのかもしれないけど。
swingでのMVCってのはこうだってのがあったら教えてよ。
745デフォルトの名無しさん:2011/03/23(水) 18:07:17.84
上の方のレスから何を言ってるかさっぱりだから、まずは日本語から勉強したほうがいいだろう
746デフォルトの名無しさん:2011/03/25(金) 09:07:16.83
SwingってM-VCだったりMVCだったりするよね。
747デフォルトの名無しさん:2011/03/26(土) 23:41:43.82
guiでmvcってそもそも(ry
748デフォルトの名無しさん:2011/03/26(土) 23:58:10.14
>>747
そもそもなんだよ?
749デフォルトの名無しさん:2011/03/27(日) 10:48:46.96
>>744
Guiに依存する所はswing
そうで無い所はswing色が無いか薄い

そんな印象
(違ってたらスマソ。でも触った感じ、そう思った)
750デフォルトの名無しさん:2011/03/28(月) 23:41:54.77
>>748
サーバサイドから Java 始めた奴って MVC がサーバサイドの話と思ってるのかもな。
751デフォルトの名無しさん:2011/03/29(火) 08:07:08.87
サーバーサイドのMVCってGUIのMVCからみたらかなり変だよな。
というか使う側がおかしいんだろうけど。
なんせモデルに対してビューが複数無い。
それどころかモデルがそもそも怪しい。
752デフォルトの名無しさん:2011/03/29(火) 16:26:05.03
>>751
複数あるよ。
753デフォルトの名無しさん:2011/03/29(火) 21:20:12.25
三層アーキテクチャって奴か。UI・ロジック・DBだっけ?
java beansはどっちかというとアレやるための仕様だよな。適用分野が違う。
754デフォルトの名無しさん:2011/03/29(火) 22:29:37.24
JavaBeansは再利用可能なコンポーネントだから、MVCとは関係ない。
755デフォルトの名無しさん:2011/03/29(火) 23:43:17.13
>>753
n層データ構造はMS流MVC亜種。
MVCも好い加減流派が多すぎる。
Cocoaには少し感動したけど、あれも元のSmalltalkとは異なるって話だし。
Smalltalk知らんので、そっちは何とも言えんけど。
756デフォルトの名無しさん:2011/03/30(水) 01:24:58.82
CocoaはNextStep→OPENSTEP→Cocoaとくる直系の血筋だぞ。買収してそのまま持ってきただけ。
んでNextStepはSmalltalkの一部に影響受けてる。ついでにjavaもOPENSTEPの影響受けてるよ。
SmalltalkはSelfになったしMVCはMorphicになった。MVCが独り歩きしてるだけ。
どっちかというと変則のMVCはOPENSTEPあたりの影響。
757デフォルトの名無しさん:2011/03/30(水) 07:59:33.55
>>752
時間当たりの放射線量とか月当たりの売り上げみたいな経過を
グラフとテーブルで表現とか見たこと無いんだが。
この場合放射線の経過と売り上げの経過がモデルで、
グラフとテーブルがビューね。

動画サイトは動画モデルに対してサムネと動画プレイヤーというビューを
持てる筈だけどそんな実装にはなってないだろうなぁ。
758デフォルトの名無しさん:2011/03/30(水) 08:28:05.18
店別売り上げがあった時、その中に含まれる店一覧をプルダウンメニューに、
年月をスライダーにバインドして、抽出結果をテーブル(グラフ)表示ってのはダメなのかね。
759デフォルトの名無しさん:2011/03/30(水) 13:20:01.88
>>758
内部構造がTreeSetとHashSetぐらい全く違うモデルに取り替えても、
一切ビューの変更が無いのであればあり。
じゃないとブロードキャストの必要が無いwebでモデルを使う意味がない。
760デフォルトの名無しさん:2011/03/30(水) 13:53:12.99
そりゃそうだw
ジャバではボタンにアクション・リスナーをaddするんだからw
761デフォルトの名無しさん:2011/03/30(水) 13:57:11.38
マカってホント情報弱者だな。
762デフォルトの名無しさん:2011/03/30(水) 14:05:13.88
またおまえかw
763デフォルトの名無しさん:2011/04/02(土) 09:24:27.93
apache pivotの2.0が出てたので、かじってみた。
デフォルトでは日本語フォントが出ないけど、設定すれば、表示は問題ない。
でもテキスト入力で、IMEのインライン入力(On the spot)ができない。
あとはTableViewが、JTableなみのスケーラビリティあれば、Swingの代替になるかも。
764デフォルトの名無しさん:2011/04/03(日) 22:32:26.74
>でもテキスト入力で、IMEのインライン入力(On the spot)ができない。
javaの問題
765デフォルトの名無しさん:2011/04/04(月) 12:42:33.97
>>764
swing出来てるじゃん。
あれは、on the spotじやなくてover the spot?
pivotはoff the spotなのよ。IMEの独立ウィンドウで入力。
766デフォルトの名無しさん:2011/04/04(月) 12:57:47.20
swingっつかAWTはアプリケーションが変換前文字列描画する所謂on the spotには対応してるけど、
IMEに変換前文字列描かせるover the spotはサポートしてないよ。
767デフォルトの名無しさん:2011/04/06(水) 01:12:53.86
今日からJavaプログラマーになりました。
早速画面を作ったのですが、
JTextField でフォントサイズ18ptと文字(半角)数N文字にぴたりと合う大きさにしたいのですが、
どうすればよいでしょうか?
768デフォルトの名無しさん:2011/04/06(水) 09:10:58.99
>>767
java.awt.FontMetrics
769デフォルトの名無しさん:2011/04/07(木) 00:16:41.28
>>767
JTextField#getPreferredSize()呼べばたぶん教えてくれるよ
大きさ調整はLayoutManagerにやらせるのが普通だけど
770 忍法帖【Lv=6,xxxP】 :2011/04/20(水) 10:04:07.82
JAVA GUI 2巻 ちょこちょこ間違いあるが
P198 lastRow=row; row++;
ではなくて
row++; lastrRow=row;な
771 忍法帖【Lv=6,xxxP】 :2011/04/20(水) 10:11:21.07
3-1検索時のエラー対処もいるな
772デフォルトの名無しさん:2011/04/27(水) 15:13:50.60
Swingで画面遷移ってどうやるの?
JFrame1個作ってハメるJPanelを切り替えてく感じ?
JFrameを作っては消し作っては消ししてく感じ?
773デフォルトの名無しさん:2011/04/27(水) 16:23:04.69
CardLayoutじゃね?
774デフォルトの名無しさん:2011/04/27(水) 16:49:23.63
仮に100画面くらい遷移して前の画面に戻ることもないとしたら
全画面メモリに保持する必要ないんだけど
CardLayoutは適切?
775デフォルトの名無しさん:2011/04/27(水) 20:30:25.65
JFrame1個作ってハメるJPanelを切り替えてく感じ
776デフォルトの名無しさん:2011/04/30(土) 14:44:56.75
なんかメモリークシテ逝きそうだよな。
777デフォルトの名無しさん:2011/05/02(月) 20:25:50.58
別々のプロセスから同じjarのJFrame起動したとき
Windows7のタスクバーでアイコンまとめる方法ない?
普通のWindowsアプリなら同じプログラムならまとめてくれるんだけど
Javaだとまとまらない
778デフォルトの名無しさん:2011/05/02(月) 21:09:33.18
Windowsアプリの場合、最終的にはWinMainで既に同一アプリが起動してるか
チェックして、起動してたらそっちに制御を渡してウィンドウだけ増やす、という動
きをさせるんじゃなかったっけ?

JavaインタプリタのWinMain自体には手を入れられないから、Javaレベルで
同一アプリケーションが既に起動しているかをチェックすることになるんだろうか。
779デフォルトの名無しさん:2011/05/02(月) 22:21:49.10
同一アプリがすでに起動してるかってJavaでチェックできるの?
前にプロセス一覧取得するのにいろいろ調べたけど
結局Runtime.exec() で、tasklistプロセス叩いてその結果から取得するって方法しかわからなかった
それともプロセス間通信するクライアントとサーバ作るような感じなのか・・?
780デフォルトの名無しさん:2011/05/02(月) 22:25:40.57
特定のローカルポートをlistenするように作って、
誰もlistenしてなかったらそこで要求を待ちつつウィンドウを開く。
先任者がlistenしてたらそいつに要求を投げて終了。
とかしてるのがあった、ような…

781デフォルトの名無しさん:2011/05/02(月) 22:35:59.50
特定ファイルのロックを獲得できるかどうか、
特定ファイルをFile#createNewFile()で作成するのに成功するか失敗するか、
782デフォルトの名無しさん:2011/05/02(月) 23:24:24.76
>>780
これが一番シンプルな方法かな
作り足すの大変だけど、同時に多いときで10個ぐらい起動したいから、やるしかないかなあ
他に方法なければw

>>781
起動してるかどうかを確認する方法は、そういうのでもいんだけどねえ・・
純粋にプロセス間通信か、ロックファイルチックなのに必要な情報書いて
そのロックファイルを1つのプロセスでタイマー監視するとかか
783デフォルトの名無しさん:2011/05/03(火) 09:03:21.03
徹夜したけどSocket通信する方法で改良したw
サンクス
784デフォルトの名無しさん:2011/05/10(火) 11:22:08.45
JRE5でswing-workerを使用したいのですが、どこかのサイトに「swing-worker-1.1.jar」を組み込めばJRE6と同じ機能が期待できるものなのでしょうか?
SwingWorkerのサンプルがJRE6ばっかりなので判断なかなか付きません。
785デフォルトの名無しさん:2011/05/12(木) 15:04:12.58
ほー。ソケット通信の実装でのパフォーマンス低下の影響は無視できる程度?
786デフォルトの名無しさん:2011/05/12(木) 20:08:01.60
起動時の1回きりだからパフォーマンスに影響するようなものではないと想う。
1つめのプログラムがリクエスト待ちスレッド1つ用意しておいて、
2つ目以降は、起動済みの1つめに対して、「このパラメータでもう1つウィンドウ
開いて」とリクエストして終了するだけだし。
787デフォルトの名無しさん:2011/05/13(金) 04:52:44.04
10個起動される度に1つ目のプログラムの処理が停滞はしないの?
swingで重たい描画してるとかネットやファイルのioで待たされたりしてる時とかもっさりしない?
788デフォルトの名無しさん:2011/05/14(土) 15:51:18.14
なんで通信用スレッドでたかだか10程度の要求受けただけで、Swing描画に影響出ると思うの?
わかんないんです(><)
790デフォルトの名無しさん:2011/05/15(日) 05:17:04.58
10個同じプロセス立ち上げるより
10個同じスレッド走ってたほうが軽いんじゃね
ケースによるけど
791デフォルトの名無しさん:2011/05/17(火) 01:12:54.06
linuxで透過ウィンドウってできますか?
awtutilitiesがエラーでてしまいます
792デフォルトの名無しさん:2011/05/17(火) 17:14:56.03
他の言語で通過できなきゃシステムでサポートしてない。
793デフォルトの名無しさん:2011/05/19(木) 12:01:07.45
swing ってなんでウィンドウフレームまでルックアンドフィール変更できるの?
枠無くすためにWin32のPOPUP WINDOWでウィンドウ生成してる?
794デフォルトの名無しさん:2011/05/19(木) 12:21:34.88
たぶん普通にWS_POPUPを使ってる、もしくは
親ウィンドウを透明にして子ウィンドウをWS_THICKFRAMEでつくってる
795デフォルトの名無しさん:2011/05/24(火) 02:39:36.86
>>784
できる
796デフォルトの名無しさん:2011/06/02(木) 13:41:08.91
JProgressBarの動かし方がさっぱりわからない。
↓みたいな場合にSwingUtilities.invokeLater()やらrevalidate()やらはどこに入れるべき?

dlTask = new DownloadTask(progressBar);
futureTask = new FutureTask(dlTask);
new Thread(futureTask).start();

public class DownloadTask implements Callable {
 public DownloadTask(progressBar) {
  this.progressBar = progressBar;
 }
 /* 中略 */

 public Data call() {
  while {
   //データダウンロード処理の進捗表示にprogressBarを使いたい
  }
  return data;
 }
}
797デフォルトの名無しさん:2011/06/03(金) 12:43:59.22
PCも高性能になって、Swingアプリもさくさく動くから、いいね。

これから、Swingで色々作ろうと思うよ。
798デフォルトの名無しさん:2011/06/03(金) 18:24:32.93
ああ、もっとSwing普及しないかな〜?

Swing!Swing!Swing!
799デフォルトの名無しさん:2011/06/03(金) 20:20:32.67
>>796
なにかいろいろ間違っている
callのwhileはSwingWorkerで実装するべき
800デフォルトの名無しさん:2011/06/03(金) 20:34:09.29
参考
http://terai.xrea.jp/Swing/SwingWorker.html

どうしてもCallableでやるならJProgressBarにpaintImmediatelyで再描画すればいけるはず
だがとてもいやな予感がする
801796:2011/06/05(日) 14:30:58.72
サンクス
で、プログレスバーを更新するには
doInBackgroundの中のwhile内でpublishなりfirePropertyChangeなりsetProgress なりを呼ばないといけないと理解したんだけど
できればバックグラウンドで走らせる処理はSwingWorker内に書くんじゃなくて別クラスに分離したいんだけど、
while内でsetProgress呼ばないといけないし、分離する方法ない?
802デフォルトの名無しさん:2011/06/05(日) 20:18:11.70
そしたら、ダウンロード処理が実際にどんなコードになるかわからんが、
DownloadTaskクラスにAtomicIntegerとかでprogressみたいな名前で進捗プロパティを作って、
callのwhileが走ってるときはそのプロパティ値をいじる。
JProgressBarの更新は、このDownloadTaskの実行と進捗を監視するSwingWorkerクラスを作ってやる。

こんな感じに実装↓
class ProgressWorker extends SwingWorker<Data, Integer> {
private final BoundedRangeModel model; // JProgressBar のモデル
private final DownloadTask dlTask;
private final ExecutorService dlExecutor = Executors.newSingleThreadExecutor(); // ダウンロード実行スレッド

public ProgressWorker(BoundedRangeModel model, DownloadTask dlTask) {
this.model = model;
this.dlTask = dlTask;
}

protected Data doInBackground() {
Future<Data> downloading = dlExecutor.submit(dlTask);
taskExecutor.shutdown();
while(! downloading.isDone()) {
publish(downloading.getProgress.intValue())
Thread.sleep(50); // 進捗は適度にチェック
}
return downloading.get();
}
803デフォルトの名無しさん:2011/06/05(日) 20:19:15.78
続き

protected void process(List<Integer> progress) {
// ここはEDT上だからモデルを変更すればJProgressBarも更新される
if (progress.size() > 0) model.setValue(progress.get(progress.size()-1));
}

protected void done() {
model.setValue(model.getMaximum());
Data data = get();
// dataをなんとかする処理...
}
}

んで、こんなふうに使う↓
DownloadTask dlTask = new DownloadTask();
ProgressWorker dlWorker = new ProgressWorker(progressBar.getModel, dlTask);
dlWorker.execute();
804デフォルトの名無しさん:2011/06/05(日) 23:47:15.78
JEditorPaneで作ったブラウザでアプレット表示できんぞ!どうなっとんじゃー!
805デフォルトの名無しさん:2011/06/05(日) 23:51:23.03
>>804
そんなことできるの?
806デフォルトの名無しさん:2011/06/06(月) 00:49:26.76
できません
807デフォルトの名無しさん:2011/06/06(月) 01:06:37.20
せっかくJavaなのに
808デフォルトの名無しさん:2011/06/06(月) 20:53:28.26
そういやSwingにWebkitを積むとかいうJWebPaneってどうなったの
809デフォルトの名無しさん:2011/06/06(月) 22:26:19.29
JavaFXに引き取られた
810デフォルトの名無しさん:2011/06/08(水) 16:02:02.61
http://d.hatena.ne.jp/nowokay/20110526#1306438744
↑きしだのはてな
ここで、JavaFXのWebPaneをSwingにつんで色々アプリを作る連載を5回くらいやってるから
やってみるとおもしろいよ。

SwingでWebKitブラウザが使えるなんて、もう舞い上がるほどうれしい。
811デフォルトの名無しさん:2011/06/08(水) 16:16:27.37
いやいやウェブキットってオブジェクトCでしょ。糊で張り合わせた様なもの動いて嬉しいとは思わない。
どうせなら100%javaで実装してくれたほうが良かった。
812デフォルトの名無しさん:2011/06/08(水) 17:57:25.94
IEコンポーネントの100倍うれしいけど、Mozillaのエンジンなんだっけ?

ああ、Geckoだ。あれもできれば、Javaから使いたい。いや、使えるように是非してください!
813デフォルトの名無しさん:2011/06/08(水) 18:30:34.28
くだらん
Swing 使うならとことん Swing で作りきれ

HTML の出る幕なし
ちょっとハイパーリンクとか埋め込みたいってんなら、HTMLEditorKit があるし
それでじゅうぶん
814デフォルトの名無しさん:2011/06/08(水) 19:58:24.11
実績のあるエンジンを利用するほうが楽だし脆弱性もあっちで塞いでくれるんだからいいじゃないか
それとMozillaは組み込みGeckoのサポートを廃止するから使わないほうが賢明だろうな
815デフォルトの名無しさん:2011/06/08(水) 21:23:01.25
HotJavaとは何だったのか
816デフォルトの名無しさん:2011/06/09(木) 00:19:05.56
どうして低速なの?
817デフォルトの名無しさん:2011/06/09(木) 02:55:43.18
>>816
なんでもかんでも自分でやろうとして抱え込んじまうような
わがままで不器用なやつだから
818デフォルトの名無しさん:2011/06/09(木) 04:59:03.82
昔は100%purejavaというのがjavaのセールスポイントだったからなあ。
いまはh264の縁故/デコはgpuに丸投げとか他力本願な技術が多く成ってるからなあ。

逆に言うとwebkitの穴にみんなが依存して抜けられなく成ってしまってる。もうflashの穴にみんなうんざりしてたはずなのにね。
gecko消えたあとで勝利宣言でも出すんじゃないw まあgeckoが残す価値のあるエンジンとも思えないけど。
819デフォルトの名無しさん:2011/06/09(木) 06:28:29.18
日本語でおk
820デフォルトの名無しさん:2011/06/09(木) 10:23:36.61
>>816
OSに依存しない様に作ったから
>>817は良い例えになってる

821デフォルトの名無しさん:2011/06/09(木) 19:44:04.36
なんでもかんでも一人で抱え込むには世界は複雑になりすぎた
822デフォルトの名無しさん:2011/06/09(木) 19:49:44.32
日本人的視点で見るとjavafxとswingはどこか違うところがあるんですか?(swingから見て)
823デフォルトの名無しさん:2011/06/09(木) 23:15:54.31
逆に全部他にやらせるのはないの?
824デフォルトの名無しさん:2011/06/10(金) 01:18:30.19
>>823
c言語。。。かなぁ
文法は単純で、文字を表示させるのにもライブラリが必要
(仕様にライブラリも含まれてるけど)

逆に言えば、そのお陰で色んなプラットフォームに対応出来た
(プラットフォームに合わせてライブラリを変えれば良い)
825デフォルトの名無しさん:2011/06/11(土) 10:12:25.24
JFreeChartというのがなかなか良いライブラリなのですが、Swingで動くためか起動に時間がかかります。
(4年前のMacBookで10秒くらい)起動を速くする方法はありますか?
826デフォルトの名無しさん:2011/06/11(土) 10:14:04.93
PC買い換える
827デフォルトの名無しさん:2011/06/11(土) 12:12:08.22
>>825
OSによって層の厚みが違うからね
unix系の方が層が薄くて速いんだよ

pc買い換えるか、OS変えるしか無い

あ、exeファイルに変換する手も有ったか
828デフォルトの名無しさん:2011/06/12(日) 00:28:09.07
マカってホント情報弱者だよな。
829デフォルトの名無しさん:2011/06/12(日) 00:34:24.08
マクの時点でやる気無いでしょ。いまだにj2ee無いしw
830デフォルトの名無しさん:2011/06/12(日) 17:29:08.24
みなさんはJavaFX2.0に乗り換えますか?
831デフォルトの名無しさん:2011/06/12(日) 17:34:52.06
両方使う
832デフォルトの名無しさん:2011/06/12(日) 17:51:40.75
javafx 2.0のapidocをみてもクラス名とかクラス階層にセンスを感じられない。
リリースまで1年以上もあって人も金も豊富なオラクルなのに未だにやっつけ設計みたいなことをやってるし、ジャバプラットフォームにはもうサンのころの「やさしさ」は残ってないなって思った。
833デフォルトの名無しさん:2011/06/12(日) 20:12:50.31
>>790
シングルプロセスマルチスレッドのflashplayerより
マルチプロセスマルチスレッドのちょろめの方が安定してる。
大規模なメモリー空間が必要な場合、シングルプロセス
マルチスレッドは弱い。スレッドの開放 == リソースの開放にならないからね。
834デフォルトの名無しさん:2011/06/13(月) 12:52:21.44
そこはオラクルに買収されたんだから産の頃のままにはなる訳が無い。身売りってそういうものだ。
オラクルに買収されなくてibmに買収されても、産の頃のやり方はibmのルールに改められるよ。
そのまま産とともにジャバも消えてしまって消去法でc++の復権のほうが良かった?
835デフォルトの名無しさん:2011/06/13(月) 13:18:39.79
例えばObservableList, ObservableListとかサンのエンジニアだったらもっとセンスある設計をすると思ってた。
addAllとかコレクションに配列を混ぜようとしてるし、setAllとか関数名も最悪だし、ベータの段階でもう既にジャバのほどよいフレーバーを感じるようなプラットフォームじゃない。
836デフォルトの名無しさん:2011/06/14(火) 02:01:24.21
>>829
そいつ昔から鯖そのものに張り付いてるbotだからスルーしろ。
837デフォルトの名無しさん:2011/06/14(火) 02:59:36.29
そこは是非こうあるべきって提案して開発に参加して欲しいな。
理想的実装のヲレフレームワークで包んでしまって終わりなのかもしれないが。
838デフォルトの名無しさん:2011/06/15(水) 15:17:41.33
javafx betaではbuilder classをたくさん用意しるみたいだけどオラクルの設計者たちは今後javafxにクラスが増えたり関数が追加されてもbuilder classをサポートしていくつもりなのかな。
オラクルって言うところはこういう泥くさい20年以上前のパラダイムのままで止まっているところだったの?
839デフォルトの名無しさん:2011/06/15(水) 16:26:01.26
Swingのテーブルモデルとか新しいのできないかな?

JTableとDBやらXMLやらテキストファイルでO/Rマッピングできたら、それはもう最高さ!
840デフォルトの名無しさん:2011/06/15(水) 20:07:16.18
会社無くなってやることないんでCIAの狗になりたいんだけどどうしたらいいの?
841デフォルトの名無しさん:2011/06/15(水) 20:08:02.99
ごめん誤爆
842デフォルトの名無しさん:2011/06/16(木) 06:49:49.82
早い段階でほうれん草や牛乳とか母乳に出たのはストロンチウムのせいとしか思えない
843デフォルトの名無しさん:2011/06/16(木) 18:32:18.79
部品にSizeやPreferredSizeを設定しても反映されたりされなかったりするのは何なの?
844デフォルトの名無しさん:2011/06/16(木) 23:45:26.93
実際のサイズはレイアウトが設定するから
845デフォルトの名無しさん:2011/06/20(月) 04:41:33.01
>>839
JAXBでやってるけど
846デフォルトの名無しさん:2011/06/20(月) 22:31:42.67
SwingアプリでJavaFX2.0のWebKitブラウザ使ってみたけど、やっぱ、もっさりしてる(;´д`)
847デフォルトの名無しさん:2011/06/21(火) 01:06:51.78
Java中速GUIは何なの?
848\:2011/06/21(火) 03:10:18.60
>>847
AWT
849\:2011/06/21(火) 03:11:41.35
つーか、低速GUI・SWINGってかいてあるけど、
全部JavaFXでアプリ組むとSWINGの5倍遅いぞ。まじめに。

ありゃ、完全にマルチコアじゃないとあかんわ。
850デフォルトの名無しさん:2011/06/21(火) 04:50:53.59
もうアドビしかないな
851デフォルトの名無しさん:2011/06/21(火) 05:56:14.26
アドビはスイング以上に終わってるよ。アドビの携帯なんて無いしw
852デフォルトの名無しさん:2011/06/21(火) 15:41:57.40
1スレ1000idユニークで1000色使って見分け就くと思うのがw
853デフォルトの名無しさん:2011/06/21(火) 19:23:11.29
Nimbusに切り替えてからMetalに戻すとJTableのグリッドが消えちゃう;;
854デフォルトの名無しさん:2011/06/27(月) 14:32:29.09
秋頃になったらJavafxの話もここでして良いもんかね?
855デフォルトの名無しさん:2011/06/27(月) 15:08:10.69
JavaFX は要らんなあ

もう Windows 8 のタイルベースのUI やら HTML5 やら
新しいユーザインターフェースがいよいよ主流になろうか
ってときに、いま簡単に Swing ベースのアプリケーションを
記述と申されても、10年遅い
856デフォルトの名無しさん:2011/06/27(月) 15:30:42.34
というよりswingもjavafxももう終わってるでしょ
swingは万能な設計を目指した割にはなんか中途半端で使いにくいし、java以外の他のtoolkitに馴染んでる人が今度のxProperty()なんてのもgetContentPane()の時と同じで絶対受け入れないだろうね
javafxなんてどうでもいいからswing frameworkとかswinglabsの成果をjava7に入れてほしい
857デフォルトの名無しさん:2011/06/27(月) 16:19:07.54
javafx 2はjava6,java7を意識しないでベータのままにしてだらだら移植を進めて、javafx 2リリースはjava8リリース予定の2012冬まで同じく延期しておいていいよ。
ベータのドキュメントを見てもswing apiの品質にすら達していないのにあと半年で正式版リリースできるはずないでしょ。
appletの起動の遅さでflashに流れたのと同じで、早く出したい早く追いつきたいというだけでたいした目標もなく言語やapiの品質も中途半端でそんなやっつけ仕事のままでリリースすると今回も誰からも相手にされなくなるんじゃないかと思う。
肝心のswing開発者に対してjavafxはswingとまったく別物って言うメッセージすらも届いてないみたいだし、javaじゃない人にとってはhtml5,css3もそろそろ見えてくるだろうし、
そういう人たちがswing,javafxの複雑なライブラリベースのapiやsyntaxを勉強する時間はないだろう。
勉強すればそれなりにjavaの凄さが分かるんだけど、金と時間をかけて勉強してswing,javafxベースで作っても2011年現在のhtml,webベースのものとたいして変わりない。
858デフォルトの名無しさん:2011/06/27(月) 16:24:59.34
WPFもコケ気味だから,JavaFXもむずいかも試練ね。
859デフォルトの名無しさん:2011/06/27(月) 16:44:53.22
MSはWindows 95のころから2,3年程度でころころと主要frameworkが変わるからまったく信用してない。
860デフォルトの名無しさん:2011/06/27(月) 17:19:44.46
簡単に記述ったって、もともとスクリプト言語の書きやすさにはかなわないんだから
もうあきらめて、Java はIDE激しく使ってコード書いてくものと決めつけてもらっていいよw

Swing は、ところどころ、まああんまりよくないなと思うとこはありつつも
それでも GUI のAPIとしては優秀な部類 これは少しづつメンテナンスするだけでいい

そんなのより、マルチタッチパネル向けの GUI に心機一転、ゼロからしっかりしたAPI作ってほしい
861デフォルトの名無しさん:2011/06/27(月) 17:45:34.12
SwingとかAndroidでも動くようになってくれ
Googleと仲良くしてくれ
862デフォルトの名無しさん:2011/06/27(月) 19:45:34.96
>>859
そうだよね(´・ω・`)

おまけに、使い心地も良くないし。
QtとかSwingは10年以上つかえるもんね。
863デフォルトの名無しさん:2011/06/28(火) 02:41:38.04
あれはあれで定期的に作り直す需要を産むからソフト業界が飯喰えてる気もw
10年前と変わらずswingがつかえるjavaを作ったサンは儲けきれずに消えてしまった訳で。

逆にアンドロイドapiでも動作するウィンドウズ用のランタイム入りのj2seを配布して欲しいかなw
せっかくどこでも動く仕組みを採用してるから、グーグルアプリをどこでも動く様にして欲しいw
864デフォルトの名無しさん:2011/06/28(火) 03:44:16.68
>10年前と変わらずswingがつかえるjavaを作ったサンは儲けきれずに消えてしまった訳で。

sunが消えた理由はそこじゃないやろ
865デフォルトの名無しさん:2011/06/28(火) 05:41:45.92
>>864
そういうゴミ、いちいち相手にしなくていいんじゃないの?
866デフォルトの名無しさん:2011/06/28(火) 05:55:32.27
スクリプト言語はguiが書きやすいというのは過去の都市伝説でしょ。
インジェクション・パターンが確立された現在では。
867デフォルトの名無しさん:2011/06/28(火) 06:21:52.57
>>864
そうだった
ごみん
868デフォルトの名無しさん:2011/06/28(火) 07:39:43.68
ゆとりってばかだな
869デフォルトの名無しさん:2011/06/28(火) 10:29:53.78
ぶっちゃけ、スクリプト言語でも今までのSwingでもそんなに変わらないよね(;^_^

Swingでも十分だよ。
870デフォルトの名無しさん:2011/06/28(火) 19:59:35.98
個人的にはSwingはswingworker使わなくてもマルチスレッドで動いて欲しいよな-なんて

871デフォルトの名無しさん:2011/06/28(火) 20:22:47.53
なにかメリットあるか?
872デフォルトの名無しさん:2011/06/28(火) 20:42:50.69
長い処理しても固まらない
873デフォルトの名無しさん:2011/06/28(火) 21:24:05.05
普段から遅くなるから固まっても区別つかないって事か?
874デフォルトの名無しさん:2011/06/29(水) 00:05:53.10
うーん、処理が長いことやらせると、クリックした時点で固まるでしょ?

それをswingworkerでやればいいんだけど、なんだかね・・・
875デフォルトの名無しさん:2011/06/29(水) 00:18:40.67
モーダルダイアログとか、ふつーにマルチスレッドで動いていると思うんだが
876デフォルトの名無しさん:2011/06/29(水) 00:25:34.58
EDTがシングルスレッドって言いたいんじゃね?

874みたいな動機でマルチスレッドにしても
頻繁にデッドロックするようになるだけだと思うが。
877デフォルトの名無しさん:2011/06/29(水) 02:39:02.07
そういえば、自分がJava始めたとき
Swingはシングルスレッドなので…というようなことが
言い訳がましく記述されてるのをしゅっちゅう見かけたのですが、
そうじゃないGUIフレームワークなんてあるのでしょうか?(Javaに限らず)
AWTはよく知らないのですが、もしかしてEDTみたいなの気にせずどのスレッドからでもアクセス可だったりしたのでしょうか?
878デフォルトの名無しさん:2011/06/29(水) 05:13:08.21
難しいことを考えたりしないで素直にswingworkerを使ってください。
879デフォルトの名無しさん:2011/06/29(水) 09:17:23.79
SwingではMVCのControllerの中心的役割をAbstractActionが担うみたいだけど、
actionPerformedの中でGUIパーツをいじりたい時って、よく無名クラスを使って

button.addActionListener(new AbstractAction() { ... });

みたいな書き方するけど、
ViewとControllerのクラスを分けるべきとか気にしなくていいの?

てか、View-Controller分ける主義で無名クラス使わないようにしてる人いる?
880デフォルトの名無しさん:2011/06/29(水) 09:20:25.83
ツッコミどころが多すぎて答えられない。
881デフォルトの名無しさん:2011/06/29(水) 09:34:59.59
なんでそう思ったの?知らないならレスしなければいいのに。
882デフォルトの名無しさん:2011/06/29(水) 09:36:59.25
>>879
なるだけ使わないようにしてる
ごちゃごちゃしてしまって、俺みたいな馬鹿はIDEを使っても訳が分からなくなるから
883デフォルトの名無しさん:2011/06/29(水) 09:43:35.99
リスナはいくつでも登録できるし、
リスナは所詮リスナであってController専用というわけでは無い。

押されたときだけボタンアイコンがアヘ顔になるとかいう処理は、
Viewと同じコンパイル単位にまとめたくなるかなー。
884デフォルトの名無しさん:2011/06/29(水) 10:42:21.25
>>882-883
サンクス

Listener=Controllerじゃなくて
Viewと明確に分離できるListenerがControllerって考え方かあ

調べたらSwingってViewとControllerをUIオブジェクトって形で統一しちゃってるのね。
885デフォルトの名無しさん:2011/06/29(水) 10:49:12.66
そんなあことはない
886デフォルトの名無しさん:2011/06/29(水) 11:19:51.22
俺は処理をViewと纏めたく無い派。
ModelとViewとの仲介だけを行うControllerクラスを作る
Viewのコンポーネントをゲッターで公開しないといけないが、コードがすっきりする
887デフォルトの名無しさん:2011/06/29(水) 14:22:08.06
あんまり単純なGUIセットでMVCモデルにこだわるのはよくないと思うけどな
ButtonModel とか、TableModel とか、Swing の設計ミスだと思うよ

*Model 名前ついたクラスぜんぶ明らかに要らない

こういう GUI の基本的なヴィジットに MVC モデル適用するのは間違い
TableModel は CellDataProvider みたいな名前にして、単純に表の表示に
便利なクラスですよ みたいな感じにすればよかった
888デフォルトの名無しさん:2011/06/29(水) 14:32:37.33
そうですね。
ではボク達ゆとり世代は次のjavafxに期待しましょうか。
889デフォルトの名無しさん:2011/06/29(水) 15:28:06.47
おれはゆとりじゃないがJavafxに期待したい

秋まで待とう
890デフォルトの名無しさん:2011/06/29(水) 21:15:10.27
単純な表の表示ってテーブルにはボタンとか付けるなって意味ですかー?
891デフォルトの名無しさん:2011/06/29(水) 21:18:41.57
> こういう GUI の基本的なヴィジットに MVC モデル適用するのは間違い

Widget
892デフォルトの名無しさん:2011/06/29(水) 21:25:27.50
Swingのリスナ記述もクロージャーの恩恵にあずかろう、
とかいう動きはまだ出てこないの?JDK7では見送られるんだろうけど
893デフォルトの名無しさん:2011/06/30(木) 23:15:26.22
遅いと聞いたが30FPSぐらいの2D処理なら大抵余裕だな
894デフォルトの名無しさん:2011/06/30(木) 23:16:52.11
初動が遅くていらっとくる
895デフォルトの名無しさん:2011/07/01(金) 00:45:58.74
ウィドゲットw
896デフォルトの名無しさん:2011/07/02(土) 23:49:28.00
要求スペック高杉で遊べる香具師少なかったりしてなw
897デフォルトの名無しさん:2011/07/21(木) 14:39:22.97
>>893
3Dも別に遅くないぞ?
898デフォルトの名無しさん:2011/07/23(土) 05:50:21.62
Androidのアダプタか。
899デフォルトの名無しさん:2011/07/23(土) 05:51:21.38
>>887
安価忘れた
900デフォルトの名無しさん:2011/07/28(木) 21:38:26.92
>>894
初動が遅くないとせっかくつくったスプラッシュを出す理由がなくなるじゃないか
901デフォルトの名無しさん:2011/07/28(木) 21:39:10.67
人それを本末転倒という
902デフォルトの名無しさん:2011/07/28(木) 21:44:20.61
おいこんな過疎スレで即レスされると自演野郎に認定されるじゃないか
903ぬるぽ:2011/07/28(木) 21:45:14.03
自演乙
904デフォルトの名無しさん:2011/07/28(木) 22:08:09.99
確かスプラッシュって、java.lang.Objectのロードよりも先に表示されるんだよね。
スプラッシュ出したから起動が遅くなる心配はあまりしなくてよいのでわ
905デフォルトの名無しさん:2011/07/29(金) 21:11:01.21
Javaも.Netの事前最適化バイトコードコンパイルができたらいいんだが、
おそらく只じゃださんのだろうなぁ
906デフォルトの名無しさん:2011/07/30(土) 01:55:11.51
鯖向けや組み込み向けのjavaならAOTあるしAOTしたクラスをプリロードするVMもある。
907デフォルトの名無しさん:2011/08/13(土) 09:01:15.26
JTABLEで一度描写したあとに時間の経過で行の背景色変える事ってできますか?
908デフォルトの名無しさん:2011/08/13(土) 10:50:14.05
>>907
DefaultTableCellRenderer を継承したやつを実装して、
table.setDefaultRenderer(Object.class, render)

色変えたくなったら repaint() でもたぶんいいし、
DefaultTableModel の fireTableDataChanged やら fireTableCellUpdated やらを
実行すればよい
909デフォルトの名無しさん:2011/08/13(土) 13:38:43.57
失敗作
910デフォルトの名無しさん:2011/08/13(土) 22:56:51.91
>>908
サンクス
911デフォルトの名無しさん:2011/08/14(日) 21:24:52.40
早くJavaFX2.0でねえかな・・
912デフォルトの名無しさん:2011/08/14(日) 22:19:40.01
>>911
Swingと比べて利点は?
913デフォルトの名無しさん:2011/08/15(月) 10:37:45.46
>>911
UIが綺麗。遅いけどね・・5倍くらい。
914デフォルトの名無しさん:2011/08/15(月) 12:23:48.54
低速GUIよりさらに遅いとか、スレ立てる時どうすればいいんだよ
915デフォルトの名無しさん:2011/08/15(月) 12:29:26.88
綺麗なのは良いことだと思うけど、遅いんじゃイライラするだろ
916デフォルトの名無しさん:2011/08/15(月) 12:37:14.88
で、結局今回のJavaFXのセールスポイントは何なの?
WindowsオンリーならわざわざJavaFXなんて使うことなんて滅多にないでしょ。
917デフォルトの名無しさん:2011/08/15(月) 14:31:47.82
FXよりもそろそろNimbusの次の新作ルックアンドフィールを・・・
918デフォルトの名無しさん:2011/08/15(月) 15:14:41.09
次のスレは

Java低速GUI Swing & JavaFX

かね
919デフォルトの名無しさん:2011/08/15(月) 15:58:57.06
920デフォルトの名無しさん:2011/08/15(月) 23:22:29.85
Swingも今じゃ別に低速っていうほど低速っていうわけじゃないし
次はJava GUIだけにしてやっていいんじゃね
921デフォルトの名無しさん:2011/08/16(火) 10:12:22.85
次のスレは

JavaGUI Swing & JavaFX

だね
922デフォルトの名無しさん:2011/08/16(火) 15:56:33.61
>>921
JavaFXは低速なんだよ(´ω`)
923デフォルトの名無しさん:2011/08/17(水) 20:02:27.16
ちょっと待て
SwingWorkerでプログレスバーを表示させただけで明らかに処理時間が遅くなるクソなのに
何の根拠があって低速を取ろうというんだ
924デフォルトの名無しさん:2011/08/17(水) 21:06:19.84
いや
もうみんなマイクロソフトの方に行ってるからジャバでグーイしようなんて奴は一人もいない
925デフォルトの名無しさん:2011/08/18(木) 01:31:37.39
>>924

俺はJavaでGUIやっているぞ
926デフォルトの名無しさん:2011/08/18(木) 13:19:45.29
何気に俺もやってるよノシ
927デフォルトの名無しさん:2011/08/18(木) 19:02:47.74
javaでGUIからC#でGUIに変えて、戻れなくなりましたが何か
言語つーか、開発環境の便利さのせいだけど
928デフォルトの名無しさん:2011/08/18(木) 19:51:39.39
頭の悪さもあるだろうね
929デフォルトの名無しさん:2011/08/18(木) 20:55:35.00
訳:他人の意見が俺と違うのはそいつが頭が悪いからだ。
930デフォルトの名無しさん:2011/08/18(木) 21:10:44.27
昔はウインドウズでデータベースをグーイすることがパショコンの一つの目的だったのに、ブラウザとフラッシュが普及したせいでいつのまにかウェブることこそがグーイだと思っちゃってる平成生まれが多くなったね
931デフォルトの名無しさん:2011/08/19(金) 13:38:10.71
ぶっちゃけ、サーブレットでアプリケーションサーバ建てて、
ユーザのセッションとかでメモリ不足食うより、
SwingでUI組んでユーザ側にデータ蓄えさせといて、
一気にDBにデータぶち込んだ方がパフォーマンスいいだろ?
932デフォルトの名無しさん:2011/08/19(金) 13:40:44.94
>>931
天才現る
933デフォルトの名無しさん:2011/08/19(金) 15:03:21.53
>>929
それが普通
934デフォルトの名無しさん:2011/08/19(金) 22:55:24.84
>>931
今時クラサバ構成かよ(w
935デフォルトの名無しさん:2011/08/20(土) 03:44:45.76
>>934
それ以外ないだろ。アホじゃないの?
936デフォルトの名無しさん:2011/08/20(土) 04:42:21.88
モバイルはともかく、普通のPCはスペックアップ&マニア向け&業務特化になっていく可能性もあるから
将来も含めれば蔵側の負担を大きくしていく方向性もバカにしたもんじゃないけどな。
937デフォルトの名無しさん:2011/08/20(土) 04:50:44.11
>>935
馬鹿だなー。今時クラサバ構成なんて。
DBコネクションが膨大になるし、APの入れ替え面倒だし…
10年以上前に捨てられたのは伊達じゃない。
さらに近年はセキュリティ絡みでPCをシンクラにする方向だから
尚更、間にAP鯖が入る。
938デフォルトの名無しさん:2011/08/20(土) 18:04:04.66
APってなに?
939デフォルトの名無しさん:2011/08/20(土) 21:16:20.04
^^;
940デフォルトの名無しさん:2011/08/20(土) 21:28:58.47
>>938
CS構成でも、Webアプリ構成でもDB接続数はかわらんだろ・・

>>938
アプリケーション(AP)サーバー(鯖)のこと
DBサーバーに入れる前に処理するアプリを積んでるやつ。要するに、サーブレットやらJSP
やらのプログラム(アプリケーション)が動いてるのをAPサーバーという。
941デフォルトの名無しさん:2011/08/20(土) 23:23:23.55
>>937 の問題を解決するってことで一時期リッチクライアントが
流行りかけたけどすっかり消えちまったね。

コンシューマむけではAjaxとかでいいと思うけど、業務システム系では
もっと流行ってほしかったな
942デフォルトの名無しさん:2011/08/22(月) 13:56:27.87
>>931
大天才現る
943デフォルトの名無しさん:2011/08/25(木) 05:25:28.36
>>829
そうなのか…一時期モバイルMacで開発するの流行ってたけど
あれにはJavaEEプログラマは含まれてなかったのか。
944デフォルトの名無しさん:2011/08/25(木) 19:28:46.87
OpenJDKはマクで使えないの?
945デフォルトの名無しさん:2011/08/26(金) 19:15:08.80
おい!会社でAPサーバーって何?ってクイズだしたら
「一人がアパッチでしょ」って答えやがったぞ。
946デフォルトの名無しさん:2011/08/26(金) 21:16:36.32
あとはミラ・ローズとスンスンか
947デフォルトの名無しさん:2011/08/28(日) 23:18:05.58
正直NCSA HTTPdが止まったときwwwは衰退するかと思ったがApacheグループが頑張った。
948デフォルトの名無しさん:2011/08/29(月) 00:18:06.62
かと思ったがApache乙wwwwwwwww
949デフォルトの名無しさん:2011/08/29(月) 00:21:39.09
48時間以上余裕で経ったけどパッチは出たの?
950デフォルトの名無しさん:2011/08/29(月) 00:38:11.65
>>931
天才現る
951デフォルトの名無しさん:2011/08/29(月) 07:28:36.51
>>931
イントラで完結するならそれもアリ。
DBMSとSwingアプリが直接コネクション張って通信するのは避けた方が良いけれど
それくらいならAS立てるまでもない。
952デフォルトの名無しさん:2011/08/29(月) 17:48:02.21
Swingでウィンドウ枠にコントロール置けるようにならんかなぁ。
953デフォルトの名無しさん:2011/08/29(月) 18:06:35.58
修飾抜きWindowでどうにかするしかないんじゃね?
954デフォルトの名無しさん:2011/08/30(火) 05:11:55.09
そうするとウィンドウ境界の描画・移動リサイズ・最大化最小化閉じるボタンも自前か。
javaでウィンドウマネージャもどき作らなきゃいけないとは。ついでに非クライアント領域を半透明にしてリッチと言い張るか。
SwingXがほしいな・・・SwingX RendererとPainters APIを標準に組み込んでくれ。
955デフォルトの名無しさん:2011/08/30(火) 08:45:40.81
そして出来上がる、浮いた見た目の使いにくいウインドウ枠
956デフォルトの名無しさん:2011/08/30(火) 23:00:34.96
javax ← ジャバエックスっていうの?俺は、ジャバックスって呼んでた。
957デフォルトの名無しさん:2011/08/31(水) 00:12:53.31
ジャバ糞が正解
958デフォルトの名無しさん:2011/09/05(月) 01:37:23.06
>>913
さすがに5倍は言い過ぎだろ。
…だよね?
959デフォルトの名無しさん:2011/09/05(月) 01:41:25.98
>>945
ApacheもAPサーバ出してるぞ。
960デフォルトの名無しさん:2011/09/05(月) 14:43:00.41
prism無効になってるんだろ。無効の場合はJava2Dだから単に描画量の違い。
961デフォルトの名無しさん:2011/09/05(月) 20:40:55.97
http://weblogs.java.net/blog/opinali/archive/2010/05/03/first-long-look-javafx-13-and-prism
古い情報ですが、これを見るとSwingより速そうですね。
962デフォルトの名無しさん:2011/09/05(月) 22:14:34.47
1.xはもう死んでるから
963877:2011/09/07(水) 13:26:06.57
どっかで最近読んだけど、Swingは当初マルチスレッド化を目指してたんですね。
それが駄目になったから>>877みたいにシングルスレッドが強調されてたわけか。
964デフォルトの名無しさん:2011/09/07(水) 22:40:08.55
>>923
そりゃまあ描画処理が加わる分、全く同じ速度でってわけには行かないだろうけど、
明らか、というほど体感できたことはないなあ。
スレッド違うし。
965デフォルトの名無しさん:2011/09/08(木) 11:45:55.87
んで、そろそろ次スレたてる時期だけど、
スレタイどうすんのよ?
966デフォルトの名無しさん:2011/09/08(木) 13:06:38.37
今のままでいいよー
967デフォルトの名無しさん:2011/09/08(木) 15:18:08.26
Java低能GUI Swing 10
968デフォルトの名無しさん:2011/09/09(金) 05:22:34.66
すみません質問です。
JListにフォーカスがあるときに、
例えばiキーを押すとiで始まる行に移動しますが、
これを禁止するにはどうすればいいでしょうか。

ググったのですが出てきませんでした。
よろしくお願いします。
969デフォルトの名無しさん:2011/09/09(金) 18:22:38.60
>>968
過去ログに似たようなの有った。
http://gline.zapto.org/log/read.php/tech/1095398949/404-414
970デフォルトの名無しさん:2011/09/12(月) 00:01:07.69
971968:2011/09/14(水) 10:21:44.23
>>969
過去ログまで参照していただいて、大変恐縮です。
非常に参考になりました。
どうもありがとうございました。
本当にありがとうございます。
お礼が遅れてすみません。
972デフォルトの名無しさん:2011/09/17(土) 17:32:40.23
eclipseのGUIエディタでオススメプラグインはなんですか?
973デフォルトの名無しさん:2011/09/17(土) 18:16:55.39
Windows Builderが標準でついておろーが
974デフォルトの名無しさん:2011/09/17(土) 18:17:16.80
あ、Window Builderか。
975デフォルトの名無しさん:2011/09/17(土) 18:21:26.20
>>973
標…準…?
976デフォルトの名無しさん:2011/09/17(土) 19:05:26.74
>>975
3.7使ってんならJFrameを拡張した.javaファイルを右クリックしてみ
977デフォルトの名無しさん:2011/09/17(土) 19:33:25.29
自分が使ってる環境を標準って言うのをやめて下さい
978デフォルトの名無しさん:2011/09/17(土) 19:40:45.39
>>977
君以外は大抵そうだと思うけど…
979デフォルトの名無しさん:2011/09/20(火) 09:20:33.18
”大抵”ね。www
980デフォルトの名無しさん:2011/09/20(火) 14:13:41.83
Windows Builderはいいね。Netbeansから乗り換えた
981デフォルトの名無しさん:2011/09/20(火) 18:30:04.83
既存の.java読んでくれるのはNetBeansに対する大きなアドバンテージだけど、
自動生成されるコードはNetBeansと比べるとちょっと…なのが残念。
NetBeansは自動生成コードは自分で触ることが無い(のが前提)だけど、
WindowBuilderの方は生成後のコードも触れる分余計に気になるんだよね…

>>975
リリースされてからもう3ヶ月経ってますがな。
982デフォルトの名無しさん:2011/09/20(火) 21:20:36.22
次スレたのむ
983デフォルトの名無しさん:2011/09/20(火) 23:07:54.84
(人`∀´)タノム
984デフォルトの名無しさん:2011/09/20(火) 23:23:56.51
985デフォルトの名無しさん:2011/09/20(火) 23:29:32.60
>>984
おつ!
986デフォルトの名無しさん:2011/09/21(水) 00:48:39.33
         _,,,,,ィ=ー-、_      /
       /. : : : : : : : : : : .ヽ     /  ィ
      /. : /: : : : : : : : : : : : .\  /  ┼
      /. : /: : : : ハ: : :}斗、ヽ: : .|    ノ
      |. : /_: 斗〒\八」 ∨リリ     _,_
      乂レl;W弋ノ      };l_>    | | ``
    ∠___l;人  , ─ァ  ノ'ノ
      |: :从ハ`┼一ィ刋:::\     r┴,
      |: : : : : : :};Y/ハ{;;;;;;;;ノ      /
      ヽ-‐ァ‐ァ';|l/\∧イ    \  /
        /\/;;|l' ̄ハ }      \
        /  |;;メ二ニ| |
       ャ、__/l;lゝ   ト‐|
      / `/|_,_|;|,_,_,_,_,_ト′
     /  / |==|;|=====|
   ∠、,,ィ〜' └r幵─‐r七
         {Ξ}  匕}
987デフォルトの名無しさん:2011/09/21(水) 04:01:25.32
うめときます
988デフォルトの名無しさん:2011/09/21(水) 05:04:47.72
ume
989デフォルトの名無しさん:2011/09/21(水) 06:04:26.45
>>918のこと? Java低速GUI Swing & JavaFX
990デフォルトの名無しさん:2011/09/21(水) 06:05:48.98
>>921 名前:デフォルトの名無しさん 投稿日:2011/08/16(火) 10:12:22.85
次のスレは

JavaGUI Swing & JavaFX

だね


>>922 名前:デフォルトの名無しさん 投稿日:2011/08/16(火) 15:56:33.61
>>921
JavaFXは低速なんだよ(´ω`)
991デフォルトの名無しさん:2011/09/21(水) 09:48:34.87
Swingですら認知されてないのにFXとかどうでもいいよ
992デフォルトの名無しさん:2011/09/21(水) 13:34:59.00
>>991
別に認知度でスレタイ決める訳じゃないから。
993デフォルトの名無しさん:2011/09/21(水) 14:05:00.49
そんなにFXが好きなら
自分で新しくスレ立てた方が
いいんじゃないか?

つーかこんな過疎スレで
これ以上荒らすのは勘弁な
994デフォルトの名無しさん:2011/09/21(水) 17:19:26.10
次↓
http://hibari.2ch.net/test/read.cgi/tech/1316592884/l50
AWTもOKだったから、JavaFXも混ぜておいたよ。
過疎スレだし、スレの活発化のためにも、JavaGUI全般ということで
一応建てておきました。
995デフォルトの名無しさん:2011/09/21(水) 17:21:21.32
>>991のレベルに合わせるとこの板の大半のスレは不要になるなw
996994:2011/09/21(水) 18:43:03.94
すまん。。よく見ずに建てちゃった。。このまま放置してください。(>>994のスレは)
997デフォルトの名無しさん:2011/09/22(木) 00:17:12.88
>>984
乙そして梅
998デフォルトの名無しさん:2011/09/22(木) 17:22:48.23
>>994
馬鹿すぎてワロスwww
999デフォルトの名無しさん:2011/09/22(木) 17:23:05.55
u
1000デフォルトの名無しさん:2011/09/22(木) 17:23:22.13
mmm
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。