[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2chのread.cgiへ]
Update time : 08/21 19:07 / Filesize : 252 KB / Number-of Response : 1002
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Java標準低速GUI 6 AWT/Swing



1 名前:デフォルトの名無しさん [2007/09/26(水) 20:51:18 ]
ハードウェアの高スペック化、描画アルゴリズムの変更、JavaVMの高速化に伴い、パフォーマンスの問題は改善されています。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 5 (前スレ)
pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
pc5.2ch.net/test/read.cgi/tech/1062271447/l50

151 名前:デフォルトの名無しさん [2007/10/19(金) 01:50:12 ]
>>149
気分とかカッコいいとかそういった主観に基づい行うもんじゃないだろ。
便利なのか必要なのかどうかで違ってくる。
それも言語仕様でサポートされてるから安心して使えるし。

152 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 03:48:14 ]
日本語ってなかなかにグルー言語よね

153 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 07:37:14 ]
>>151
同意!

154 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 07:46:07 ]
>>148
文意を理解してよw
ギリシア語やタイ語の文字のグリフで変数名が書かれているかもしれないってこと。

155 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 08:45:12 ]
日本語とハングルを同時表示するには両方に対応しているフォントが必要じゃね?

156 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 09:44:44 ]
SDCだったかでハングルでコメント入ったソースコードは見たことある。
日本語環境のIDE上で表示できるかどうかはしらんけど。

157 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 12:18:44 ]
>>140
エキサイト翻訳ででてきた意味不明な英語がはいるよりは漢字のほうがましだと思う
そのアプリは日本国外での開発で、海外で売る気があるのかい?と

数年後メンテをやらなくてはならない場合に
ドキュメントが残ってない場合把握しやすいというメリットもある

DBで日本語の項目名いれてNetBeansなりでJPAを生成でもすれば
日本語名のプロパティが見事に生成されるわけだが、わりとみやすいし
いざとなればリファクタリング一発だから問題はねぇな

158 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 12:19:33 ]
>>150
とりあえず軽量コンポーネントでpaintそのものをオーバーライドするのやめれ

159 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 14:17:33 ]
>>157
NetBeansだとGUIまわりのリファクタリングはひっかかるケースが多いけど。



160 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 14:44:40 ]
Javaのバイトコードって変数名なんかも保存してるんじゃなかったっけ?
変数名に日本語使えばバイトコードにも残るの?

161 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 15:14:30 ]
UFT8に変換されて残るからソースのエンコーディングがなんであれ問題なし。

162 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:18:19 ]
ローカル変数も残るんだっけか?

163 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:24:36 ]
テストケースのメソッドは日本語がたいへんよろしい。

164 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 16:26:36 ]
デバッグ情報として残すことも残さないこともできる

165 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 21:02:52 ]
ローカル変数やGenericsの型指定は残らないと思った。
C#だとGenerics型は残るらしいね。
Javaのはキャストしてるだけってのが理由だろうけど。

166 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 21:22:05 ]
ローカル変数はフレームごとに領域(とlongとかあるので型のサイズ)だけ
確保されてたはず。


167 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 21:42:43 ]
どっちにせよ日本語変数は問題なさそうだな

168 名前:デフォルトの名無しさん mailto:sage [2007/10/19(金) 22:25:36 ]
>>159
NetBeansのGUIコンポーネントの話はしてないよ
リファクタリングはJPAのほう
GUIのコンポーネントのリファクタリング問題は4.1あたりで直すとか言ってたのだが
絶賛放置中

>>167
なさそうではなくて問題ない
問題が出るとしたらマッピングがおかしい場合だけ

169 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 00:50:24 ]
>>159
Netbeansは、リファクタリング無しでも日本語が使えないGUIエディタまわりがあるな。
Javaで作って、何でそうなるのか問い詰めてやりたい。



170 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 04:02:05 ]
そりゃ日本語使ってないやつが作ってんだからそうなるだろ。
使わないものがどうなっていようとそれは仕様です。

171 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 04:45:28 ]
aho

172 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 06:30:17 ]
>>170
確かに国際化は意識して対応しないとまともに動かないけど
それってsunは他言語のことなんて知りません、手抜きですって告白してるようなものなんだが

173 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 06:52:51 ]
Sunは、NetBeansを支援しているだけ。建前上は。

174 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 21:09:54 ]
国際化で一番ひっかかるとこってどこだろうね。
やっぱフォントまわりかな。
文字列はダブルバイトでも1文字でカウントしてくれるし、
ファイルにはUnicodeで書き出するようにすればてっとり早い。

でもアプリの性質にもよるか。
エディタのように文字を扱うのは問題おきやすいかもね。

175 名前:デフォルトの名無しさん mailto:sage [2007/10/20(土) 23:01:36 ]
最近は見なくなってきたけど昔は Reader,Writer を使わずに
InputStream, OutputStreamで処理してる糞アプリや糞ライブラリ
をよく見かけたな…

176 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:04:32 ]
NetBeansの日本語問題は直すつもりがないらしーぜ

177 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 00:59:58 ]
使ってないから別にいいよ

178 名前:デフォルトの名無しさん [2007/10/21(日) 03:01:53 ]
どういうところが糞な

179 名前:デフォルトの名無しさん mailto:age [2007/10/21(日) 03:46:16 ]
videointroplayer.web.fc2.com/v.htm?ii9YN1kO-TK36%+8mdKsm-z3pn32%+WhqyiIrhz0F110%+iwCjWdz0Gid150%+Kjtps4byn7a119%+@1@_%E4%BC%9A%E9%95%B7%E7%89%A9%E8%AA%9E



180 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 06:58:55 ]
>>175
よく見かけるほどJavaアプリがあったのか

181 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 08:31:45 ]
確に、GUI関係は何とかした方がよい。
Appletもいらない。


182 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 10:23:38 ]
↑Appletはとても役に立っているから株やってみろ。まったく見識がないところは見逃してやるがなw

183 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:00:16 ]
Appletはこれからだよ〜。

184 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:07:28 ]
AppletよりJava Web Startの方がいいように思うんだが、なんか使ってるとこないねぇ……。

185 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 13:21:20 ]
比べるものじゃなくて、どっちも必要だと思うよ〜。

186 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:02:14 ]
Web Startってどういう場合に使うものなの?
アプリ配布じゃ駄目なのか?

187 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:08:52 ]
>>186
バージョンが上がってもユーザーは自分の意志でダウンロードしなくていい。

望めばデスクトップのアイコンやスタートメニューのエントリも作ってくれる(後からでも)。
あたりまえだがアンインストールにも対応してる。


188 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 14:47:22 ]
つまりバグを大量に仕込んだまま出荷しても、ほとんどのエンドユーザに気づかれずにアップデート可能ということか。

189 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:02:20 ]
組み込み型DBつかってたりプラグインのあるアプリには使えないんじゃないの。



190 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:07:53 ]
>>188
エロゲメーカーにもってこいの機能だな。

191 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 15:30:05 ]
>>189
普通にローカルファイルだって使えるし、組み込みDBやプラグインだっていける。
Eclipse RCPをJava Web Startで配布することも可能だよ。
ttp://help.eclipse.org/help31/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/java_web_start.htm

192 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:59:03 ]
Java Web Startか
思い出せるのはV2CとTopCoderぐらい
他にももっと見てきたはずなんだが

193 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 16:59:35 ]
Looking Glassもそうだったか?

194 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 17:49:40 ]
>>184
WebStartは配布技術だからWebStartアプレットというのもある
まぁ、WebStartアプリケーションのほうがはるかに使いやすいけど

今のJavaだとWebStartはデスクトップなどへのショートカット、
アプリケーションの追加と削除でアンインストールが出来るなど大幅によくなってるが
スタンドアロンアプリでもショートカットやアンインストールやってほしいのにねぇ

リッチクライアントは不特定多数を相手にしたものではなくて特定のユーザー向けだから
業務アプリとかやってないとあまり見る機会はないかもしれない

195 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:02:05 ]
WebStart普通に便利だしJavaアプリケーションの配布では結構使われてはいるんだけど
そもそもJavaアプリケーションで有名なものが少ないからWebStartの知名度も…

196 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:27:12 ]
今まで俺が使ったJavaのアプリケーションっていったら、
JDiskReportとJudeぐらいかなあ。

197 名前:デフォルトの名無しさん mailto:sage [2007/10/21(日) 18:43:27 ]
NetBeansとかEclipseとかIDEAとかJDevはなしか

198 名前:デフォルトの名無しさん [2007/10/22(月) 00:17:16 ]
V2Cを忘れて何でここを見てるんだか。

Appletは、JavaQuickStarter使えば劇速になるので
これからまだ延びるかもしれないと思った。
JQSについては、
ttp://download.java.net/jdk6/binaries/
ttps://jdk6.dev.java.net/6uNfaq.html
参照。
要は、prefetchです。

199 名前:デフォルトの名無しさん mailto:sage [2007/10/22(月) 01:15:18 ]
とりあえずJavaSE6は起動速度、動作速度に関して
進歩のほとんどなかった5.0から大幅によくなってるので
だいぶ未来は明るいと信じたい



200 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 18:27:01 ]
以下、微妙にスレ違い&手前味噌だけど…晒してみる。

コード署名が必要なJavaWebStartアプリの開発をするときには、
maven2のwebstart-jnlp-pluginを使うと、幸せになれる。
sqs.cmr.sfc.keio.ac.jp/tdiary/20070709.html

コード署名証明書の値段が高すぎで買えない!という場合には、
sqs.cmr.sfc.keio.ac.jp/tdiary/20051003.html
こちらを。

以下、まだ作りかけ・証明書期限切れですが:

sqs.cmr.sfc.keio.ac.jp/app/SourceEditor.jnlp
sqs.cmr.sfc.keio.ac.jp/app/MarkReader.jnlp

前者のほうは、クライアントローカルかつ環境非依存に、
フォント埋め込みPDFファイルを作れるようにするために、
JavaWebStartでIPAフォントを配布して利用している。

後者のほうは、LAN内のマシン複数台を使って分散並列処理が
できるように、JavaWebStartで起動した分散プロセス群が
Pure P2P的に通信して、グリッドを作れるようにしてある。


201 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 19:46:02 ]
WebStartの場合、おもにB2Bや社内アプリのように相手が特定できる用途がほとんどで
あらかじめ信頼できるように登録しておくという手が普通に使われるんで
あんま問題になってない感じ

202 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 21:06:36 ]
それは AWT/Swing ネタなのか?
っとか思ったけどム板のJava関連のスレで適切なのってないのな…

203 名前:200 mailto:sage [2007/10/27(土) 22:29:24 ]
…それじゃ、「Swingでがんばりました」的ネタを投下します。

たとえば、Preferencesを設定するGUIを作るときには、
左画面にJTree、右画面にその選択範囲のエディタを配置する形で、
2ペイン構成のGUIとする場合が多いと思います。
www.sociomedia.co.jp/160

でも、この手のGUIで作業をすると、左画面と右画面をマウスで
行ったり来たりするのが、ちょっとわずらわしい。
また、左画面と右画面の関係が直感的に分かりにくい。

そこで、左のJTree画面上で任意の範囲をドラッグして選択できるようにし、
その選択部分のフォーカスが右エディタ画面の該当個所に投影される
ような仕組みを作ってみました。

sqs-xml.sourceforge.jp/sqs-core/doc/screenshot/SourceEditor.png
こんな感じ。
高機能GUIコンポーネントとしての再利用性の追求は、
まだ全然やっていないけれど、需要あるでしょうか?
こういう部分を含む全体を、Apache Licenseで開発しています。


204 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 23:10:27 ]
Preferencesを設定するGUIって普通作らない部類だからなぁ
多いとは思えない

アプリでいくらでも上書きできるから、ちょっとした保存くらいにしか使い道がないと思うんだけど
そういうアプリとなると通常Windowsがメイン環境になるし、設定箇所なんてWindowの位置保存程度だろう
ならばレジストリ直接開いたほうが速い

意味のある値ならばxmlなり別ファイルにするはず
ただし、選んだ部分を一気に出してほしいというインターフェースはわりとある
その場合、右側のペインにもちゃんとスクロールバーつけといてね
特に難しいことではないので高機能ってのがわからんのだが、ここが便利!という売り文句がないと難しいぞ

205 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 23:13:18 ]
「需要あるでしょうか?」ってのが良く分からんのだけど、
そういうのって自分が必要だと思うから作るんじゃないの?

206 名前:デフォルトの名無しさん mailto:sage [2007/10/27(土) 23:25:24 ]
>>204
200じゃないけど
>アプリでいくらでも上書きできるから、ちょっとした保存くらいにしか使い道がない
ってどういう意味?
JavaアプリなのにわざわざWindows依存にしてレジストリが出てくるのも
よくわからないんだけどどういう状況を想定してるのかしら…?

207 名前:200 mailto:sage [2007/10/28(日) 00:22:19 ]
> 意味のある値ならばxmlなり別ファイルにするはず

っていうか、XMLエディタを作っているのですよ。

> そういうのって自分が必要だと思うから作るんじゃないの?

説明が難しいのだけれど、

階層的な構造をまたいで、
離れた枝と枝を見比べながら編集をするときに、
ちまちまと必要のない枝を閉じて、必要な枝だけを開いて、
画面内に収まるようにしてから作業をするのは、かったるい。

また、階層的な構造をまたいで、
離れた枝から枝へドラッグするときに、
マウスドラッグで画面をオートスクロールさせて
画面の外にある別の枝を探しながら作業をするというのは、
スクロール量の制御がやりにくいし、
うっかり途中でドラッグを放してしまいそうで、危なっかしくてイヤ。

こんなふうに感じるのって、俺だけなのかな?と。


208 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 00:32:29 ]
>>206
Preferencesの実装としてWindowsであればレジストリを使っている

>>207
>っていうか、XMLエディタを作っているのですよ。
XMLエディタです、とあなたは一言も言ってないのにそんなの他人がわかるかい

209 名前:200 mailto:sage [2007/10/28(日) 00:49:03 ]
先に、

> たとえば、Preferencesを設定するGUIを作るときには、
> でも、この手のGUIで作業をすると、

と、断っているように、Preferencesを設定することが目的ではありません。
Preferencesについて言及したのは、「この手のGUI」について
問題提起するための、「たとえば」の話です。

また、

> sqs.cmr.sfc.keio.ac.jp/app/SourceEditor.jnlp

として、ここで提案しているGUIの動作内容が、
JavaWebStartで実際に動くようなURLを示しており、
これを起動してみれば、Preferenceエディタではなく、
XMLエディタであることは、すぐに分かるのではないかと思います。

で、

> Preferencesの実装としてWindowsであればレジストリを使っている

っていうのは、regeditのこと? あれ、使いやすいですか?




210 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:10:19 ]
D&Dが難しい場合(スクロールが必要とか)は、コピペを使うなぁ。
コピペできるように作っておいてくれないと無理だけど。

> sqs.cmr.sfc.keio.ac.jp/app/SourceEditor.jnlp
今作ってるのはツリー表示のとこはD&Dもコピペもできないみたいね
その代わり、ポップアップメニューに便利そうなものがあるけど。

211 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:11:44 ]
なんとかく理解した。
アプリケーションに組込む設定機能を作るコンポーネントの話をしているのに
Preferencesを設定するツールの話をしていると勘違いしているのだな?
それでWindows環境ならPrefenrecesの実装がレジストリだから
レジストリエディタで直接弄ればいいんじゃね?って話がでてきたと…

212 名前:200 mailto:sage [2007/10/28(日) 01:26:32 ]
Preferencesといえば、Java Preferences APIの、
bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599
このバグに悩まされております…。

WindowsではPreferencesの保存先にレジストリを用いているので、
このバグは出ないのだけど。


213 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:35:21 ]
>>203のスクリーンショット一枚でXMLエディタだとわかる人はそうそういまい。

んでみてると汎用XMLエディタにはみえんね。
だとしたら設定項目用ということならツリー構造を見せる必要もないと思うんだけど。

214 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:38:02 ]
>>212
スレタイ嫁。
それにバグパレードに載ってるんだからバグだろうさ。
お前が悩んでいることをここに報告してどうするつもりなんだ?
それは困ったね、よしよし、と慰めてもらいたいのか?
スレタイに関係のない質問をしたいなら質問スレへ、
何かの課題をやってもらいたいなら宿題スレへいけ。

215 名前:200 mailto:sage [2007/10/28(日) 01:41:21 ]
>>210

やっぱりコピペだよね。

ところで、階層構造のノードをペースト先とするときには、
「そのノード自身(置き換え)」
「兄ノードとして挿入」
「弟ノードとして挿入」
「子供ノードとして挿入」といったように、
何通りかがあるのだけれど、Ctrl-Vで張り付けるとしたら、
どれをデフォルトにするのが感覚的に正しいのだろう?

ちなみにFreeMindでは、
「ノードのアイコンの微妙に上のほうを指しているときは兄として挿入」
「ノードのアイコンの微妙に下のほうを指しているときは弟として挿入」
「ノードのアイコンの右端のほうを指しているときは子供として挿入」
的なGUIを実現しているけれど、

JTreeでは、getClosestPathForLocationとかだと、
指定したx,yがどのノードに一番近いか、ということしかわからないので、
むずかしい。


216 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:41:41 ]
Preferencesって言葉を初めて知ったw

217 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 01:48:07 ]
>>215
感覚的には弟として挿入かな
CTRL+SHIFT+Vだったら子供として挿入とかもありかもしらん

218 名前:200 mailto:sage [2007/10/28(日) 02:33:52 ]
>>214
Preferences APIでの保存先の実装は、
Windowsではレジストリ、LinuxなどではXML形式のファイルとして保存される。
ここでの話題にもビミョーに関連すると思ったので、話のついでに書いてみた。
bug_idを示せば、ほかのひともvoteしてくれるかもしれないし。
でもまぁ、ここはGUIのスレなので、スレ違いですね。ごめん。


これから「汎用のもの」を目指して、
XMLエディタの開発を進めていこうと思っています。

個人的にはSwingというかJTreeというか特にTreeCellRendererの
あたりが好き:-)なので、階層構造を編集するためのGUIコンポーネントを、
ユーザ側・開発者側の両面から、もうちょっとだけ使いやすくする
工夫についても、取り組んでみるつもり。

コメントくれた人、ありがとう。名無しに戻ります。


219 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 13:08:22 ]
>>215,217
一瞬、VIPスレだっけと思ってしまった俺は病んでいる。

リッチなSwing部品、という点で言うとSwinglabで作ってたりするけど
画面ごとの仕組みを含んだライブラリって決定版がないね。
>>203の仕組みも、そんなに便利かなぁと思う。
左で選んだのが右にタブでどんどん、というのでもいいし
左で選ぶの面倒だから、eclipseなんかみたいに項目フィルタあった方が便利だし。
設定パネルなら、一度に見せる必然性ってあんまないのよねぇ・・・



220 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 15:02:26 ]
よくあるやりかたとしては、
ウィンドウをSplitPaneで分割したり、複数のウィンドウを開いたりして、
それぞれの画面で、同じ文書の、別の場所を表示できるようにする、
というものがある。

MVCできちんと作ってあって、
同じModelに対して複数のViewを表示できるのなら、わりと簡単に実現できる。

Eclipseとかでは、タブを画面内でドラッグすると、
左右ないし上下での好みのスタイルで画面分割できる。
また、タブを画面外までドラッグすると、
新しいウィンドウを開くことができる。
こうした機能は、操作性もわりといいと思う。




221 名前:デフォルトの名無しさん mailto:sage [2007/10/28(日) 15:04:56 ]
Swingでも、JTabbedPaneのタブへのドラッグ動作についての作り込みと、
JToolBarのfloatable機能を組み合わせれば、似たようなことができると
思うのだけど、面倒くさいよな


222 名前:_ [2007/11/01(木) 18:01:56 ]
//ラベル作成
Border wborder = new LineBorder(Color.white, 1);
JLabel Ac1 = new JLabel("");
Ac1.setBorder(wborder);
Ac1.setHorizontalAlignment(JLabel.CENTER);
Ac1.setBounds(400,100,80,30);
add(Ac1);
// ボタン作成
btnEnter =new Button("追加");
btnEnter.addActionListener(this);
add(btnEnter);
btnEnter.setBounds(150,250,80,80);
//ボタンイベント
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
Border wborder = new LineBorder(Color.black, 1);
Ac1.setBorder(wborder);
Ac1.setText("Push");
}
}

ボタンを押したら指定の場所にラベルが表示されるようにしたいのですが
この方法ではなぜか出来ないのですがどうしてでしょうか
どなたか教えてください

223 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 18:28:27 ]
>JLabel Ac1 = new JLabel("");

Ac1 がローカル変数だからじゃね
たぶん actionPerformed の中から見てる Ac1 と別物

224 名前:_ [2007/11/01(木) 18:39:11 ]
どうすればよいのでしょうか?

public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
JLabel Ac1 = new JLabel();
Ac1.setBounds(400,100,80,30);
Ac1.setText("Push");
}

このように書いてみたんですがまったく表示されません.

225 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 18:55:26 ]
>>224
add(Ac1);

226 名前:デフォルトの名無しさん [2007/11/01(木) 22:16:24 ]
>>225
addも書き加えましたが出来ませんでした。

本当に困ってます。
誰か助けてください。

227 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 22:17:03 ]
全ソースうpれ

228 名前:デフォルトの名無しさん [2007/11/01(木) 22:34:06 ]
これなんですがまったく出来ません。
public class Practice extends JFrame implements ActionListener{
Button btnEnter;
public static void main(String[] args){
Practice frame = new Practice();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(50, 50, 900, 700);
frame.setTitle("研究のGUI");
frame.setVisible(true);
}
Practice(){
JPanel p = new JPanel();
btnEnter = new Button("追加");
btnEnter.addActionListener(this);
add(btnEnter);
btnEnter.setBounds(250,120,80,80);
getContentPane().add(p, BorderLayout.CENTER);
appRun();
}
public void appRun(){
}
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
JLabel Ac1 = new JLabel();
Ac1.setBounds(400,100,80,30);
Ac1.setText("Push");
add(Ac1);
}
}
}

229 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:28:35 ]
なんつーかgetContentPaneつかっていたりつかわなかったりばらばらだな
コンストラクタで設定したり、mainの中だったりここも不統一だし

レイアウトマネージャもしらんっぽいね
そこから勉強したらどうかな



230 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:29:40 ]
add(Ac1);
のあとに、画面の再描画させたらええんちゃうかな?

コマンドは忘れた

231 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:30:39 ]
>>229
それや、add(Ac1);の前にgetContentPaneがいるんや

232 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:35:58 ]
たぶん、BorderLayout.CENTER の JPanel に全面覆い隠されてるんじゃないか
JPanel なくしてみ

getContentPane は最近は要らない

233 名前:デフォルトの名無しさん [2007/11/01(木) 23:47:16 ]
JPanelをなくすとなぜか画面が全てボタンになってしまいます

add(Ac1);の前にgetContentPaneを書いても変わりませんでした。

どなたかお手数ですがやってみてもらえないでしょうか?




234 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:51:02 ]
じゃあレイアウトマネージャをなくす。

setLayout(null);

235 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:51:29 ]
>>233
だからレイアウトマネージャが基本なんだから勉強してよ
コンテントペインはボーダーレイアウトがデフォで、
パネルはフローレイアウトがデフォってことでしょ?

推奨サイズとかも覚えてください

236 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:53:20 ]
>>234
何も考えずにそれをすると一番難しいんだけどね

JPanelに推奨サイズを指定してpack、
JPanelはnullレイアウトというのならまだわかるけど

setBoundsというのが真っ先に出てきたあたりで何を参考に作ったのかが気になる

237 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:54:50 ]
ButtonをJButtonに変えろよ
こんな形でAWTとSwingを混在させるなw

238 名前:デフォルトの名無しさん mailto:sage [2007/11/01(木) 23:56:57 ]
偉そうなわりに、ズバリの回答書く奴いないのがなんとも

239 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 00:04:29 ]
偉そうな>>238がズバリの回答を待つとしよう
重要なヒントや答えまででてるのにこれ以上何を言うのか楽しみだ



240 名前:デフォルトの名無しさん [2007/11/02(金) 00:19:49 ]
ボタンはJButtonにしたら普通の大きさになったんですが
肝心のラベルがボタンを押しても出てきません

ただそれがやりたいだけなのに何故なんでしょうか?
正直どなたか全文を書いていただけないでしょうか?


241 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:33:33 ]
ヒント200%だしてるのにそれを無視して全部おしえるなんてこの板ではあんまりありえん

答えだけがほしければ宿題スレへどうぞ

242 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:52:16 ]
>正直どなたか全文を書いていただけないでしょうか?

つ 練炭

243 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 01:59:48 ]
>>240
勘違いすんな。ここはくだすれでもないし初心者スレでもない。

244 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 03:04:48 ]
public class Practice extends JFrame {
 JPanel labelsPanel;
 public Practice (){
  JButton appendLabelButton = new JButton ("ラベルを追加");
  appendLabelButton.addActionListener (new ActionListener(){
   public void actionPerformed(ActionEvent event){appendLabel();}});
  JPanel buttonPanel = new JPanel();
  buttonPanel.setLayout(new FlowLayout());
  buttonPanel.add(appendLabelButton);
  labelsPanel = new JPanel();
  labelsPanel.setLayout(new FlowLayout());
  labelsPanel.setPreferredSize(new Dimension(400, 400));
  add(buttonPanel, BorderLayout.NORTH);
  add(labelsPanel, BorderLayout.CENTER);
 }
 void appendLabel(){
  JLabel helloLabel = new JLabel ("Hello");
  helloLabel.setBorder(BorderFactory.createLineBorder(Color.white, 1));
  helloLabel.setHorizontalAlignment(JLabel.CENTER);
  helloLabel.setPreferredSize(new Dimension(80,30));
  labelsPanel.add(helloLabel);
  labelsPanel.revalidate();
 }
 public static void main (String[]args){
  SwingUtilities.invokeLater(new Runnable(){
   public void run(){
    Practice frame = new Practice ();
    frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
    frame.pack();frame.setVisible(true);
   }
  });
 }}

245 名前:244 mailto:sage [2007/11/02(金) 03:06:18 ]
>>228
こんな感じでいいのか?
今度から宿題は宿題スレいってくれな?

246 名前:デフォルトの名無しさん [2007/11/02(金) 04:17:09 ]
>>24
超マジレスに笑ったw
でもこれがさらっと書けない職業プログラマが多いんだよな・・・

247 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:21:14 ]
自演乙

248 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:37:07 ]
口だけの奴が多い中 >>244 はまともだな

249 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 07:53:50 ]
というか研究のGUIってなんだw
何を研究したらあんなソースになるのか知りたいw



250 名前:デフォルトの名無しさん [2007/11/02(金) 10:19:13 ]
>>228
実行して出てきたGUIにワロタ。センターに足す動けばいい的例。

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame {
public Test() {
JButton button = new JButton("Add Label");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
add(new JLabel("Hello, world!"));
getContentPane().validate();
}
});
add(button, BorderLayout.SOUTH);
setSize(100, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test();
}
});
}
}


251 名前:デフォルトの名無しさん mailto:sage [2007/11/02(金) 11:34:19 ]
>>246
インナークラスとかAWTイベントディスパッチスレッドとかしらないで
GUI扱おうとしてぼろぼろになる例はよくみるね
特にスレッド周りがぼろぼろくさい

基本を勉強せずOJTという名の下に無理やり投入される場合そうなりやすい
デバッグ時には動いていてもたまに動かないとか厄介なバグいれこむのがうまい連中がね






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<252KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef