Java低速GUI Swing 5
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2006/10/18(水) 11:50:09パフォーマンスの問題は徐々にですが改善されつつあります。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
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
0002デフォルトの名無しさん
2006/10/18(水) 11:51:02クライアントサイドJavaどうよ?
http://pc3.2ch.net/tech/kako/1002/10021/1002160815.html
クライアントサイドJavaどうよ?:part2
http://pc2.2ch.net/tech/kako/1032/10326/1032665721.html
クライアントサイドJavaどうよ? part3
http://pc2.2ch.net/tech/kako/1045/10458/1045891783.html
Java 高速GUI SWT
http://pc5.2ch.net/tech/kako/1032/10324/1032448424.html
Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1068349883/
FrontPage - java
http://www.wikiroom.com/java/
0003デフォルトの名無しさん
2006/10/18(水) 11:51:38WisdomSoft - JAVA入門
http://wisdom.sakura.ne.jp/system/java/javax.html
developerWorks - マルチスレッド化Javaアプリケーションの作成
http://www-6.ibm.com/jp/developerworks/java/010427/j_j-thread.html
[en]
Creating a GUI with JFC/Swing
http://java.sun.com/docs/books/tutorial/uiswing/
Threads and Swing
http://www.math.cuhk.edu.hk/TechInfo/JavaTutorial-2/ui/swing/threads.html
The Last Word in Swing Threads
http://java.sun.com/products/jfc/tsc/articles/threads/threads3.html
Painting in AWT and Swing
http://java.sun.com/products/jfc/tsc/articles/painting/
0004デフォルトの名無しさん
2006/10/18(水) 11:52:38赤坂玲音著「Javaアプリケーション作成講座 - Swingプログラミング徹底攻略」
http://www.amazon.co.jp/exec/obidos/ASIN/4839913862/
大村忠文著「Java GUIプログラミング」Vol.1〜3
http://www.amazon.co.jp/exec/obidos/ASIN/4877830510/
http://www.amazon.co.jp/exec/obidos/ASIN/4877830529/
http://www.amazon.co.jp/exec/obidos/ASIN/4877830537/
サンソフトプレス「グラフィックJava2」AWT編、Swing編(上)(下)
http://www.amazon.co.jp/exec/obidos/ASIN/4756134513/
http://www.amazon.co.jp/exec/obidos/ASIN/475613582X/
http://www.amazon.co.jp/exec/obidos/ASIN/4756135838/
Java実践プログラムによるデザインパターン入門講座
- Swingプログラムで体得する23のパターン
http://www.amazon.co.jp/exec/obidos/ASIN/4894712563/
0005デフォルトの名無しさん
2006/10/18(水) 11:53:18http://java.sun.com/docs/books/tutorial/uiswing/
為政敦男氏が1998〜1999年にSwingExamplesを書き、
オリジナルサイト消滅後もミラーされ続けている。
5年以上前にSwingの素晴らしい使い方を示してくれた為政さんに感謝します。
http://www.senun.com/Left/Programming/Java_old/Examples_swing/JTableExamples1.html
http://www.physci.org/codes/tame/
0006デフォルトの名無しさん
2006/10/18(水) 11:53:53ユーザーを虜にするものは機能だけではありません。
見た目のCoolさでアピールしてはいかがでしょうか。
(雄の孔雀が美しい尾羽を持つように:-))
[ja]
IBM 進歩したSynth 最新のSwingルック・アンド・フィールを使うとカスタムUIが手軽に
http://www-6.ibm.com/jp/developerworks/java/050318/j_j-synth.html
[en]
Sun The Synth Look and Feel
http://www.javadesktop.org/articles/synth/index.html
0007デフォルトの名無しさん
2006/10/18(水) 12:14:56NetBeans
http://www.netbeans.org/index_ja.html
Eclipse+VisualEditorPlugin
http://www.eclipse.org/
http://www.eclipse.org/vep/
0008デフォルトの名無しさん
2006/10/18(水) 15:36:12Synthって情報少ないよなぁ・・・
0009デフォルトの名無しさん
2006/10/19(木) 18:49:020010デフォルトの名無しさん
2006/10/19(木) 18:59:410011デフォルトの名無しさん
2006/10/19(木) 20:08:29たとえば、JPanelを10個まとめて作りたいとき
for (int i = 1; i <= 10; i++){
String s[i] = ("jPanel_"+i);
JPanel s[i] = null;
}
↑みたいに、for文使って一気にJPanelを作りたいですけど、↑じゃうまくいかないので
他に方法があれば教えていただければと…
0012デフォルトの名無しさん
2006/10/19(木) 20:21:33sは2回宣言されています。
0013デフォルトの名無しさん
2006/10/19(木) 20:35:27s[i] ってのは変数名には使えないし、
配列なんだとすれば宣言と同時に配列アクセスしてるし……
>>11
JPanel[] panels = new JPanel[10];
for(int i = 0; i < panels.length; i++) panels[i] = new JPanel();
0014デフォルトの名無しさん
2006/10/20(金) 13:55:090015デフォルトの名無しさん
2006/10/20(金) 16:20:460016デフォルトの名無しさん
2006/10/20(金) 16:34:365.0からはマウスのボタンの数は取得できるがそれを使ってどうのこうのはできないはず
0017デフォルトの名無しさん
2006/10/20(金) 17:43:40やっぱ無理か…。
5ボタンマウスって、あんまり使われてないのかなあ。
0018デフォルトの名無しさん
2006/10/20(金) 17:50:42ショートカット以外の使われ方してるアプリってどれだけある?
0019デフォルトの名無しさん
2006/10/20(金) 18:02:270020デフォルトの名無しさん
2006/10/20(金) 19:06:46でも5ボタン必須のアプリなんて、ちょっと思い当たらない。
ホイールでスクロールみたいに、あれば便利って程度かな。
0021デフォルトの名無しさん
2006/10/20(金) 19:28:110022デフォルトの名無しさん
2006/10/20(金) 19:37:480023デフォルトの名無しさん
2006/10/20(金) 19:44:550024デフォルトの名無しさん
2006/10/20(金) 20:59:584以上のボタンを使ってるわけではないだろう
0025デフォルトの名無しさん
2006/10/20(金) 22:03:08ネトゲではよく使うお
0026デフォルトの名無しさん
2006/10/20(金) 22:38:17自動スクロールに対応してればちょくちょく使うよ。
あとFirefoxだとタブを簡単に閉じられるしね。
0027デフォルトの名無しさん
2006/10/20(金) 22:56:14考えて左クリックを使う
0028デフォルトの名無しさん
2006/10/20(金) 22:57:34いつも新しいタブで開いてるや
0029デフォルトの名無しさん
2006/10/20(金) 23:09:595ボタンも、そんなところでしょ。
0030デフォルトの名無しさん
2006/10/20(金) 23:33:460031デフォルトの名無しさん
2006/10/21(土) 00:12:530032デフォルトの名無しさん
2006/10/21(土) 00:16:50積集合OSであるJavaにはそういう限界があるよ。
タスクトレイやブラウザとかがJava6に出てきただけでも感慨深い。
0033デフォルトの名無しさん
2006/10/21(土) 00:42:22一部だけで動く実装でも1.4以降は投入されてるから理由にならん
0034デフォルトの名無しさん
2006/10/21(土) 00:44:21キーボードとパッド両対応作る手間がないし未対応OSであっても問題ないんじゃね?
0035デフォルトの名無しさん
2006/10/21(土) 05:42:060036デフォルトの名無しさん
2006/10/21(土) 23:38:555ボタンなんてケチくさいこと言わず、101個ボタンつけたらどうよ?
で、ボタン押すと文字が入力されるようにしておくの。
そしたらキーボード要らないじゃん。
0037デフォルトの名無しさん
2006/10/21(土) 23:46:22それ、キーボードじゃん!!!
あー、食いついちゃった。orz
0038デフォルトの名無しさん
2006/10/22(日) 12:46:450039デフォルトの名無しさん
2006/10/22(日) 14:03:030040デフォルトの名無しさん
2006/10/22(日) 14:25:350041デフォルトの名無しさん
2006/10/22(日) 14:43:33String a = (String)f.getItem();
if( a.equals("A") ){
}
else if( a.equals("B") ) {
}
}
public void actionPerformed(ActionEvent e) {
if( e.getSource() == b1 ) {
}
}
処理の部分でどれをチョイスしたか分かるようにしたいんですが
0042デフォルトの名無しさん
2006/10/22(日) 16:02:55ButtonGroupを利用しなされ
ButtonGroupに、JRadioButtonをaddしておき、
actionが起こったときに、ButtonGroupからgetSelection()で選択されたものを取ればOK
0043デフォルトの名無しさん
2006/10/25(水) 06:13:080044デフォルトの名無しさん
2006/10/25(水) 07:04:530045デフォルトの名無しさん
2006/10/25(水) 12:41:500046デフォルトの名無しさん
2006/10/26(木) 05:13:03AWTコンポーネント自体使うことが推奨されてないから解決されることはない。
0047デフォルトの名無しさん
2006/10/26(木) 08:24:560048デフォルトの名無しさん
2006/10/26(木) 12:39:250049デフォルトの名無しさん
2006/10/26(木) 18:39:530050デフォルトの名無しさん
2006/10/27(金) 01:50:11古い年式のウィジェットを探しています。
ネイティブにピアを生成するタイプで、ご覧のバージョンの JDK の引き取りや、アップデートを行っています。
対象 JDK は万一の場合、訴訟事故に至るおそれがありますので、直ちに使用を中止していただき、
至急、ご連絡をお願い申し上げます。
____ . .| |
/\二___\.. | |
|\/‖ '''.| | | DUKE
| | ‖┌┐ .| | | ↓
| | ‖└┘ .|┌|=.|ヽ_ ゝノ゛
| | ‖ .|二| |回_ ●>
| | ‖ .|└|=.|/ 〆
|ミ.| ‖ .| | |
|\ノ.|ミ.| ‖ .| | |
|_》 | | ‖ .| | |
\|_‖____.| | |
0051デフォルトの名無しさん
2006/10/30(月) 08:14:49で、SWTスレどしたのよ。
0052デフォルトの名無しさん
2006/10/30(月) 19:57:31Java SE 6ではActionにSELECTED_KEY、DISPLAYED_MNEMONIC_INDEX_KEY等が追加されたんだね。
今まで何でないのか不思議だった。AbstractButtonにもHideActionTextプロパティが追加されてる。
0053デフォルトの名無しさん
2006/11/04(土) 00:43:50ttp://www.gremlin.jp/yada/java_JTable/SimpleRowHeader.htm
↑のアプレットみたいに、ウィンドウサイズを変えたら、そのウィンドウと同じサイズにJTable
をリサイズするにはどうしたらいいのでしょうか?
ComponentListenerを使うのでしょうか?
0054デフォルトの名無しさん
2006/11/04(土) 01:04:21よくわかんないけど、普通に貼り付ければこうなるんじゃないんだっけ?
BorderLayoutでCenterに配置するとか。
005553
2006/11/04(土) 01:41:03変わってしまいます…
ウィンドウサイズと同じサイズにリサイズさせたいのですが、そのやり方わからなくて…
0056デフォルトの名無しさん
2006/11/04(土) 01:45:56レイアウトマネージャをどう使っているか次第。
NullLayoutなどだと、座標で配置されているから、ロジック書かないとリサイズはされない。
>>54が書いているように、BorderLayoutでCenterに配置するのが普通。
005753
2006/11/04(土) 10:32:33ありがとうございまいた。私の知識不足でした。レイアウトマネージャをBorderLayoutにして
CENTERに配置すればできました。
できなかった理由としてFlowLayoutとGridLayoutを使っていたためだと思われます。
レイアウトマネージャについて勉強してきます。
ありがとうございました。
0058デフォルトの名無しさん
2006/11/04(土) 11:49:300059デフォルトの名無しさん
2006/11/04(土) 12:58:250060デフォルトの名無しさん
2006/11/04(土) 13:02:450061デフォルトの名無しさん
2006/11/04(土) 13:05:080062デフォルトの名無しさん
2006/11/04(土) 14:44:060063デフォルトの名無しさん
2006/11/04(土) 14:49:380064デフォルトの名無しさん
2006/11/04(土) 15:11:41実装がかなり前に止まっているとか。
0065デフォルトの名無しさん
2006/11/04(土) 16:26:11と聞かれて、面倒くさいから、「setTextでHTMLをセットするとOK」と答えた。
で、setTextするための、HTMLを文字列でセッセと作っていたのが、そのうち
Velocityで雛形作って、セットするようになっていた。
ほとんど、Webアプリ
そのうち、IEだと、こう表示されるのが、うまくいかないとか言われそう。
0066デフォルトの名無しさん
2006/11/04(土) 16:38:25バージョン情報を表示するに、書式をいろいろ変更して使いたかったんですけど、
なんかHTMLがそのまま表示されます。
ファイルにしてsetPage()使わないとダメなのかな。。
仕方ないので、今はJTextPaneを使って、ちまちま書式設定して出してます。
0067デフォルトの名無しさん
2006/11/04(土) 17:00:17つttp://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/awt/1.3/designspec/lightweights.html
0068デフォルトの名無しさん
2006/11/04(土) 17:05:30自己レス。JEditorPane#setContentType("text/html")を使えばいいのね。
0069デフォルトの名無しさん
2006/11/04(土) 22:17:17JTableの1行目のcolumnを1列目に縦に表示するには、どうすればよいのでしょうか?
0070デフォルトの名無しさん
2006/11/04(土) 22:59:45意味不明。
007169
2006/11/04(土) 23:09:15すいません。
エクセルみたいに行番号(1,2,3..)列名(A,B,C...)のような表示をつくりたいのですが…
0072デフォルトの名無しさん
2006/11/04(土) 23:10:180073デフォルトの名無しさん
2006/11/04(土) 23:18:16分からなければ、JTable自体を基礎から勉強すべし
http://java.sun.com/docs/books/tutorial/uiswing/components/table.html
行ヘッダ(1,2,3...)は、JTableにはそんな機能ないから、それっぽく見せる実装をしなければならない。
>>5にある、為政氏のサンプルにある。
http://www.crionics.com/products/opensource/faq/swing_ex/JTableExamples1.html
007469
2006/11/04(土) 23:30:21JTableにはもともとないんですね…
サンプル大変参考になりました。
ありがとうございました。
0075デフォルトの名無しさん
2006/11/05(日) 22:21:180076デフォルトの名無しさん
2006/11/06(月) 00:33:11システムフックの方法が知りたいけどSwingの話題じゃないので黙っておく
0077デフォルトの名無しさん
2006/11/06(月) 00:44:13フォーカストラバーサルサイクルルートについて詳しく
0078デフォルトの名無しさん
2006/11/06(月) 09:04:51初耳だ。ちらっと見た感じだと、
TABを押した時なんかの、
次にフォーカスを与えるコンポーネントを探すクラスかな?
今まで使う場面が出たことがないけど、
FocusTraversalPolicyを継承してクラスを作れば、
コンポーネントの値とかでも順序を付けられたりするみたい。
質問が具体的なら、もう少し調べてもいいが。
0079デフォルトの名無しさん
2006/11/06(月) 13:27:230080デフォルトの名無しさん
2006/11/06(月) 19:38:24具体的じゃないけど便乗で
5.0 -> 6.0 でフォーカス関係で変わった事ってまとめてるとこないかな?
5じゃ動いてたコードが6で動かなくなっちゃったから・・・
0081デフォルトの名無しさん
2006/11/06(月) 19:54:29なるほど。
>>80
ごめんなさい、わかりません。
思ったとおりにリスナーが呼ばれないとか、そんな感じですか?
0082デフォルトの名無しさん
2006/11/06(月) 22:00:45まじか
そのへんまではまだ詳しく調べてないけど困るな
正式版が出たらチェックしようという状態だったがSwingに大幅に手が入ってるのなら別だ
Sunなにやってるんだよ〜
1秒でわかるSwingのバグつきを夏にリリースしてたし
まぁ5.0でJavaSoundの挙動が大幅に変更されたりとか
日本語印刷が通らないあたりでおかしい気はしたが
0083デフォルトの名無しさん
2006/11/06(月) 22:14:34今日たまたまJavaで印刷のサンプル動かしたら、
DocFlavor.INPUT_STREAM.AUTOSENSE を使わないと、テキストが印刷できなかった。
しかも日本語文字化けしてるし。これは当たり前?5.0から?
TEXT_PLAIN_HOSTとかいろいろ試したけど、こっちはエラーが出た。
あと、印刷が終わっても、紙が排出されないんだけど、最後に何かする必要あります?
今は、DocPrintJob#print(○,○); で終わってます。
なんか印刷大変そうだなぁ。。。
0084デフォルトの名無しさん
2006/11/06(月) 22:37:08それはどのVMで動かした話?
0085デフォルトの名無しさん
2006/11/06(月) 22:50:175.0での出来事でした。下の記事を参考にしました。
ttps://java.sun.com/j2se/1.5.0/ja/docs/ja/guide/jps/spec/jpsOverview.fm4.html#998638
0086デフォルトの名無しさん
2006/11/06(月) 23:20:31JLabel→JLabelのようにJLabelからJLabelへ矢印を表示するには
どうすればよいのでしょうか?
0087デフォルトの名無しさん
2006/11/06(月) 23:26:22質問の意味がわかりませんが。。。
とりあえず「→」を書きたいなら、
真ん中に「→」を書いたJLabelを置いてみれば?矢印の画像でもいいけど。
もし矢印が長かったり、角度が中途半端なのであれば、drawLineで自分で書く。
0088デフォルトの名無しさん
2006/11/06(月) 23:41:13updateナンボかが問題
008986
2006/11/06(月) 23:44:14配置してあるJLabelどうしを矢印で結んだ図を表示させたかったのですが
そういった場合は自分で書くしかないんでしょうか?
JLabelの位置を計算して、矢印を表示することはできないんでしょうか?
よろしくおねがいします。
0090デフォルトの名無しさん
2006/11/07(火) 00:13:12印刷APIはサービスが追加されたけど、今までのも動くよ
ただし、日本語問題が解決されたのは今年の春くらいのバージョンから
1.5年ほど日本語バグは放置されていた
そしてそのバグが直ったと思ったらSwingにバグがついたというわけだ
正確にはWindows版のLAFだけだからすべてではないがWindowsって一番ユーザー多いから影響もでかい、と
NetBeans立ち上げればおかしいのはすぐにわかるはずなのにそれに気がつかなかったSunちね
0091デフォルトの名無しさん
2006/11/07(火) 01:12:43なんだかんだとコンポーネントが追加されてるJPanel上の特定のJLabel間に線引きたいって事?
それならJLabelをaddするときに線を引きたいJLabelだけのコレクションを別に持っておいて自分で矢印を描画しないとだめだね。
常に次ぎが右横とか規則があるならJLabel継承した横に矢印付け足す描画をするJLabelWithArrowとかでもいいのだろうけど。
0092デフォルトの名無しさん
2006/11/07(火) 02:24:57噂では、JLabelなんか使わないで、全部自分で描いた方がラクだって話もあるよ。
0093デフォルトの名無しさん
2006/11/07(火) 04:40:580094デフォルトの名無しさん
2006/11/07(火) 07:48:31グラフ書きたいなら、JGraphとかSWTのdraw2dとか使った方が楽だよ。
ttp://www.jgraph.com/
ttp://www13.plala.or.jp/observe/#draw2d
グラフって言っても、XYグラフのグラフじゃなくてグラフ理論のグラフだからね。
0095デフォルトの名無しさん
2006/11/07(火) 09:35:29JGraphなんてものがあるのか。知らなかった。
LGPLの他に商用ライセンスがあえてあるってことは、商用で使う場合はお金かかる?
無知なので質問ですが、SwingとSWTって混ぜて使ったりするの?
水と油だと思っているのですが。。。
0096デフォルトの名無しさん
2006/11/07(火) 12:30:07JGraphは商用利用も含めてフリー。LGPLだし。
一方JGraph Layout Pro というのがあって、JGraphの高機能版。こっちは有料。
JGraphだとノードの自動レイアウトが出来なかったりと、いろいろ不便。
他にもこういうのもあるけどね。
ttp://openjgraph.sourceforge.net/
こっちならレイアウトできたり、グラフに制約(巡回不可とか)かけられたりできる。
ただ、開発が4年以上止まっているけど。
0097デフォルトの名無しさん
2006/11/07(火) 12:35:17009886
2006/11/07(火) 15:37:54規則性はないので、その際は手作業なんですね…
ありがとうございました。
>>92さん
それは
ttp://homepage1.nifty.com/algafield/JavaGUIFaq19j.html
このページにあるQ8.6にも、書いてある通り描く方がいいてことでしょうか?
>>93さん
SWTではあるのですか…
>>94さん
JGraphというのがあるのですね!これについて調べてみようと思います。
表示したいのはちょうど、グラフ理論を使ったものなのでぴったりだと思います。
皆さんありがとうございました。
Java2DかJava3Dで描画しなきゃいけないかもって思ってました。それ以外の方法もあるのですね。
009996
2006/11/07(火) 16:09:10後でハマるよ。
ここでいうレイアウト機能ってのは、適当にノード並べてエッジ引いた後で、
ボタン1クリックでノードやエッジの位置を設定し直してくれる機能。
俺の場合、SWTのdraw2dで提供されてるレイアウト機能だけ使って
強引に何とかしたけど。
0100デフォルトの名無しさん
2006/11/07(火) 16:52:14ttp://jung.sourceforge.net/index.html
ttp://www.nanoworks.nl/
デモとかサンプル見て好きなの使ってくれ.
010196
2006/11/07(火) 17:12:49いつの間にか、JUNGが使えるライブラリになってるね。
2年前にこの手のライブラリについて調べてたんだけど、
当時のJUNGはグラフの編集機能がなくて、使うのをあきらめた覚えがある。
0102デフォルトの名無しさん
2006/11/07(火) 17:29:394年前に全部自前でやった事がある。
あの頃と比べたらオープンソースなライブラリがよりどり緑でありがたい。
010386
2006/11/07(火) 18:31:17ご忠告ありがとうございます。
0104デフォルトの名無しさん
2006/11/07(火) 23:24:14別にSwingでもNetbeansには普通にそういうモデリング描画用
ライブラリはあるわけだが。Graph Libraryというのがね。
0105デフォルトの名無しさん
2006/11/08(水) 00:36:43NetBeansプラットフォームで作っちゃえばいいんだけど。
0106デフォルトの名無しさん
2006/11/08(水) 00:37:440107デフォルトの名無しさん
2006/11/08(水) 01:17:29GUIのひとつの画面は、どうしても密結合になる。
0108デフォルトの名無しさん
2006/11/10(金) 01:04:36パスを取得するにはどうしたらよいでしょうか?
0109デフォルトの名無しさん
2006/11/10(金) 01:32:48クラスパスルートがたくさんある場合はどう解釈するの?
0110デフォルトの名無しさん
2006/11/10(金) 01:42:27実行時のディレクトリを知りたいのかな?
String path;
path = new File(".").getAbsolutePath();
とか。
0111デフォルトの名無しさん
2006/11/10(金) 01:58:03それなら、System.getProperty("user.dir")の方がよくね?
0112デフォルトの名無しさん
2006/11/10(金) 21:50:28フォルダごと移動させれば他のPCに環境をそのまま移せるように。
設定ファイル以外にもいろいろ置きたいからjarのパスが知りたい。
0113108
2006/11/10(金) 23:31:12jarファイルを実行したときに、jarファイルと同じディレクトリにあるファイルで
拡張子が.zzzのもので、最終更新日が最新のものを自動的に読み込むという処理が
必要で、上記のような質問をさせて頂きました。
解決致しましたので、ご報告致します。
File f = new File(".") ;
String[ ] files = f.list( ) ;
これで実行ディレクトリのファイル一覧を配列に取得することができました。
ありがとうございました。
0114デフォルトの名無しさん
2006/11/10(金) 23:40:310115デフォルトの名無しさん
2006/11/10(金) 23:42:230116デフォルトの名無しさん
2006/11/10(金) 23:48:06俺なら保険的に<md5>.md5みたいなファイル用意して
確実に実行元がカレントディレクトリである必要があるようにするかも
0117デフォルトの名無しさん
2006/11/11(土) 04:15:14亀レスだけど、System.getProperty("java.class.path")
sunのVM限定だと思う。
他の方法としてはJARファイル内にリソースを格納して、
this.getClass().getClassLoader()#getResourceでURLを取得するとか。
0118デフォルトの名無しさん
2006/11/11(土) 09:24:40java.lang.System#getProperties()のjavadocに明記されてるし、
J2SE5.0の仕様の上ではVMによらず使用可能とみていいんじゃないかな。
0119デフォルトの名無しさん
2006/11/11(土) 16:24:32そこに設定ファイルを置いてファイルを取得
0120デフォルトの名無しさん
2006/11/11(土) 17:20:18jarと同じディレクトリに作りたいでしょ?
でも、いちいちクラスパス通したくない。ではjarのパスはどこ?
というお話し。
0121デフォルトの名無しさん
2006/11/11(土) 17:31:55関連するライブラリなどへのクラスパスは jar ファイルのマニュフェストに記述されると勝手に推測。
そこに resources への相対パスも追加すればいいんじゃまいかと思ったが
そもそも読み込むファイル名は決まっていないのね。
0122デフォルトの名無しさん
2006/11/11(土) 18:22:591.CLASSPATHから読み込む方法。
一番安易だが、配置に柔軟性が乏しい。
2.環境変数XXXX_HOMEを設定させる方法
起動スクリプトや実行ファイル内で設定取得されることが多い。
Java 5から環境変数の取得が復活しているので、Java内で取得可能になった。
CLASSPATHによらず、自由に構成管理できる。(XXX/conf/配下等)
広く使われており、JAVA_HOME. ANT_HOMEなど実例多数。
3.ユーザのホームディレクトリからの相対パスを利用する方法
複数のユーザで使うソフトウェアに適する。
Windowsの場合、ApplicationData/XXX配下、Unixの場合.xxx/配下などが使われる。プログラマが構成をデザインしないといけない。
4.Preferences APIを使う方法
Java 5から提供される標準API。
実体は、Winはレジストリ、Unixは.java配下に作られるが、API利用者は意識する必要がない。
0123122
2006/11/11(土) 18:42:235.カレントディレクトリと1.の併用
log4jなどいくつかのソフトウェアで採用されている。
ツール系は、テンポラリに設定を変えたい時があるので、
この方法は便利。
結局、作成するアプリの性質によってどうデザインするか変わってくるよ。
0124デフォルトの名無しさん
2006/11/11(土) 18:44:200125デフォルトの名無しさん
2006/11/11(土) 18:50:01誰だよ、スレ違いの質問投げた奴は。
0126デフォルトの名無しさん
2006/11/11(土) 18:53:040127デフォルトの名無しさん
2006/11/11(土) 19:03:570128デフォルトの名無しさん
2006/11/11(土) 19:15:220129デフォルトの名無しさん
2006/11/12(日) 13:58:33これがふつー?だったらjavaやめる。
2000で1_4_2です。
ただフレームを表示するだけでも同じ症状がでるのですが。
0130デフォルトの名無しさん
2006/11/12(日) 14:03:060131デフォルトの名無しさん
2006/11/12(日) 14:11:35やっぱりそうなのか。
thx
PCが悪いのかな?
0132デフォルトの名無しさん
2006/11/12(日) 14:31:170133デフォルトの名無しさん
2006/11/12(日) 14:38:420134デフォルトの名無しさん
2006/11/12(日) 15:05:15import javax.swing.*;
import java.io.*;
import java.awt.Container;
import java.awt.*;
class TinyMemo {
JFrame frame;Container com;
TinyMemo(){
framereset();com = frame.getContentPane();
Paneles paneles = new Paneles();com.add(paneles.getBar(),BorderLayout.NORTH);
JTextArea text = new JTextArea();com.add(text,BorderLayout.CENTER);frame.setVisible(true);
}
private void framereset(){
frame = new JFrame("メモ帳");frame.setSize(300,400);frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public static void main(String[] args){TinyMemo tiny = new TinyMemo();}
}
class Paneles extends JPanel {
JMenu menu;JMenuBar menubar;
JMenuItem save;JMenuItem read;JMenuItem delete;
Paneles(){
menu = new JMenu("nya");menubar = new JMenuBar();
delete = new JMenuItem("delete");save = new JMenuItem("save");read = new JMenuItem("read");menubar.add(menu);
menu.add(delete);menu.add(save);menu.add(read);
}
JMenuBar getBar(){return menubar;}
}
こんなもんソースいらんだろ思ってさらさんかったんだが
色々変わってたりついてるけ症状はそんままだからこれで
改行が多すぎる言われまくったからかえたらすげーよみにくい。
0135デフォルトの名無しさん
2006/11/12(日) 16:24:14まだ初心者か?
Swingにはメニューバー用の専用メソッドがあるよ
他にもクラス設計など指摘したいところがたくさんあるがまあいいか
0136デフォルトの名無しさん
2006/11/12(日) 22:03:15最低限、改行して見やすいコードをさらせ。
0137デフォルトの名無しさん
2006/11/12(日) 23:04:37frame.setJMenuBar()
ttp://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/api/javax/swing/JFrame.html#setJMenuBar(javax.swing.JMenuBar)
0138デフォルトの名無しさん
2006/11/13(月) 11:11:58わ、サンクス!
わざわざありがとうございます。
>>136
改行多すぎる言われて修正しまくってこんなんなってしまったんです。orz
最初は普通だったのに。
0139デフォルトの名無しさん
2006/11/14(火) 15:51:022レスに分割するか、
レス消費に気を配っているorかなり長いソースの場合はアップローダを利用。
0140デフォルトの名無しさん
2006/11/15(水) 00:13:45JTableの縦横にヘッダがあってExcelみたいな感じのやつ。
0141デフォルトの名無しさん
2006/11/15(水) 11:37:56JSplitPane#setDividerLocation(9999)とか無理矢理やればできるのですが、
一応できるのですが、キレイな方法で。
JSplitPane#getMaximumDividerLocation()で値を取得して、
それを設定する方法も試しましたが、
フレームが起動するまでは正しい値が取得できないんですかね。ダメでした。
0142デフォルトの名無しさん
2006/11/15(水) 13:29:10JSplitPane#setDividerLocation(Integer.MAX_VALUE) とかやっとけば
0143デフォルトの名無しさん
2006/11/15(水) 14:00:41pack()読んだ時点で確定されない?
0144141
2006/11/15(水) 15:48:349999よりかはキレイですね。こっちにしておきます。どうもです。
>>143
pack()は使ってないので、フレームを表示するので確定しないようです。
0145デフォルトの名無しさん
2006/11/15(水) 17:23:540146デフォルトの名無しさん
2006/11/15(水) 17:50:42setPrefferedSize()とかJFrame#setSize()とかしないと、親コンポーネントが最小サイズになったり。
0147デフォルトの名無しさん
2006/11/15(水) 17:57:320148デフォルトの名無しさん
2006/11/15(水) 19:39:120149デフォルトの名無しさん
2006/11/15(水) 19:55:30java.awt.Point p = java.awt.MouseInfo.getPointerInfo().getLocation() ;
とか?1.5以降で.
0150デフォルトの名無しさん
2006/11/15(水) 19:59:26助かったー!
0152デフォルトの名無しさん
2006/11/19(日) 19:51:47Java2DとSwingに関連する内容なのですが、
JPanalを継承したクラスを、JTabbedPaneにaddして、そのクラスのpaintメソッドで
Java2Dの描画を行っています。
そこで、
public void paint(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
AffineTransform af = new AffineTransform();
g2.setTransform(af);
以下描画...
}
とすると、ウィンドウサイズを変更したり、再描画させたりした時に描画するものの位置がずれます。
具体的にいうと、jTabbedPaneのタブの大きさだけ描画した物が上に移動します。
原因を調べてみると、どうもAffineTransformオブジェクトをGraphics2Dに登録すると、
座標計算の基準点がタブに登録したJPanel派生クラスの領域の左上ではなく、
jTabbedPaneの領域(タブ表示域も含んだ)の左上に、再描画の時に変更になってしまうようなのです。
これはJavaランタイムのバグなのでしょうか。ちなみにJavaのバージョンは1.5.0_08です。
0153デフォルトの名無しさん
2006/11/19(日) 20:23:00paint()じゃなくて
paintComponent()をオーバーライドしなされ
あと1.5.0_08はSwingにバグがあるので1.5.0_09にしたほうがいい
0154デフォルトの名無しさん
2006/11/20(月) 09:59:06問題が再現するコンパイル可能なソースを出した方がはやいと思うよ.
0155デフォルトの名無しさん
2006/11/20(月) 11:40:38public class foo extends JApplet {
private JPanel jContentPane = null;
private JTabbedPane jTabbedPane = null;
private JPanel jPanel2 = null;
public foo() { super(); }
public void init() {
this.setContentPane(getJContentPane());
}
private JPanel getJContentPane() {
if (jContentPane == null) {
jContentPane = new JPanel();
jContentPane.setLayout(new BorderLayout());
jContentPane.add(getJTabbedPane(), BorderLayout.CENTER);
}
return jContentPane;
}
private JTabbedPane getJTabbedPane() {
if (jTabbedPane == null) {
jTabbedPane = new JTabbedPane();
jTabbedPane.addTab("パネル2", null, getJPanel2(), null);
}
return jTabbedPane;
}
private JPanel getJPanel2() {
if (jPanel2 == null) {
jPanel2 = new Canvas();
jPanel2.setLayout(new GridBagLayout());
}
return jPanel2;
}
}
0156デフォルトの名無しさん
2006/11/20(月) 11:42:08public Canvas self = this;
public Canvas() {
this.addMouseListener(new MouseAdapter(){public void mouseClicked(MouseEvent arg0) {
self.repaint();
}});
}
public void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D)g;
g2.clearRect(0, 0, this.getSize().width, this.getSize().height); //画面を一度クリア
AffineTransform af = new AffineTransform();
af.setToTranslation(100, 0);
g2.setTransform(af);
g2.draw(new Line2D.Float(10,50,20,50)); //x軸
}
}
こんなソースになります。マウスクリックすると短い横線の位置がタブの高さ分下に下がります。
ウィンドウサイズを変更すると元に戻り、またクリックすると位置が下がります。
0157デフォルトの名無しさん
2006/11/20(月) 21:00:04すまん,うけたw
0158デフォルトの名無しさん
2006/11/20(月) 21:35:16//g2.setTransform(af);
g2.transform(af);
理由はAPI説明のGraphics2D#setTransformの項をよく読むこと。
ちなみに、内部クラスから外側のクラスのインスタンスを参照したいときは、
Canvas.this.repaint();
のように「外側のクラス名.this」と書けば、selfのように自分で持っていなくてもいい。
ただし、外側のクラスが匿名クラスの場合は名前がないため、この書き方はできないので、
別の手段が必要だが。その中にはself=thisのような方法もとりうる方法のひとつではある。
0159157
2006/11/20(月) 21:41:14すれば何が期待通りになって,かつ何が起きてるのかわかると思われ.
# 初回描画時とrepaintでの描画時の出力を比べてください.
public void paintComponent (Graphics g){
Graphics2D g2 = (Graphics2D) g;
AffineTransform originalTransform = g2.getTransform();
System.out.println("translate (x, y) = ( " +
originalTransform.getTranslateX() + ", " +
originalTransform.getTranslateY() + ")");
g2.clearRect (0, 0, this.getSize().width, this.getSize().height);
originalTransform.translate(100, 0);
g2.draw (new Line2D.Float (10, 50, 20, 50));
}
0160デフォルトの名無しさん
2006/11/21(火) 13:42:22次のようにしたら解決できました。
Graphics2D g2 = (Graphics2D)g;
g2.clearRect(0, 0, this.getSize().width, this.getSize().height); //画面を一度クリア
AffineTransform af = g2.getTransform();//new AffineTransform();
System.out.println("translate (x, y) = ( " +
af.getTranslateX() + ", " +
af.getTranslateY() + ")");
af.translate(100, 0);
System.out.println("translate (x, y) = ( " +
af.getTranslateX() + ", " +
af.getTranslateY() + ")");
g2.setTransform(af);
g2.draw(new Line2D.Float(10,50,20,50)); //x軸
タブにした状態などの色々な状況によって、Graphics2Dの変換行列が自動的に辻褄をあわせてくれていたんですね。
だからg2.getTransform();としてAffineTransformオブジェクトを取得してそれを使うべきで、
さらにそれ以後の座標変換も相対的な変換にすべきだったんですね。
よく分かりました。ありがとうございます。
0161デフォルトの名無しさん
2006/11/21(火) 13:51:45原点の位置が変わってしまうなんて、Swingって妙な仕様ですね・・・。
0162デフォルトの名無しさん
2006/11/21(火) 16:39:27なぜにそんなにsetTransformを使いたがるんだろうか。
setTransformはgetTransformで保存した元のコンテクストを、
描画終了時にリストアするときにだけ使うべきものとある。
描画時の座標変換にはtransform, rotate, scale, shearを使うだけでいい。
仕様が変というより、使い方が変だと思う。
変な使い方ができうるという点で仕様が悪いのかもしれないけど。
0163デフォルトの名無しさん
2006/11/21(火) 17:26:03Graphics2D g2 = (Graphics2D)g;
g2.clearRect(0, 0, this.getSize().width, this.getSize().height); //画面を一度クリア
AffineTransform backup = g2.getTransform(); // backup
g2.translate(100, 0);
g2.draw(new Line2D.Float(10,50,20,50)); //x軸を描画
g2.setTransform(backup); // restore
0164デフォルトの名無しさん
2006/11/21(火) 18:03:15そうですね。setTransformは今後控えます。
でもそれと関係なしに、マウスクリックした時と初回描画時orウィンドウサイズ変更時で描画領域の
原点位置が変わっていて、それをSwing(AWT?)がg2の変換行列を自動的に変えて無理やりつじつまを合わせている
というSwing(AWT?)の仕様がちょっと気になってしまいました。
0165デフォルトの名無しさん
2006/11/24(金) 18:35:490166デフォルトの名無しさん
2006/11/24(金) 21:30:27GridBagLayoutでいいじゃんってのは止めてね。
コンポーネント間隔の割合比率(パーセント)を<table>のように
自動計算でやってくれたりすると楽なんだけど…
0167・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2006/11/24(金) 23:14:020168・∀・)っ-○◎●創聖のダンゴリオン ◆DanGorION6
2006/11/24(金) 23:14:23○SWTアプリが
0169デフォルトの名無しさん
2006/11/24(金) 23:47:52割合ではないけどレイアウトマネージャほとんど理解しなくても使えるグループレイアウトは?
0170デフォルトの名無しさん
2006/11/25(土) 00:17:530171デフォルトの名無しさん
2006/11/25(土) 01:22:34XmlGridLayoutでも使ってみれば?
0172デフォルトの名無しさん
2006/11/25(土) 01:28:22需要大してなかったみたいだし、仕方ないね・・・
それにSWTの質問がしたい人はプラグ印スレに行けばいいし、なくても問題ないだろ。
(つーかSWTやる人のほとんどはプラグ印用途な気もするが。)
0173デフォルトの名無しさん
2006/11/25(土) 06:03:06Eclipse RCPとか使ったりね。もうバカかと。
0174デフォルトの名無しさん
2006/11/25(土) 19:09:10Eclipse RCPはそんなに悪く無いと思うがな
最近、RadRailsとかAptanaとか実際にそれなりに動くRCPアプリが結構出て来てるし
まあ、Eclipse RCPは実質Eclipseプラグインとほとんど変わらんのだが。
0175デフォルトの名無しさん
2006/11/25(土) 19:37:08ありがたや。ありたがや。
0176デフォルトの名無しさん
2006/11/27(月) 10:33:18な案件だと仕方なくSWTで作ることになる・・・
と思いきや、Swingでプロトタイプ作って見せると
やっぱこれで良いですになる今日この頃。
0177デフォルトの名無しさん
2006/11/27(月) 20:32:430178デフォルトの名無しさん
2006/11/30(木) 02:43:560179デフォルトの名無しさん
2006/12/02(土) 17:33:15UIManager.put("Menu.font", font);
UIManager.put("MenuItem.font", font);
0180デフォルトの名無しさん
2006/12/03(日) 16:15:58ありがとうございました。
0181デフォルトの名無しさん
2006/12/04(月) 00:49:10いくつも矩形を描いて中に文字をいれたいんだけど、文字の長さや幅に応じて
自動的に矩形のサイズを調節したり、矩形の表示位置がウィンドウをはみだしたり
他の矩形と重なったりしないように表示位置を自動で調節してくれるようにしたい。
こういうのって相当むずかしいですか?
0182デフォルトの名無しさん
2006/12/04(月) 00:52:170183181
2006/12/04(月) 18:17:08矩形の大きさは単語が矩形からはみださないように自動的に適切な大きさ計算して
描かれるようにしたい。
そういう単語が入っている矩形がこれまた何個も出したい。
矩形同士もお互い重ならないように自分で適切な位置を計算してそこに表示されてほしい。
そういうのって簡単にはできないのかな?
0184デフォルトの名無しさん
2006/12/04(月) 19:10:020185181
2006/12/04(月) 20:09:250186六尺兄貴
2006/12/04(月) 20:27:23結構めんどいよ。.NETは楽なんだけど。
0187デフォルトの名無しさん
2006/12/04(月) 21:26:440188デフォルトの名無しさん
2006/12/04(月) 22:51:21SwingUtilities#computeStringWidth()とか、layoutCompoundLabel()とか使って
自分で描画するかな
0189デフォルトの名無しさん
2006/12/04(月) 23:53:35>>185
自動でやってくれと言ったり、全部自分で描きたいとか
訳が分かりません。
俺なら、Border設定したJPanelの中にJLabelを埋めていくかな?
0190デフォルトの名無しさん
2006/12/05(火) 01:35:180191デフォルトの名無しさん
2006/12/05(火) 14:50:380192181
2006/12/05(火) 19:37:37表示する場所を計算すればいいってのは分かるんだけど、
複数の矩形を表示するってことを考えると、計算が複雑になりそうで
できそうもないです。
ちなみに185は私ではありません。
0193デフォルトの名無しさん
2006/12/05(火) 21:45:16グラフ描画用ライブラリを使った方が簡単かもしれない。
ノードのみ並べて、ノードのサイズをライブラリ任せにすれば(その辺はライブラリ依存だが)
だいたいいけそうな気がする。
0194デフォルトの名無しさん
2006/12/05(火) 23:19:14チョチョイとサンプルかいてみてよ
0195デフォルトの名無しさん
2006/12/06(水) 02:57:57だがあぷろーだに拒否された
0196デフォルトの名無しさん
2006/12/06(水) 10:37:34Ant必要なの?これ。
インストールできませんdふぁd;sfじゃs
0197デフォルトの名無しさん
2006/12/06(水) 15:13:550198デフォルトの名無しさん
2006/12/06(水) 20:23:170199デフォルトの名無しさん
2006/12/06(水) 20:45:260200デフォルトの名無しさん
2006/12/06(水) 20:48:440201デフォルトの名無しさん
2006/12/06(水) 20:52:53分類ごとに矩形を描いて
キーワードを矩形の中にならべていきたいわけ。
矩形の大きさはキーワードの長さと種類にあわせて決めたいし、
矩形の表示位置はほかの矩形とかさならないように決めたいのよ。
0202デフォルトの名無しさん
2006/12/06(水) 21:36:490203デフォルトの名無しさん
2006/12/06(水) 21:40:140204デフォルトの名無しさん
2006/12/06(水) 21:47:15オマエには出来ないでファイナルアンサー
ってか、既に答を書いてる人がいっぱいいるじゃん。
0205デフォルトの名無しさん
2006/12/06(水) 22:48:16動くコードなら納得がいく
0206デフォルトの名無しさん
2006/12/06(水) 23:02:570207デフォルトの名無しさん
2006/12/07(木) 00:12:43なにがいいたいのか、俺にはさっぱりわからん。
図かなんか描いてどっかに貼ってみせてみろ。
0208デフォルトの名無しさん
2006/12/07(木) 00:24:40| keyword 11111111111 |
| keyword 222222222222222222222 | _______
| aaaa | | |
_________________ | うお |
________ | ぎゃああ |
| | _______
|あああああああ |
| |
__________
0209デフォルトの名無しさん
2006/12/07(木) 00:27:06______________
| keyword 11111111111 |
| keyword 222222222222222222222| _______
| aaaa | | |
_________________ | うお |
________ | ぎゃああ |
| | _______
|あああああああ |
| |
__________
0210デフォルトの名無しさん
2006/12/07(木) 00:35:220211デフォルトの名無しさん
2006/12/07(木) 00:52:16どうでもできるだろ。
0213デフォルトの名無しさん
2006/12/07(木) 10:22:21やってないだけ。
0214デフォルトの名無しさん
2006/12/07(木) 10:53:11やることはJavaだろうがWin32だろうがGTKだろうが変わらない。
0215181
2006/12/07(木) 12:28:54文字が入ってる枠をほかの枠とかさならない位置を計算して
表示するアルゴリズムがわからんじゃないか
0216デフォルトの名無しさん
2006/12/07(木) 13:31:24アルゴリズムの初心者スレいったほうがいいよ。
0217デフォルトの名無しさん
2006/12/07(木) 14:24:59ボタンを押された祭にそれらのJPanelを切り替える事は可能でしょうか?
public class SwingTest extends JFrame implements ActionListener{
JLabel label = new JLabel("change");
JButton btn = new JButton("push");
JPanel p1 = new JPanel();
JPanel p2 = new JPanel();
public static void main(String[] args){
SwingTest test = new SwingTest("SwingTest");
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
test.setVisible(true);
}
SwingTest(String title){
setTitle(title);
setBounds(10, 10, 300, 200);
p1.add(btn);
p2.add(label);
btn.addActionListener(this);
getContentPane().add(p1);
}
public void actionPerformed(ActionEvent e){
getContentPane().remove(p1);
getContentPane().add(p2);
}
}
こんな感じで今やっているのですが,ボタンを押しても反応しなくて困っています.
どなたかご教授お願いします.
0218デフォルトの名無しさん
2006/12/07(木) 15:08:27たぶんやりたいことはJPanelを切り替えることではなく、レイアウトマネージャにあるやつで足りると思うが
0219デフォルトの名無しさん
2006/12/07(木) 15:37:48解答。ボタンを押すとボタンが消えて、ラベルが現れるなんて、変なGUIだな。
元の状態にに戻れないじゃん。あくまでもテストだよね。
本ちゃんでこんな変なGUI使ったら笑われるよ。
public void actionPerformed(ActionEvent e){
getContentPane().remove(p1);
getContentPane().add(p2);
validate();//←ここ、ここ
}
0220217
2006/12/07(木) 16:06:49validate()
を加える事で表示は代わるようになったのですが,また新たな問題が・・・.
今3つのパネルを用意してそれら3つを行き来できるようにしているのですが,
この方法を用いた場合何故か3つのパネルを1回ずつ表示させることはできるのですが,
2回目以降即ち違うパネルから再度戻ってきた場合に表示が反映されません.
何度も質問してしまい,お手数だと思いますが,どなたかよろしくお願いします.
0221デフォルトの名無しさん
2006/12/07(木) 16:12:040222217
2006/12/07(木) 16:22:57コードを張ろうとしたら大きくなりすぎて,張る事ができなかったので・・・.
表示を切り替えている部分はこんな感じです.public void actionPerformed(ActionEvent e){
String cmd = e.getActionCommand();
if (cmd.equals("1to2")){
getContentPane().remove(パネル1);
getContentPane().add(パネル2);
}
else if (cmd.equals("1to3")){
getContentPane().remove(パネル1);
getContentPane().add(パネル3);
}
else if (cmd.equals("2to1")){
getContentPane().remove(パネル2);
getContentPane().add(パネル1);
}
else if (cmd.equals("2to3")){
getContentPane().remove(パネル2);
getContentPane().add(パネル3);
}
else if (cmd.equals("3to1")){
getContentPane().remove(パネル3);
getContentPane().add(パネル1);
}
else if (cmd.equals("3to2")){
getContentPane().remove(パネル3);
getContentPane().add(パネル2);
}
validate();
}
0223217
2006/12/07(木) 16:29:56先ほどパネルはが変わらないと言いましたが,一部分は変わっていました.
3つのパネルに共通する部分は変更されているのですが,
それ以外の部分が変更されていませんでした.
ただ変更されると言ってもマウスをボタンコンテナ上に乗せると変わるのですが,
そうしなければ変わりませんでした.
非常に説明が下手で申し訳ありませんが,よろしくお願いします.
0224デフォルトの名無しさん
2006/12/07(木) 16:45:570225217
2006/12/07(木) 16:49:42一応>>218の方法で
画面の切り替えが発生したら
パネル上にあるコンテナをremoveAllで削除.
新たに別のパネルを作成し,コンテナを設置.
そのパネルを今表示しているパネルに代入.
という感じでやったのですが,画面が切り替わらず,断念しました.
0226デフォルトの名無しさん
2006/12/07(木) 16:50:46そう簡単には調べられない。
AWTのレイアウト概説的文章とにらめっこする必要が出てくる。
0227デフォルトの名無しさん
2006/12/07(木) 16:53:00どんな初心者本だってすぐにでてくる
0228217
2006/12/07(木) 16:55:36自分がsetLayout(null)でレイアウトマネージャーを無効にしているのがダメな気がしてきた・・・.
やはり何かしらレイアウトマネージャーは使うべきなんですかね・・・.
0229デフォルトの名無しさん
2006/12/07(木) 17:01:21とりあえずnullを使う利点はない
絶対的な座標のように扱うにしてもグループレイアウトやアブソリュートレイアウトのほうがまし
今のコードそのまま使うにしてもそのさしかえたいJPanelにレイアウト指定して
そこにカードレイアウトではりつければいいだけ
レイアウトマネージャ理解していないのならIDEでいじってみてどういう感じなのか理解したほうがいい
カードレイアウトってのはタブ部分のないタブコントロールみたいなもん
0230217
2006/12/07(木) 17:07:34カードレイアウトが自分のやりたい事とマッチしているようなのでまずはこれを勉強してみます.
みなさま本当にありがとうございました.
0231デフォルトの名無しさん
2006/12/07(木) 17:14:50しかし、222のコード見たところ、ボタンがいくつか有って、押すと対応するパネルが
表示されるようにしたいんでしょ。普通はJTabbedPane使って解決じゃないの?
0232デフォルトの名無しさん
2006/12/07(木) 17:21:550233デフォルトの名無しさん
2006/12/07(木) 17:30:320234181
2006/12/07(木) 22:28:24なぜかJ2SDKのフォルダの中でソースをコンパイルして実行しないと
他の場所ではコンパイルも実行もできなんだけど、なぜだろう。
コンパイル後の.classファイルなら他の場所でも実行できるのかと思って
別の場所に移動させて動かしてみたらやっぱり動かないし。
普通、J2SDKフォルダの中でコンパイルしたり実行したりってしないんだし
これだったら使い物にならないんだけど・・・
0235デフォルトの名無しさん
2006/12/08(金) 00:16:52でも常にjgraph.jarを一緒にいれておかなければならないんでしょうか。
0236デフォルトの名無しさん
2006/12/08(金) 00:26:59それにSwingとまったく関係ない点について
0237デフォルトの名無しさん
2006/12/08(金) 00:31:35Javaの仕様を勉強してこい。
理解できるまで帰ってこんでよい。
0238デフォルトの名無しさん
2006/12/08(金) 00:31:590239デフォルトの名無しさん
2006/12/08(金) 00:49:380240デフォルトの名無しさん
2006/12/08(金) 00:53:24少なくともここじゃねえ
0241デフォルトの名無しさん
2006/12/09(土) 19:21:53keyPressed で JTable#getSelectedRow() で行を取得すると、
移動前の行が取れてしまうのが悩みの種です。
押したキーによって、+1、-1すればできますが、
もう少し良い方法があれば教えてください。お願いします。
0242241
2006/12/09(土) 19:59:48セルを行で選択するモードだと isCellEditable が呼ばれないんですね。どうしたものか。
0243デフォルトの名無しさん
2006/12/09(土) 20:32:19SelectionModel を使う。
0244デフォルトの名無しさん
2006/12/09(土) 20:49:50TableColumnModelListener,ListSelectionListener
の2つで横と縦の選択がとらえられる。
0245241
2006/12/09(土) 22:31:36ありがとうございました。早速試したところ、なんとか取れました。
あと、JTable#valueChanged(ListSelectionEvent) をオーバーライドしても取れました。
奥が深いですね。
0246デフォルトの名無しさん
2006/12/09(土) 23:25:58ペイントイベントもイベントとしての実装じゃないから手軽とはいかないし
SwingはJavaBeansをベースに作ってるといいながらどうもそういう実装になってないんだよね
getとsetが対になってないからプロパティとして表示されないとかも多いし
0247デフォルトの名無しさん
2006/12/13(水) 00:56:290248デフォルトの名無しさん
2006/12/13(水) 01:55:20コンパイルしなおしてなくても物によっては1.4倍くらいでてる
0249デフォルトの名無しさん
2006/12/14(木) 11:49:28この中の文字列に含まれる一部の「<」や「>」や「/」などが表示されません。
これらの文字をHTML要素として解釈させないため無効化するにはどうしたらいいのでしょうか?
Webブラウザ上でHTMLソースを表示させるときのように
「<」や「/」を実体参照に書き換えても表示できないようです。
0250249
2006/12/14(木) 12:37:250251デフォルトの名無しさん
2006/12/14(木) 12:41:39おれはふつうに>とかでできてるぞ
0252デフォルトの名無しさん
2006/12/14(木) 12:43:46&gt;
で普通に表示されてるよと
0253デフォルトの名無しさん
2006/12/14(木) 12:53:18レスありがとうございます。
< と >はうまくいったのですが、
<html> のあとに、「/」が入る部分があると表示されたり表示されなかったりで試行錯誤中です。
0254デフォルトの名無しさん
2006/12/14(木) 13:29:39bodyタグがはいっていないとかいうオチは?
0255デフォルトの名無しさん
2006/12/15(金) 07:27:32その線を座標の配列として得るにはどうしたらいいでしょうか?
0256デフォルトの名無しさん
2006/12/15(金) 09:34:57線は特にインスタンスを保持してないしデータもない。
このやりかたでを試してみな。
ttp://web.hc.keio.ac.jp/~fujimura/lang/page-16.html
0257デフォルトの名無しさん
2006/12/15(金) 10:45:24もっと簡単にできないものでしょうか
例えば(0,0),(0,5)をdrawLineで指定したとしたら
2点とその間にある(0,1),(0,2),(0,3),(0,4)が塗りつぶされます。
この4点の塗りつぶしをJavaはどのように実装しているのでしょうか?
この例のように予め2点を結ぶと水平,もしくは垂直になると分かっていればいいですが
(0,0),(2,5)のように水平及び垂直にならない場合,
drawLineはどのように計算して塗りつぶす点を決めているのでしょう?
0258デフォルトの名無しさん
2006/12/15(金) 11:19:16言っている意味がわからないし(何に対して水平、垂直?水平な点なんてありえないし)
255との繋がりも無いように読めるんだけど、結局何がしたいの?
つか256もけして難しくはないと思うんだけど。
実装について知りたければソース読め。
0259デフォルトの名無しさん
2006/12/15(金) 13:11:03ちょっと感動した。ソース読めってセリフが出てくるあたり。
まあ、ネイティブに飛ばしてない限りそこ読めば分かるよな。
0260デフォルトの名無しさん
2006/12/15(金) 13:16:380261デフォルトの名無しさん
2006/12/15(金) 13:31:08結構面倒臭い事しなきゃいかんような気もする。
1.1 までだったら Stroke とか無かったし、
アンチエイリアス云々って時代でもなかったから
ブレゼンハムアルゴリズムだけで出来たかもしらんけど。
0262デフォルトの名無しさん
2006/12/15(金) 13:45:06drawLineの実装ってどんなんだろ,と思ってソース見たのですが
Graphic見てもabstractで
Graphic2Dでオーバーライドしてるのかなと思ってもありませんでした。
どうやらdraw(Shape)っぽい漢字なのですが
Stroke云々ってあってめんどくさそうなのです。
>>258
水平,垂直ってのは結んだ線の話です。
(0,0)と(0,5)を結ぶと垂直な線になります。
ある2点を結んだときにできる線が通ることになる座標を
得るにはどうしたらいいか?ってことで伝わるでしょうか
0263デフォルトの名無しさん
2006/12/15(金) 13:46:41直線が2本あって、
その2本の線の交点の座標って求められるの?
ってことかい?
もしそれなら数学学べ
0264デフォルトの名無しさん
2006/12/15(金) 14:04:43全然話が違います
「ある2点を結んだとき」ですから出てくる点は2つです
それだと4点になります
drawLine(0, 0, 0, 5)を呼び出すと
(0,0),(0,1),(0,2),(0,3),(0,4),(0,5)が塗りつぶされます。
(0,1),(0,2),(0,3),(0,4)が塗りつぶされるのは
(0,0)と(0,5)を結んだ直線が通る座標だからです。
(0,0)と(0,5)を結ぶと垂直な線ができるので
(0,1),(0,2),(0,3),(0,4)が塗りつぶされるということは
簡単に求められます。
drawLine(0, 0, 100, 101)を呼び出したときに
塗りつぶされる座標はどこになるのでしょうか?
0265デフォルトの名無しさん
2006/12/15(金) 14:09:00drawLine(0, 0, 5, 5)だと
(0,0),(1,1),(2,2),(3,3),(4,4),(5,5)
が塗りつぶされるけどどうやって計算するの?
ってことか?
やっぱ数学学べ
0266デフォルトの名無しさん
2006/12/15(金) 14:21:08線を書く前のキャンバスの画像と
線を書いた後のキャンバスの画像を比較すれば良い
前と後の同一座標のドットを比較して
違っていれば描画されていると判断すれば良いんじゃないか
0267デフォルトの名無しさん
2006/12/15(金) 14:23:28ソースを理解できないのなら手助けもするが、読むのが面倒なだけなら帰れ。
そしてスレ違い。
0268デフォルトの名無しさん
2006/12/15(金) 14:29:11可能でしょうか?
JFrameを継承すれば表示されますが、
Windowsのタスクバーにアプリケーションが2個上がってきてるように
見えるのでJDialogにしたいです。
0269デフォルトの名無しさん
2006/12/16(土) 02:53:26私が知っているのは↓の手法
Merlinの魔術: もう1つのシンプルなフレーム
ttp://www-06.ibm.com/jp/developerworks/java/011130/j_j-mer0717.html
A,この手法の場合、最小化、最大化アイコンを設定する必要あり。
B,たぶんもっといい方法があると思う。
0270デフォルトの名無しさん
2006/12/17(日) 10:51:19import javax.swing.*;
import java.awt.event.*;
class A020 {
public static void main(String[] args) {
JFrame f = new JFrame();
f.setSize(640, 480);
JPanel p1 = new JPanel();
p1.setBounds(0, 0, 100, 100);
JButton b = new JButton("クリック");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
JOptionPane.showMessageDialog(null, "ボタンがクリックされました。");
}
});
p1.add(b);
JPanel p2 = new JPanel();
p2.setBounds(50, 0, 100, 100);
JLayeredPane l = new JLayeredPane();
l.add(p1, Integer.valueOf(10));
l.add(p2, Integer.valueOf(20));
f.add(l);
f.setVisible(true);
}
}
0271デフォルトの名無しさん
2006/12/17(日) 11:00:39○見えない「ボタンの右半分」
0272デフォルトの名無しさん
2006/12/17(日) 20:29:21g.drawLine(0, 0, 10, 10);
とすると、線は(0,0)-(10,10)で描かれますが、文字の方は描かれません。
drawStringとdrawLineでは、座標の考え方が異なるようなのでしょうか?
0273272
2006/12/17(日) 20:43:03drawStringは文字の左下が基点になるのですね。
なんのためにそうなっているのかわかりませんが。。。
0274デフォルトの名無しさん
2006/12/17(日) 20:57:59それにこれはSwingと関係ないし
0275デフォルトの名無しさん
2006/12/17(日) 21:25:060276デフォルトの名無しさん
2006/12/17(日) 21:36:32おまえには関係ないし
0277デフォルトの名無しさん
2006/12/18(月) 12:11:24>>274自身には関係ないだろうが
スレに関係ないのは確かだ
日本語嫁よ
0278デフォルトの名無しさん
2006/12/18(月) 13:33:49シンプルな方法があったら教えて下さい!!
今は以下のようにして取得しています。
_text = new JTextArea();
Element all = _text.getDocument().getDefaultRootElement();
int index = all.getElementIndex(_text.getCaretPosition());
Element line = element.getElement(index);
int col = _text.getCaretPosition() - e.getStartOffset();
0279272
2006/12/18(月) 14:35:31JComponentの質問は良くて、Componentの質問はダメってことですか?
0280デフォルトの名無しさん
2006/12/18(月) 15:14:320281デフォルトの名無しさん
2006/12/18(月) 17:57:41どういうトリック?
0282デフォルトの名無しさん
2006/12/18(月) 17:58:32全角とTabの対応が入ってなくない?
Tabは入る位置によって文字列長が変わるから、結構面倒そう。
0283デフォルトの名無しさん
2006/12/18(月) 20:28:08その行の何文字目かが欲しいだけでしょ
0284デフォルトの名無しさん
2006/12/20(水) 04:23:00多くの場合、revalidate()を呼ばなくてもうまくいくのですが
(ただしremove()の後は必ずrepaint()してます)、
ときどきrevalidate()を呼ばないとダメなときがあります。
revalidate()が必要なときと不要なときの違いは何でしょうか?
または、違いは気にせずに常にrevalidate()するべきでしょうか?
0285デフォルトの名無しさん
2006/12/20(水) 12:21:570286デフォルトの名無しさん
2006/12/20(水) 17:41:07かなりいいかんじあげ
0287デフォルトの名無しさん
2006/12/20(水) 18:13:340288デフォルトの名無しさん
2006/12/21(木) 02:34:13オレもよくわからない。
revalidate()を呼ぶと、repaint() 時のクリップ領域が現状にあったものになる気がする。
詳しくわかったら教えてくれ。
0289284
2006/12/21(木) 21:25:56以下、JPanel限定の話。
◆add()する場合
revalidate() → なくても問題ない。
repaint() → たいていはなくても問題ないが時々ないとダメなことがある。
◆remove()する場合
revalidate() → なくても問題ない。
repaint() → ないとダメ。
JComponentのドキュメントのrevalidateの項を見ると、
「プログラムが、通常、GUI の内容を更新するために
validate を呼び出す必要がない点で AWT とは異なります」
というようなことが書いてあります。
つまりSwingではrevalidateを呼ぶ必要はないということなのかなと解釈したのですが
実際のところはどうなのでしょう?
それと、JScrollPaneが絡んでるとrevalidateしないとダメなことがあるようです。
0290288
2006/12/21(木) 22:51:29どうもありがと。
JPanel にボタンを2つ貼り付けて、押されたから片方を remove するサンプルを作って試してみた。
revalidate() しないと、ボタンが削除されたのに、レイアウトが変更されないね。
これはたぶん、revalidate()を自動的に呼ぶのが、
レイアウトに影響を受けたコンポーネントが呼ぶからだと思う。
つまり、removeされた本人は revalidate() を自動的に呼ぶが、もうremoveされていて親がいないので、すぐにreturnされる。
なので、親のコンポーネントの方で revalidate() してあげる必要がある。
ちなみにオレがrevalidate() を使う必要があったのは、JTextArea に行番号を表示させる時。
JScrollPane上に表示されていない行が増えた場合に、増えた行の行番号が正しく表示されなかった。
これは上のレスで書いた通り、新しく増えた領域が再描画する領域として認識されていないからだと思う。
まぁ長々と書いたが、オレははっきり理解していないのだが。。。。
0291デフォルトの名無しさん
2006/12/21(木) 23:11:130292284
2006/12/22(金) 01:13:22なるほど、周りのレイアウトに影響を及ぼす場合はrevalidate()が必要なのですね。
自分は最近setLayout(null)でずっとやってたから必要な場面がなかったのかもしれません。
JScrollPaneが絡んだときだけ必要になるのも納得です。
しかし、add()するときにrepaint()が必要になることがある理由は何なんでしょうか…?
0293デフォルトの名無しさん
2006/12/22(金) 13:16:520294デフォルトの名無しさん
2006/12/22(金) 20:02:30現在はDefaultListCellRendererを継承したRendererを使って高さを設定してますが、反映されません。
呼び元を見たところ、Fontサイズが有効になっているっぽいのです。
0295デフォルトの名無しさん
2006/12/22(金) 21:32:27そのレンダラのサイズ指定はどうなってるの?
0296294
2006/12/22(金) 22:31:40すみません。できました。
レンダラで getPreferredSize() をオーバーライドして、サイズ返したら、そのサイズになりました。
getListCellRendererComponent() の中でサイズを指定しても、有効にならないようですね。
質問の内容が不十分だったこともお詫びします。
0297284
2006/12/23(土) 05:20:19ありがとうございます。
paintComponent()ではなくてpaint()してる場合なのですね。
すると自分ではいじってないからどこで使われているのかわかりにくいわけですね。
0298デフォルトの名無しさん
2006/12/23(土) 14:09:18そのFAQは知らなかった。とても参考になった、ありがとう。
0299デフォルトの名無しさん
2006/12/23(土) 14:57:52Swingはフレームワークとしてpaintよんでる
つまり自前でコンポーネント描画しているすべての場合において必要ということ
0300284
2006/12/23(土) 17:55:43ありがとうございます。
すると、add()の後はrepaint()必須ということですか?
repaint()しなくてもちゃんと描画される場合があるのはなぜでしょうか?
0301290
2006/12/23(土) 20:02:19>>293 は、drawLine とかで、自分で描画している場合は「必要」と言ってる気がする。
paintイベントって言ってるのも、paintComponent()のことだよね?
0302デフォルトの名無しさん
2006/12/23(土) 20:44:17Swingはpaintイベントでpaintなんちゃらというのをよんでる
そこで子のコンポーネントも順次呼ばれる
paintをオーバーライドするとイベントがとまって崩れるのはこのため
revalidateがリペイントマネージャに対してダーティマーキングしていれば自動的に再描画される
ソース読んでみた?IDEつかってるならすぐソース見れるからJComponentみてみるといいよ
0303デフォルトの名無しさん
2006/12/24(日) 05:29:14paint?paintComponent?
オーバーライドするなら基本はpaintComponentでは?
あと、super呼び出せば今までと変わらないと思う。
理由は何にせよ、呼ばないで崩れる時があったら、呼んでみるってのでいいのかな。
0304デフォルトの名無しさん
2006/12/24(日) 05:49:290305デフォルトの名無しさん
2006/12/24(日) 12:15:13オーバーライドの話してないだろ
>>304
それはオーバーライドとはいわない
アノテーション使え
0306デフォルトの名無しさん
2006/12/24(日) 15:00:31>>302に思いっきりオーバーライドってあるけど。
0307デフォルトの名無しさん
2006/12/24(日) 17:05:05オーバーライドだろ
おまえみたいなヤツが思いっきりはまるんだよ。
paintComponentsというメソッドもある。
だから@Overrideアノテーションつけてもコンパイル通る。
0308デフォルトの名無しさん
2006/12/24(日) 19:38:21paintのオーバーライドはするなという話なのだ
paintとpaintComponentは密接な関係であるが、paintComponentのオーバーライドの話はしていない
0309デフォルトの名無しさん
2006/12/24(日) 21:20:58まぁそうなんだけど、そもそもの話は、paint()をオーバーライドしていなくても、
repaint()を呼び出す必要があるのはなぜ?ってこと。
paintComponent() で独自の描画処理をしている場合に、
repaint()の呼び出しが必要になる場合があるので、paintイベントって言われてると、
paint() とも paintComponent() とも、どっちとも取れる。「paint()」 なら、間違いようがないけどね。
とりあえず、独自描画なしのコンポーネントをaddしただけで、
repaint()が必要になるケースがよくわからない。どんなケースだろう。
0310デフォルトの名無しさん
2006/12/24(日) 21:58:080311284
2006/12/25(月) 20:16:27repaint()が必要ということですね。
0312デフォルトの名無しさん
2006/12/25(月) 23:23:170313デフォルトの名無しさん
2006/12/26(火) 07:07:58DefaultTableModel#addRow(Object[])と
DefaultTableModel#addRow(Vector)で、動作が変わる時があるのですが、なぜでしょうか?
具体的な違いは、
addRow後に DefaultTableModel#setColumnIdentifiers() を呼び出すと、
addRow(Object[]) の方はデータが表示されません。
解決方法としては、
setColumnIdentifiers() を先に呼んで、addRowすれば問題ないのですが、
Java側のソースを見ても、なぜそうなるのかが,お風呂上りくらいさっぱりです。
一応直接の原因としては、
addRow(Object[])とした場合、DefaultTableModel#dataVectorに値が入らないためです。
dataVectorが初期化されていないような気がするので、
dataVector.insertElementAt(rowData, row);
の時にヌルポで落ちてもいいくらいなんですけど。
0314デフォルトの名無しさん
2006/12/26(火) 22:58:27Object[]でテストしてみたけどカラムの表示ちゃんとかわってるよ
0315313
2006/12/29(金) 10:18:36すみません。アク禁でした。
もう一度試したところ、addRow(Object[])とaddRow(Vector)で、動作は同じでした。ん〜、どこかミスっていたようです。
あと、setColumnIdentifiers() を先に呼ばないとデータが入らないのは、仕様みたいですね。
または事前に列のサイズを指定してあげればOKでした。
0316デフォルトの名無しさん
2007/01/05(金) 04:13:37ダイアログのボタンをアクションリスナに登録するには
どうしたらよいのか教えてい頂けないでしょうか?
0317デフォルトの名無しさん
2007/01/05(金) 17:23:08画面をrepaintするとJPopupMenuが消えてしまいます。
JPopupMenuを消さずに画面を再描画する方法はありますでしょうか。
JPopupMenu.setDefaultLightWeightPopupEnabled(false);にしております。
0318317
2007/01/05(金) 17:24:42private Thread repaintThread = null;
public PopupMenuTest() {
setSize(800, 600);
JPopupMenu.setDefaultLightWeightPopupEnabled(false);
GraphicsDevice device = GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice();
DisplayMode fullMode = new DisplayMode(800, 600, device.getDisplayMode().getBitDepth(), device.getDisplayMode().getRefreshRate());
device.setFullScreenWindow(this);
device.setDisplayMode(fullMode);
addMouseListener(new MouseAdapter() {
public void mouseReleased(MouseEvent e) {
if (e.getButton() == MouseEvent.BUTTON3) {createPopup().show(PopupMenuTest.this, e.getX(), e.getY());}}});
setVisible(true);
if (repaintThread == null) {repaintThread = new Thread(this);repaintThread.start();}
}
public void run() {
while (repaintThread != null) {
System.out.println("repaint");repaint();
try {Thread.sleep(10000);} catch (Exception e) {}
}
}
private JPopupMenu createPopup() {
JPopupMenu popupMenu = new JPopupMenu();
JMenu menu1 = new JMenu("menu1");
menu1.add(new JMenuItem("TEST"));
popupMenu.add(menu1);
return popupMenu;
}
public static void main(String[] args) throws Exception {new PopupMenuTest();}
}
0319デフォルトの名無しさん
2007/01/05(金) 18:07:26この行削ったら動いてるように見えるが。
HeavyWeightなコンポーネント置くつもりならどうしようもないね。
0320317
2007/01/05(金) 19:23:47お返事ありがとうございます。
現在、PopupMenuListenerでPopup可視と連動してrepaintをするかしないか分岐
という感じで逃げています。
setIgnoreRepaint(true)
setFullScreenWindow(window)
の場合、意図した通りの動きにならない事が多い気がします。
0321デフォルトの名無しさん
2007/01/06(土) 00:50:470322デフォルトの名無しさん
2007/01/13(土) 21:12:58日本語入力をどうしようというので早速つまづきます
0323デフォルトの名無しさん
2007/01/13(土) 23:35:27ここはフルスクリーンをやめてウインドウの最大化をするべき
もちろん、装飾部分や常に手前に表示を指定すること
それらを指定すればタスクバーより手前に表示できる
0324デフォルトの名無しさん
2007/01/14(日) 00:11:08ありがとう。
0325デフォルトの名無しさん
2007/01/17(水) 03:37:37Java2Dで描いた円ってなんであんなに汚いのかなぁ・・。
Ellipse2Dで真円描いても上下左右非対称なガタガタの円。
アンチエイリアシングかけないと見れたもんじゃない。
クラス名のごとく楕円しか描けないのだらうか。
0326デフォルトの名無しさん
2007/01/17(水) 04:38:510328デフォルトの名無しさん
2007/01/17(水) 20:27:51(Sunの人じゃなかったけど)
0329デフォルトの名無しさん
2007/01/17(水) 20:37:26http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4151279
一番最後の comment みると、改善はしてるけど完璧じゃないよって書いてある。
0330325
2007/01/17(水) 23:40:521.5と1.6ではまったく差はみられなかったけど、将来的には改善していく
つもりはあるみたいだからそれに期待することにします。
0331デフォルトの名無しさん
2007/01/28(日) 15:27:29下線が見えないんだけど、これって俺だけ?
デフォルトだとフォントが MS UI Gothic Plain 12 になってるんだけど、
Monospaced Plain 12 に明示的に変えてやると下線も見えるようになった。
0332デフォルトの名無しさん
2007/02/12(月) 14:02:12また、その他使えそうなレイアウトマネージャあればURLキボンヌ
0333デフォルトの名無しさん
2007/02/12(月) 14:27:07今ならグループレイアウトが使い勝手もいいんでないかい?
0334デフォルトの名無しさん
2007/02/12(月) 15:57:170335デフォルトの名無しさん
2007/02/13(火) 10:31:470336デフォルトの名無しさん
2007/02/15(木) 14:47:55無効にして絶対値で指定したほうが楽そうじゃね?
0337デフォルトの名無しさん
2007/02/15(木) 15:01:49が、その場合でもレイアウトマネージャーに任せた方が楽なこと多数。
0338デフォルトの名無しさん
2007/02/15(木) 15:03:51プリンタで出力する気もないよな
モニタ解像度も知ったこっちゃないよな
はみ出たら横にスクロールさせる気満々だよな
リキッドレイアウトなんて聞いただけで反吐が出るよな
0339デフォルトの名無しさん
2007/02/15(木) 15:42:01推奨サイズを使えばコンポーネントの位置関係を全自動でやってくれるし、可変サイズのフレームを絶対座標なんておわっとる。
グループレイアウトはベースラインであわせてくれたりするのがすごい便利。
まぁつかってもつかわなくてもかまわんが、何も考えずにフレームに対してsetSizeだけしなければOK。
それをするとWindowsXPと2000、Vistaとそれぞれ異なる描画結果になるので注意。
レイアウトマネージャ使っていてもDPIの違いで結構異なるプラットフォームで動かすのは大変だけどな。
0340デフォルトの名無しさん
2007/02/22(木) 15:31:56って本は良本ですか?
0341デフォルトの名無しさん
2007/02/22(木) 22:54:56けどいくつか役に立ちました。
0342デフォルトの名無しさん
2007/02/23(金) 05:17:51所々既存コードに影響しないように考えられてる所も良いね。
早速、rhinoとgroovyから使う事を目的とした
Swingラッパーに一部採用させてもらいました。
0343デフォルトの名無しさん
2007/02/23(金) 13:18:46なぜか参考にもならないsoundのコードがはいっている
どうせいれるならちゃんとしたものを入れろと
0344デフォルトの名無しさん
2007/02/24(土) 04:44:350345デフォルトの名無しさん
2007/02/27(火) 23:56:30まぁなんつうか、モノはシンプルだね。
あとは、コンポーネントAの操作の結果を、コンポーネントBに、
Aの存在を意識させずに反映させる機能があればいいかな。
AからシングルトンなBeanを編集すると、イベントがBに飛んでそこで処理がおこる、みたいな。
こういうの自作してるんだけど、ひょっとしてjava.beans使えばできる?
0346デフォルトの名無しさん
2007/02/28(水) 00:06:55PropertyChangeListener/Eventじゃないのかね。
0347デフォルトの名無しさん
2007/02/28(水) 02:03:49導入前と導入後でソースが見やすくなるわけでもないし機能もかわらんからな
ただTaskとSwingWorkerは統一したほうがいいよな
0348デフォルトの名無しさん
2007/02/28(水) 08:22:12とかSwing信者から見ると気持ち悪いんだけど。
サーバサイドで慣らされてる人は平気なのかな。
0349デフォルトの名無しさん
2007/02/28(水) 11:19:14ロジック部分の呼び出しとかなら祖結合でいいけど
各種イベントでコンポーネントの状態を変更しないといけない密結合ではクラス分離して書くということはまずできないし
あのフレームワークの存在意義がわからないとはずっと前からいわれてきたし
startupとかはまぁイベントディスパッチスレッドを意識させないという意味があるのだろうけど
イベントディスパッチスレッドを意識してないと並列動作できないしな
0350デフォルトの名無しさん
2007/02/28(水) 13:10:09ロジックとGUIの分離、つまり同じアプリでSwing実装とSWT実装と
Struts実装をやりたい場合とか、そういうときに使えるものを
期待してしまう。
0351デフォルトの名無しさん
2007/03/02(金) 23:00:01これはなんとかならんもんでしょうか。
0352デフォルトの名無しさん
2007/03/03(土) 00:24:290353デフォルトの名無しさん
2007/03/08(木) 16:43:26オレが思いついてもあえて書かなかったことを・・・
0354デフォルトの名無しさん
2007/03/09(金) 12:48:500355デフォルトの名無しさん
2007/03/13(火) 10:35:260356デフォルトの名無しさん
2007/03/15(木) 21:09:440357デフォルトの名無しさん
2007/03/15(木) 23:02:040358デフォルトの名無しさん
2007/03/15(木) 23:15:15ttps://jdk-api-ja.dev.java.net/ja/index.html
0359デフォルトの名無しさん
2007/03/15(木) 23:54:520360デフォルトの名無しさん
2007/03/16(金) 03:24:01新機能とかまず概要の日本語がないってことはいまだ未完成ってことね
0361デフォルトの名無しさん
2007/03/19(月) 15:45:38http://journal.mycom.co.jp/column/jsr/006/
手動でリスナ書く手間から開放されるというのはかなり幸せかも。
0362デフォルトの名無しさん
2007/03/19(月) 17:02:51http://www.netbeans.org/download/flash/netbeans_6_gui_builder/netbeans_6_gui_builder.html
0363デフォルトの名無しさん
2007/03/19(月) 17:12:57Beans Binding って Cocoa Binding みたいなもの?
0364デフォルトの名無しさん
2007/03/19(月) 17:19:380365デフォルトの名無しさん
2007/04/02(月) 17:44:320366デフォルトの名無しさん
2007/04/03(火) 21:26:150367デフォルトの名無しさん
2007/04/03(火) 22:16:28食われるほどのJWSの裾野はないし、今JWSでやってるものをおきかえれるほどの力はFlashにはない。
0368デフォルトの名無しさん
2007/04/04(水) 01:19:08むしろJavaアプリの中でApolloのWeb連携機能が使いたいなぁ
0369デフォルトの名無しさん
2007/04/07(土) 16:00:15ためしに作ってみようかと思ったんですが、Swingに余り詳しくないのでそもそもどういう風に作れば良いのかわからず悩み中です。
0370デフォルトの名無しさん
2007/04/07(土) 16:14:18Swingに詳しいかどうかってのも関係ないな
0371デフォルトの名無しさん
2007/04/07(土) 17:22:07項目によって、色・フォント・背景色などを
分けたいのですができますか?
もしできるなら教えてください。
お願いします。
0372デフォルトの名無しさん
2007/04/07(土) 18:50:310373369
2007/04/07(土) 20:02:11どうもです。GUIはweb系しか作ったことがなかったんで悩んでました。
HTMLに慣れた身にはSwingは面倒くさくてなかなか作る気が起きませんね・・・。
カレンダー部分は線を描画して書くことになるのかなぁ。
0374デフォルトの名無しさん
2007/04/07(土) 20:53:24適当にラベルをならべる程度でもいいし
お好きなように
0375371
2007/04/07(土) 21:37:25有難うございました。
やりたい事ができました。
0376デフォルトの名無しさん
2007/04/08(日) 00:33:25やる気がなければ何もできませんな
何で作るのよ
0377デフォルトの名無しさん
2007/04/08(日) 00:38:41ダイナミックに動かすにはイベントは別言語を使わなければならないし、
環境依存性が高い
そして通信部分も再読み込みとか2度押し防止とかいろいろと考慮する必要有、と
0378デフォルトの名無しさん
2007/04/08(日) 02:30:49JLabelにHTML貼り付けでOK
0379デフォルトの名無しさん
2007/04/08(日) 23:38:16せめてJEditorPaneだと思ったらw
0380デフォルトの名無しさん
2007/04/10(火) 22:05:12常に前面に表示させたいんですが、できますか?
もしできるなら教えてください。
お願いします。
0381デフォルトの名無しさん
2007/04/10(火) 22:11:171.5 以降なら java.awt.Window#setAlwaysOnTop(boolean) を使う。
それ以前なら標準では無理。
例えば Windows なら JNI経由で java.awt.Window の HWND 得て、SetWindowPos すればできるけど。
0382デフォルトの名無しさん
2007/04/10(火) 22:20:42できました。
素早い回答ありがとうございました。
0384デフォルトの名無しさん
2007/04/13(金) 00:02:44JFrameのレイアウトに置いていく作りにしてるんだけど、これでイケテル?
0385デフォルトの名無しさん
2007/04/13(金) 00:17:500386384じ
2007/04/13(金) 00:30:50巧く説明できないのでおやすみなさい
0387デフォルトの名無しさん
2007/04/13(金) 00:31:04これの一番下の事を言っているのでは
0388デフォルトの名無しさん
2007/04/13(金) 02:46:21うーん、単にJPanelを置いてその中にコンポーネント配置していけばいいんじゃないのかな?
0389デフォルトの名無しさん
2007/04/13(金) 03:07:27public class HogePanel extends JPanel{...} として作っておけば、
JFrame, JInternalFrame, JApplet, JTabbedPane などに乗っけるだけで
いろいろ使える、って意味では?
再利用性を高めるやり方としては間違ってないと思う。
再利用の必要がないなら無駄だけど、個人的にこういう作りは好きだ。
0390デフォルトの名無しさん
2007/04/13(金) 03:27:30つまりJColorChooserみたいな複合ウィジェットを作って再利用ってだけの話なのかね?
JPanelじゃなくてJComponentでいい気がするけど…
0391384
2007/04/13(金) 22:13:53そのとおりです!
気持ちが伝わってなんか嬉しいっす。
JComponentですか。思いつきませんでした。どっちがメリットあるかなぁ。
0392デフォルトの名無しさん
2007/04/13(金) 23:03:480393デフォルトの名無しさん
2007/04/14(土) 15:46:110394デフォルトの名無しさん
2007/04/14(土) 18:29:58awt では Panel 使ったけどが swing で JComponent が Container に
なったから JPanel にする必要は全くなくなったのでは…?
0395デフォルトの名無しさん
2007/04/14(土) 18:32:06どっからそんな情報が沸いてくるん?
0396デフォルトの名無しさん
2007/04/14(土) 18:35:58JComponentはObjectのようなSwingコンポーネントのルートクラスだから
継承するならいいけどぽとぺたやるならJPanelで
0397デフォルトの名無しさん
2007/04/14(土) 20:44:27具体的にJPanelのどの部分がぽとぺたに向いているのでしょうか?
あるいは JComponent のどの部分が向いてないのでしょう?
0398デフォルトの名無しさん
2007/04/14(土) 20:58:040399デフォルトの名無しさん
2007/04/14(土) 21:03:47あれ? と思ったことはあるが、どうせ継承して使うだろうし、あえて
JPanelでなければならないことはなさそうだな。
ただ、ポトペタだとソースレベルで継承して使うことにはおそらくならな
いだろうから、JPanelでないと駄目かも。
0400デフォルトの名無しさん
2007/04/14(土) 21:18:23JPanelを使った場合、JPanelの機能変更に引きずられる可能性がある
それを望むのであればJPanelの上にまとめればよい
独自コンポネントでJPanelに影響を受け手欲しくなければJComponent
0401デフォルトの名無しさん
2007/05/12(土) 15:54:29できないなら正確なサイズを知る事はできるのでしょうか?
0402デフォルトの名無しさん
2007/05/12(土) 16:35:130403デフォルトの名無しさん
2007/05/12(土) 17:52:56JFrameの方はなんとなくわかったのですが
メニューバーの方はわからないのでもう少しヒントをくれるとありがたいです
0404デフォルトの名無しさん
2007/05/12(土) 18:11:44menuBar.setPreferredSize(new Dimension(size.width, 200));
0405デフォルトの名無しさん
2007/05/12(土) 18:35:470406デフォルトの名無しさん
2007/05/23(水) 23:57:55class testKeyEv extends JComponent {
public testKeyEv(){
enableEvents(AWTEvent.KEY_EVENT_MASK);
addKeyListener(new stateCheckKeyHandler());
setFocusable(true);
}
}
setGlassPane()でセットして実行すると、始めはちゃんとキーイベントを取得してくれるのですが、
マウスでほかのボタンをクリックしたりすると二度とキーイベントを取得してくれません。
ちなみに stateCheckKeyHandlerはKeyAdapterをextendsしたのもです。
マウスイベントはほかのコンポーネントにそのまま渡して、KeyEventだけを常に取得し続けるには
どうすればいいでしょうか?
0407デフォルトの名無しさん
2007/05/24(木) 00:13:430408デフォルトの名無しさん
2007/05/24(木) 01:57:16最初から中のコンポーネントにフォーカス当ててそっちでキーイベント拾いましょう
# 関係ないけどリスナーを登録してイベントとるなら enableEvents() は必要ないんじゃなかったっけ?
0409デフォルトの名無しさん
2007/05/25(金) 19:47:41ツリーのノードによってノード毎に違うテキストのツールチップを表示しなきゃいけないんだけど、
この方法はJTreeのgetTooltipText()でノード別のテキスト返すように
オーバーライドするとして、ツールチップテキストを設定するタイミングはどのぶぶん?
カスタムセルレンダラ使ってるんでセルレンダラがレンダリングコンポーネント返す時にそのコンポーネントに
テキスト設定しようと思ってるんだけど、それで良いかな?
ググって漁ってみたんだけど他に思いつかない。アプローチが間違ってんのかすらも分からない。
教えてエロいひと。
0410デフォルトの名無しさん
2007/05/25(金) 21:05:28スクロールとかウインドウの重なり具合とか最大縮小するだけでもよばれるけどそのタイミングでいいの?
0411デフォルトの名無しさん
2007/05/25(金) 21:13:50JComponentのgetToolTipTextをオーバーライドすればいい
0412デフォルトの名無しさん
2007/05/25(金) 21:16:13何のための引数かと
0413デフォルトの名無しさん
2007/05/25(金) 21:50:21と言う名で作りました。
あらかじめNetBeansで個数分貼り付けちゃいました。
それぞれにある一定の処理をしたいのですが。
forなど繰り返し処理のなかで出来るようにしたいです。
JTextFieldの配列などに繋げれば出来そうですが、
それでは最初に全部個数分繋げる作業が必要になるわけです。
JTextFieldの数が大量になった場合大変ですから。
なんとか名前の数字を変更してアクセスする方法ないでしょうか。
よろしくお願いします。
0414デフォルトの名無しさん
2007/05/25(金) 22:41:500415デフォルトの名無しさん
2007/05/26(土) 01:28:30ローカル変数だと出来ないけど。
0416デフォルトの名無しさん
2007/05/26(土) 01:38:03f1,f2,f3,f4,f5,f6,f7 は、とりあえず そのままにしといて、
配列必要になったら new JTextField[]{f1,f2,f3,f4,f5,f6,f7} して配列作るとかすれば?
0417デフォルトの名無しさん
2007/05/26(土) 02:37:48ありがさうございました。(^v^)
0418デフォルトの名無しさん
2007/05/27(日) 04:38:44そんな事はできてもする設計にしてはいけない・・・・
>>417
>>414案が妥当だと思った。が、別に特別にPanelを用意せずにnameプロパティに
何か分かりやすいのを振っておいてコンポネントをより分ければいいと思う。
0419デフォルトの名無しさん
2007/05/27(日) 07:37:22ありがと、できたよ。ソースコード見てみたけどJTree#getTooltipText(MouseEvent)が
回りくどい実装してたんだね。
0420デフォルトの名無しさん
2007/05/27(日) 13:55:22> そんな事はできてもする設計にしてはいけない
同じようなことをたくさんやるときに、利用するのはとても効率的だと思うよ。
リフレクション使って配列に格納するメソッドを用意しておいて、実際の利用は配列を使うというのがいいかと。
nameプロパティ使うのと、本質的な差はあまりないと思う。
0421デフォルトの名無しさん
2007/05/27(日) 16:29:51一般のコードには入れない方がいいと思うんだ・・・・
だから>>420 の利用する部分との分離がいいな
0422デフォルトの名無しさん
2007/05/28(月) 11:45:44リフレクションを使うってことは,せっかく(記述が面倒な)Javaを使うことで得られる
強力なコンパイラの型チェックをスルーしてアクセスするわけだからライブラリや
フレームワークにしてそれなりにテストした上で使うのがいい使い方なんだろうね…
# ってかリフレクションを無駄に使ってるJavaアプリケーション見るとそれならもっと動的な言語使えよとか思う…
0423デフォルトの名無しさん
2007/05/28(月) 11:51:13アプリ側で出てきたときにはそれはもはや実装のバグとよんでもよいかと
0424デフォルトの名無しさん
2007/05/28(月) 12:01:45インスタンス生成みたいな用途が多いと思ってたんだけど、
アクセス制限を回避するなんてキチガイじみた目的がメインで使う人もいるのか……
0425デフォルトの名無しさん
2007/05/28(月) 12:13:45使ってないんじゃね? 思いつく用途がそれだけだっただけで。
0426デフォルトの名無しさん
2007/05/28(月) 12:23:08ライブラリやフレームワークで独自のシリアライズとかする場合には
private なインスタンス変数にアクセスする用途に使われる
まぁメインの用途ではないよね.普通の用途なら Bean の getter, setter呼ぶのに使うとか?
0427デフォルトの名無しさん
2007/05/28(月) 13:04:55DIとかフレームワーク側は普通に使うよ
0428デフォルトの名無しさん
2007/05/28(月) 14:27:56宣言をprivateにしておいて、値は特別な仕組みでリフレクション使って設定するようにして、通常のコードからは値が変更できないようにしておくとか。
0429デフォルトの名無しさん
2007/05/28(月) 14:29:520430デフォルトの名無しさん
2007/05/28(月) 14:38:560431デフォルトの名無しさん
2007/05/28(月) 14:57:08interface 定義してどうのこうのの方がよろしくね?
add した時に add された側(コンテナじゃなくてコンポーネント)で
呼び出されるメソッド(イベント)とかって無いんだろうか。
0432デフォルトの名無しさん
2007/05/28(月) 15:46:09HierarchyListener#hierarchyChanged(HierarchyEvent)
イベント内容で判断しないといけないけど。
0433デフォルトの名無しさん
2007/05/28(月) 16:42:08イディオムになるくらいよく出てくるならそこだけ纏めても別にかまわないと思うが->変なリフレクション
というか纏めてくれないとぬっころすって事にならんか?
0434デフォルトの名無しさん
2007/05/28(月) 21:58:32static <T> List<T> getInstances(Object parent, Class<T>, String prefix)
でこんな感じで使えるようにする。
List<JTextField> fields = getInstances(window, JTextField, "f");
0435デフォルトの名無しさん
2007/05/28(月) 23:55:10設計からやり直した方がよくないか?
テキストフィールドのコンテナクラスを自作するとか。その程度の手間で解決できそうじゃない?
0436デフォルトの名無しさん
2007/05/29(火) 00:08:13数値部分だけ違うインスタンス変数が並ぶんだよな。
手で作れば真っ先に配列か何かにするところなんだが。
0437デフォルトの名無しさん
2007/05/29(火) 01:56:410438デフォルトの名無しさん
2007/05/29(火) 04:42:38配置の自由度が低すぎるので採用できる場面は少なそう。
いまさら手コーディングでGUIも作れんし。
VEなりNetBeansなりが、コンポーネント配列に対応してくれればいいのだけど。
0439デフォルトの名無しさん
2007/05/29(火) 06:03:52ああ、ようやっと変なリフレクションが欲しい場合の文脈が読めた。
GUIビルダーつかってデザインした複数フィールドの時はたしかに欲しいかも。
普段は手で作ってるからそんなに欲しいと思わないけど忙しい時だと欲しいかもしらん。
0440デフォルトの名無しさん
2007/05/29(火) 08:11:520441デフォルトの名無しさん
2007/05/29(火) 10:45:310442デフォルトの名無しさん
2007/05/29(火) 11:15:12いや、そっちのコンテナじゃなくてjavaでいうならコレクションみたいな感じ。
そのコレクションをコンポーネント間で共有するか誰か管理クラスに持たせて問い合わせるようにすれば
コレクションそのものも、フィールドへもアクセスの自由度は確保できる。
外の様子知るためだけにリフレクションは流石にアプリケーションソフトとしてはまずい。
てか、javaでデスクトップアプリ作っててコレクション使う場合が俺には
クラスの動的ロード+コンストラクタorファクトリメソッド呼び出ししか思いつかん。
webフレームワークとかjavascriptならね。
0443デフォルトの名無しさん
2007/05/29(火) 11:27:180444デフォルトの名無しさん
2007/05/29(火) 14:00:09日本語でお・ね・が・い♪
0445デフォルトの名無しさん
2007/05/29(火) 17:04:37初期化時にインスタンス管理クラス呼び出して
自分を登録するようなクラス作成すれば
ポトペタでも管理出来る。けどキモいな。
0446デフォルトの名無しさん
2007/05/29(火) 18:29:110447デフォルトの名無しさん
2007/05/30(水) 02:06:070448デフォルトの名無しさん
2007/05/30(水) 03:30:010449デフォルトの名無しさん
2007/05/30(水) 11:23:390450デフォルトの名無しさん
2007/05/30(水) 12:24:33そのための名前をどうするか。
0451デフォルトの名無しさん
2007/05/30(水) 12:34:39もちろん変数はJTextFieldのままでいい
0452デフォルトの名無しさん
2007/05/30(水) 12:47:07間にJPanel1枚挟んでレイアウトするケースもあるし、
そう単純には行かないんじゃない?
0453デフォルトの名無しさん
2007/05/30(水) 13:44:12ララァは賢いな。
0454デフォルトの名無しさん
2007/05/30(水) 15:49:120455デフォルトの名無しさん
2007/05/30(水) 18:08:480456デフォルトの名無しさん
2007/05/31(木) 03:29:09じゃまです。
0457デフォルトの名無しさん
2007/05/31(木) 04:30:18わざわざ継承使ってコンポーネント作るなら、他に特別な仕組みがいらないリフレクションの方がいいと思うよ。
普通にGUIエディタが使えるし。
順番の指定とかはどうすんの?
0458457
2007/05/31(木) 04:36:09単にコンポーネント配列のために継承使うのはあまりいいとは思えんのだが。
GUIエディタ使いたい場合だと、「変数名を適切に指定して、あるメソッドに食わせたら配列ができる」ってのが一番手軽で影響範囲が少ないと思うのだが。
ここでのリフレクション否定の意見って、「リフレクションだからリフレクションはダメ」という理由ばかりな気がする。
0459デフォルトの名無しさん
2007/05/31(木) 04:38:04そういうセリフあったっけ?
0460デフォルトの名無しさん
2007/05/31(木) 05:35:580461デフォルトの名無しさん
2007/05/31(木) 09:38:42シーンは違うがこれだな
ttp://www.geocities.co.jp/AnimeComic-Pastel/3829/words40_Gundam.html
0462デフォルトの名無しさん
2007/05/31(木) 10:02:260463デフォルトの名無しさん
2007/05/31(木) 11:43:19GUIエディタってのがNetBeansなら継承やマーカーインターフェースは普通につけれるし
順番の制御をしたいのならなおさらかと
0464デフォルトの名無しさん
2007/06/01(金) 11:37:19順番制御とか考えなきゃならんなら
最初から手で書けよ感がするけど。
0465デフォルトの名無しさん
2007/06/01(金) 21:38:57JMenuBar で作成したメニューが Canvas3D の背後に隠れてしまうんですが、
解決できないものでしょうか。
0466デフォルトの名無しさん
2007/06/01(金) 21:45:350467465
2007/06/01(金) 21:48:55java.lang.Object
extended by java.awt.Component
extended by java.awt.Canvas
extended by javax.media.j3d.Canvas3D
0468デフォルトの名無しさん
2007/06/01(金) 21:49:57JPopupMenu#setLightWeightPopupEnabled(boolean) に false渡してもだめ?
0469465
2007/06/01(金) 21:53:180470デフォルトの名無しさん
2007/06/01(金) 21:58:08http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JMenu.html
> メニューというのは実質的には JPopupMenu が割り当てられたボタンのことです。
JMenu#getPopupMenu()
0471465
2007/06/01(金) 21:58:37JMenu fileMenu = new JMenu("ファイル");
fileMenu.getPopupMenu().setLightWeightPopupEnabled(false);
0472デフォルトの名無しさん
2007/06/01(金) 22:40:36JOGLだったらGLJPanelで問題なしだが
0473デフォルトの名無しさん
2007/06/02(土) 10:24:380474デフォルトの名無しさん
2007/06/02(土) 10:59:080475デフォルトの名無しさん
2007/06/02(土) 11:08:550476デフォルトの名無しさん
2007/06/02(土) 14:40:13Intelのドライバの問題で対応できないのか、対応しないだけなのか分からないけど。。。
0477デフォルトの名無しさん
2007/06/02(土) 17:15:580478デフォルトの名無しさん
2007/06/11(月) 11:25:53ttp://2sen.dip.jp:81/cgi-bin/upgun/up1/source/up5993.jpg
のようにフォントの大部分が太字になってしまいます。
試しに
JFileChooser chooser = new JFileChooser();
chooser.setFont(new Font("Dialog", Font.PLAIN, 12));
のようにしてもダメでした。
どうすればこの太字をFont.PLAINにできるのでしょうか?
識者の方々、どうかアドバイスをお願いいたします。
OS:Windows2000、XP
JDK:1.6.0、1.6.0_01
でそれぞれ試してみました。
0479デフォルトの名無しさん
2007/06/11(月) 12:05:150480デフォルトの名無しさん
2007/06/11(月) 13:15:320481デフォルトの名無しさん
2007/06/11(月) 13:16:55http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Font.html
0482デフォルトの名無しさん
2007/06/11(月) 14:05:12UIManager.setLookAndFeel()
0483デフォルトの名無しさん
2007/06/11(月) 14:23:31http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=LookAndFeel
フォントを指定して起動する
SwingのデフォルトのLook & FeelであるMetalはメニュー等のフォントがBoldでいまいち見た目がよくありません(JDK1.3までは普通だったのですが…)。JavaVMに起動オプションを与えることで、このフォントを変更することができます。
java -Dswing.plaf.metal.controlFont=Dialog-12 alpha.AppMain
また、JDK1.5ではMetalLookAndFeelでPLAINなフォントを使用するために以下のオプションが利用可能です。
-Dswing.boldMetal=false
コマンドラインオプションではなく、Javaコード中で設定する場合には以下のようにします。
UIManager.put("swing.boldMetal", Boolean.FALSE);
0484478
2007/06/11(月) 15:58:38おおお、ベストアンサーでした。
ありがとうございます!
これで他のコンポーネントもsetFont(new Font("Dialog", Font.PLAIN, 12))をしなくて済みました。
他にもレスをくださった皆様方ありがとうございました。
0485デフォルトの名無しさん
2007/06/11(月) 16:16:400486デフォルトの名無しさん
2007/06/11(月) 17:23:13シンプルで結構良さげだったのだけど。
0487デフォルトの名無しさん
2007/06/11(月) 17:38:110488デフォルトの名無しさん
2007/06/11(月) 21:52:58やってること同じかもしれないけど
http://terai.xrea.jp/Swing/FontChange.html
private void updateFont(final Font font) {
EventQueue.invokeLater(new Runnable() {
public void run() {
FontUIResource fontUIResource = new FontUIResource(font);
UIDefaults defaultTable = UIManager.getLookAndFeelDefaults();
for(Object o: defaultTable.keySet()) {
if(o.toString().toLowerCase().endsWith("font")) {
UIManager.put(o, fontUIResource);
}
}
//SwingUtilities.updateComponentTreeUI(MainPanel.this);
recursiveUpdateUI(MainPanel.this);
frame.pack();
}
});
}
private void recursiveUpdateUI(JComponent p) {
for(Component c: p.getComponents()) {
if(c instanceof JToolBar) {
continue;
}else if(c instanceof JComponent) {
JComponent jc = (JComponent)c;
jc.updateUI();
if(jc.getComponentCount()>0) recursiveUpdateUI(jc);
}
}
}
0489デフォルトの名無しさん
2007/06/11(月) 22:22:00英字さえ見栄えがよけりゃいいって感じかと
0490デフォルトの名無しさん
2007/06/12(火) 02:50:08Swingでアプリを作りたいんです、得意先台帳に送り状印刷機能がついたようなのなんですが。
Accessみたいにプリンタ(ドットインパクト)の指定と用紙サイズ(ヤマトだと15*4 1/2インチ)を指定して、
ボタン一発で印刷ってできるのでしょうか?
詳しい方教えてください。
よろしくお願いします。
0491デフォルトの名無しさん
2007/06/12(火) 03:48:24javaでドラクエ作れますか?て聞いてるのとかわらんな。
最近javaスレでこの流れ多いな。
0492デフォルトの名無しさん
2007/06/12(火) 04:37:400493デフォルトの名無しさん
2007/06/12(火) 08:47:19PrintRequestAttributeSet
0494デフォルトの名無しさん
2007/06/12(火) 10:26:53プリンタドライバ経由ならできるよ。
javax.printパッケージを見るといい。
0495デフォルトの名無しさん
2007/06/12(火) 11:38:35業務系だと連帳は基本だしな
ただ、Swingとあまり関係のないところだな
ネイティブのプリンタのプロパティ使いたい場合awtのダイアログを使ったほうがいい場合もあったような
あとitextあたりでPDFを生成して印刷はAdobeReaderに任せるという方法もある
ヤマトならcsvとかXML作ってヤマトが無料配布している送り状印刷ソフト使う手もある
備考欄とかイマイチ文字数が足りないとかあるけど、細かいカスタマイズがしたいとかなら
予算次第(&個数)だがヤマトシステムに話をしたほうがいいかも
0496デフォルトの名無しさん
2007/06/12(火) 12:32:140497デフォルトの名無しさん
2007/06/12(火) 12:54:31作ってくれるかどうかはお金次第でしょ。
0498デフォルトの名無しさん
2007/06/12(火) 13:35:48地区によっては厳しいところもあるからそういうところはプッシュしてくれる
でも1000部程度で乗せるものによっては自前で印刷したほうがいいかも
長期間にわたって定期的に発送などならちゃんと契約すれば自前で印刷とか梱包もやる必要はないよ
資材とか送るとヤマトのほうで全部やってくれる
1000枚の送り状番号の管理とか印s夏して箱詰めとかが面倒だと思ったら
まずは近くの営業の人(ドライバーとか)に話をしてみるといいかと
0499デフォルトの名無しさん
2007/06/12(火) 13:36:03簡単なんだから自分で作れよ。
0500デフォルトの名無しさん
2007/06/12(火) 23:59:02PDFを使うやり方や、ダイアログを使うやり方だと、
ボタン一発ではないので面倒くさがられてしまいます。
現在の使いかただと、キー入力のスピードに画面の表示が追いつかないくらいなので。
>>493,494氏にお教え頂いたのを勉強してみようと思います。
0501デフォルトの名無しさん
2007/06/13(水) 00:25:39Accessとかで手軽にプレビュー作れてたシステムの置き換えに使うといい
あとダイアログはだす、ださないだけの違いだからどうにでも
現在の使い方だとキー入力に画面が追いつかないってのが意味不明
0502デフォルトの名無しさん
2007/06/13(水) 00:31:46標準で持ってて欲しいとも思うが。
0503デフォルトの名無しさん
2007/06/13(水) 01:56:40どこかのサイトに書いてあったけど本当?
0504デフォルトの名無しさん
2007/06/13(水) 02:52:140505デフォルトの名無しさん
2007/06/13(水) 08:43:41まさに組版並の印刷用途向け中間形式なんだが。
まあ、まともにサポートしてるライブラリは商用ライセンスだが。
xsl-foをjava2dにさえ描画できればあとはどうにでもなる。
てか、○○さん以外ありがとう
とか言ってる奴たまにいるけど馬鹿かこいつら?
0506デフォルトの名無しさん
2007/06/13(水) 09:46:260507デフォルトの名無しさん
2007/06/13(水) 10:04:45選択されてしまうのですが、これを選択されないようにすることはできますか?
0509デフォルトの名無しさん
2007/06/17(日) 23:55:36javax.swing.JOptionPane.showMessageDialog(null, "hello");
で helloと表示されるダイアログが表示されるのですが、
このhelloのフォントってどうやって指定するのでしょうか?
リファレンスみたのですが、どうもそのような設定項目がなくて…
0510デフォルトの名無しさん
2007/06/18(月) 00:12:28将来のバージョンで動作が保障されないとかそういうことになってもいいのかい?
カスタマイズしたダイアログがほしいなら自前で作成すべき
あと最初の引数をnullにする場合なんてありえんと思う
0511デフォルトの名無しさん
2007/06/18(月) 00:30:00コマンドラインから出したり。
0512デフォルトの名無しさん
2007/06/18(月) 10:05:59javax.swing.JOptionPane.showMessageDialog(null, "<html><font size=20 face=\"MS 明朝\">hello</font></html>");
0513デフォルトの名無しさん
2007/06/18(月) 13:40:36LookAndFeel
0514デフォルトの名無しさん
2007/06/18(月) 14:53:271.
LinuxとWindowsで基本的なコントロール(テキストボックスとかリストビューとかグリッド)使ってDBのデータIOを行うアプリを作りたいんだけど
LinuxとWindowsは意識せずにまったく同じソースでいいの?
それともVMごとにコンパイルオプションを指定するような感じになるの?
2.
.NETと比べてUIのモッサリ感はどう?
.NETのモッサリ感は我慢できるレベルだという定義で
内部処理の高速性は気にしないものとします。
0515デフォルトの名無しさん
2007/06/18(月) 15:20:171. 同じソースで同じバイナリ(クラスファイルだけど)でよい
2. 起動はモッサリだが動けばUIの速度は普通(昔はモッサリだったけど最近はよくなってきた)
0516デフォルトの名無しさん
2007/06/18(月) 15:23:55SwingはJava5 Java6 など新しいものの使用をすすめる。
WinFormとどっこいくらいには快適になってる。
0517デフォルトの名無しさん
2007/06/18(月) 16:04:38>>516
レスサンクス
なるほど 話の通り完全に同じソースでいけるわけなんだ
やっぱ便利そうだなぁ
C++でマルチプラットフォーム用の書いてたときはDefine切りまくりで
頭弱いから途中で頭がこんがらがってたしw
モッサリ感は現状最新のものを使って進めていけば.NETと同じレベルになりそうだからその方向でやってみようかなと
本当ははドトネト選ぶ時にJAVAにしようかな?と迷ったんだけど重いって話を腐るほど聞いてたんでドトネトにした
実際使ってみたらドトネトも思ったよりもモッサリで・・・・新しいソフト作る時はJAVAも視野に入れてもいいかもと思いだした
どうもこのスレの感じからすると普通に問題なさそうだからちょっと簡単なソフトから使ってみることにするよ
0518デフォルトの名無しさん
2007/06/18(月) 16:24:28.NETでもそうだけど、メモリは食うね。HDDとメモリが速ければ大丈夫。キャッシュの量にも大きく左右される。
Pentium4系だとJavaの速度は遅めでAthlon64やPentiumM系列はあからさまに速い。
1.4.1以降はGUIの描画にたとえばWindowsだとDirectDrawを使ったりハードウェアアクセラレーションを利用している。
6.0でVMの大幅に速度向上してるのでクライアントサイドなら6.0以上をすすめる。便利なAPIも多いし。
jdkに付属のswingsetデモを見てみるといいかも。
0519デフォルトの名無しさん
2007/06/18(月) 16:41:29起動スクリプトを環境毎に書く必要有り。
つっても path や classpath の指定方法が違うだけなんだけど。
0520デフォルトの名無しさん
2007/06/18(月) 16:58:09まぁアプリによるといえばよるんだけどUI描画全般は遅いと感じてしまう・・・
いい情報サンクス!
クライアントAPPなので とりあえずそのバージョンを最低レベルとして環境整えてみるわ
>起動スクリプトを環境毎に書く必要有り
まぁそれくらいなら別に問題ないとおもうさ
0521デフォルトの名無しさん
2007/06/18(月) 17:17:22MANIFEST.MFのClass-Pathエントリにjarファイル名を並べれば
パス通るよ。
0522デフォルトの名無しさん
2007/06/18(月) 17:34:19ほとんどの場合何もする必要はないと思うが
0523デフォルトの名無しさん
2007/06/18(月) 17:37:35フック用のexeとかスクリプトおいておいたほうがいいけどな
マニフェストファイル内に参考VM設定入れれるようにしてほしいな
webstartは多少入れれるようになったし、アプリケーションの塚と削除、
プログラムやデスクトップアイコン登録やってくれるのはいいが、
肝心のスタンドアロンアプリで出来ないのが納得いかねー
0524デフォルトの名無しさん
2007/06/18(月) 18:00:080525デフォルトの名無しさん
2007/06/18(月) 18:18:13Swingとどういう関係が?
0526デフォルトの名無しさん
2007/06/18(月) 19:22:250527デフォルトの名無しさん
2007/06/19(火) 09:32:28fatjarでまとめてやれば、1個でおk。
ただ、LGPLなライブラリをfatjar化したときのライセンスが気になる。
動的リンクとみなしてくれるのか、静的リンクとみなされるのか。
0528デフォルトの名無しさん
2007/06/19(火) 11:43:12静的なのか動的なのかでは動きは変わらない
LGPLはライブラリのバージョンアップなどが合った場合差し替える権利を保証するだけ
だからアーカイブ方法を提示してあげるだけだよ
静的だとオブジェクトファイルやコンパイル時のバージョンなどを明記すればよかったが
動的だと差し替えが容易なのでその記述が簡略化されるだけ
0529デフォルトの名無しさん
2007/06/25(月) 23:13:07Java6で濁点入り文字列をJLabelで表示すると濁点が1文字として表示されるんですが、
普通に1文字で表示してしかもカーソルがずれない方法ないもんでしょうか?
0530デフォルトの名無しさん
2007/06/25(月) 23:28:09俺はずれたことないのだけれども、そのずれる文字コードはなに?
0531デフォルトの名無しさん
2007/06/26(火) 02:08:430532529
2007/06/26(火) 02:34:40MacのSwingの話です・・・
Mac板逝ってきます。
0533デフォルトの名無しさん
2007/06/26(火) 10:51:45その違いは仕様で片付けるにはあんまりだな。
0534デフォルトの名無しさん
2007/06/26(火) 12:43:310535デフォルトの名無しさん
2007/06/26(火) 14:51:270536デフォルトの名無しさん
2007/06/26(火) 14:53:31再現コードがほしい
|-`).。oO(・・・・・・MacのMustangの日本語に関する問題としては、
レンダリングエンジンの問題の件、直るのか?
QuartzというMac固有のレンダリングエンジンからSunのレンダリングエンジンに変更されて
フォントの種類によってベース位置がずれる問題・・・。
半年以上前から、MacのJavaスレで報告されていたのに、新しい開発版Javaが出てこないから
直してるのかわからねえ・・・)
0537デフォルトの名無しさん
2007/06/26(火) 14:57:24Mac OS Xって NFD じゃなかったっけ?
1.6以降なら java.text.Normalizer あるから簡単に NFC に変換できる。
1.5以前は知らん。あと NFC に変換してもフォントが対応してるか俺は知らん。
0538デフォルトの名無しさん
2007/06/26(火) 17:41:34charsetとencoding混同してる時点で伝わってないかと。
0539デフォルトの名無しさん
2007/06/26(火) 18:26:19Swingがいまひとつ冴えないのは何でだろう。素人的に考えるに、次の
2点だと思う。
(�@)開発ツールあまりに貧弱
VisualEditorというものを使ったが、遅くて快適に使えない。
ちなみにメモリ1G。かつてのVisualBasicとどうしてもくらべて
しまうが、なぜこれほどの差があり、差がちじまないのか。
(�U)見栄えが今ひとつ
フォントなど見栄えが悪い。アンチエイリアス「java -Dswing.aatext=true」
なども使ってみたが今ひとつ。
(いちいち引き合いにして悪いが、従来のVBでつくった画面にくらべると
そう感じざるをえない)
それ以外にも少し機能が貧弱な面があるが、少なくともこの2点が
改善されたら、俺は積極的に使いたいと思う。
フリーソフトニいろいろケチをつけて申し訳ないが・・
0540気まぐれアナスイ
2007/06/26(火) 18:43:35開発し易いsoft.と云うのは構成配置を覚えるにはいいですが?
そのsoft.を使用し作成されたapplication.と云う物は、
必ずsoft.に依存します… 当たり前に規約にも影響する物です。
0541デフォルトの名無しさん
2007/06/26(火) 18:49:31何故Netbeansを使わない。
そして、aatext=trueは、・・・・
まずは、>>539の知識を広げるところから始めた方が有用そうだ。
Swingの表現力を見るために、V2Cを見てみることをおすすめします。
0542デフォルトの名無しさん
2007/06/26(火) 18:57:12結構お客さん、こだわるんだよなあ。
0543デフォルトの名無しさん
2007/06/26(火) 19:02:59さらに引数与えても捨ててるはずだけど。
LCDテキスト用AAアルゴリズムが追加されたけど実行後にプログラマが
最適なアルゴリズム選ぶ手段がjavaには無い事ない?
javaらしいって言ったらSwingの描画は全てJava2DだからJava2Dでできることは全て
GUIへフィードバックできるよね。
0544デフォルトの名無しさん
2007/06/26(火) 19:05:59V2Cを見ました。
すばらしい!
たぶんソースコードは公開されてないんでしょうね
0545デフォルトの名無しさん
2007/06/26(火) 19:06:08プラットフォーム互換性を持つ反面、使いづらいレイアウトマネージャ、
デザパタの教科書に使えるくらい美しい(と言われる)が、取っつき悪いクラス設計、
そして優れたGUIデザイナといわれるNetBeansがマイナー扱い。
業務でJava GUIクライアント作ったんだが、
他の連中がメンテできない。正直公開している。
ま、他の連中のスキル不足とかノウハウ共有が悪いとか、
他に理由はあるんだけどさ。
0546545
2007/06/26(火) 19:07:090547デフォルトの名無しさん
2007/06/26(火) 19:09:55VisualEditorを使った理由。
Eclipseを使っていたから。
たまたま市販の参考書が多かったから
今後はNetbeanにシフトしたいな
SUN純正だし
0548デフォルトの名無しさん
2007/06/26(火) 19:17:57GUIは中途半端なMVCだけどな
0549デフォルトの名無しさん
2007/06/26(火) 19:28:17ユーザインタフェース(要は画面)をつくる場合コードからガリガリ書く
のはばかばかしいので、マウスのドラッグ&ドロップで簡単に画面アプリを
作成できる開発支援ツールがあれば大変重宝します。
特にエンドユーザーに見せるため一度しか使わないプロトタイプ画面
などはそうやって即効で作成したいところです。
当然本開発になっても仕様変更など生産性は著しく向上します。
ところがツールで生成したコードが著しく汚くて冗長だと、コード
のメンテナンス性が低くなり、ツール使用によるメリットが半減して
しまいます。ツールに依存していても、コードを判読するケースは
あるからです。
つまりツールが自動生成するコードは、まるで有能なプログラマーが
一から開発したかのように合理的で明快なコードである必要があります。
そうでないとツールは普及しないでしょう
0550デフォルトの名無しさん
2007/06/26(火) 19:53:05VBとかのほうが苦労するだろ
絶対座標マンセーならかまわんが、ウインドウリサイズとか対応するのきついぞ
そもそもJavaでGUI作るのにVEって・・・
あれはSwingやJavaのGUIを陥れるために作られたものと考えるくらいがちょうどいい
0551デフォルトの名無しさん
2007/06/26(火) 20:33:310552デフォルトの名無しさん
2007/06/26(火) 20:39:465.0からは複数のプロダクトで使われてるのみてる
大手はRSAとかだけど重すぎてきつい
0553デフォルトの名無しさん
2007/06/26(火) 21:32:39うちの奴らはGUIの作成のみに使ってる。他はEclipse使ってるみたいだが。。。
Swing流行らせるためには、まずはNetBeansが機能も知名度もEclipse並に
なってもらわないとだめだね。
0554デフォルトの名無しさん
2007/06/26(火) 21:40:43海外は動きが速い
0555デフォルトの名無しさん
2007/06/26(火) 21:49:24海外だとそこらへんの事情も違うのかな・・・
0556デフォルトの名無しさん
2007/06/26(火) 21:56:01結局ここが一番のネックに感じる。
launch4j に JRE 同梱して、
「exe 叩けばOK」な形で配布すると
割と抵抗なく受け入れてもらえるんだが、
人としてこのファイルサイズはどうなのって感じが。
0557デフォルトの名無しさん
2007/06/26(火) 22:14:400558デフォルトの名無しさん
2007/06/26(火) 22:22:23アプリとして有用であればランタイムが大きくても気にしない
のが正解かと
0559デフォルトの名無しさん
2007/06/26(火) 22:49:47Consumer JREがどうなるか気になるね。
軽量化してくれればJRE同梱も納得できるサイズになるかも。
0560デフォルトの名無しさん
2007/06/26(火) 22:56:28Delphiも結構デカくなってたしなあ・・・。
0561529
2007/06/26(火) 23:16:16NFCとNFDについて勉強してきたんで、なんでこんなことになるか
理解できました。
ファイル名を扱うツールを作ってるんですが、ファイル名を取得して
テキストエリアに表示するサンプルを作って試したら問題が再現しました。
以下、サンプルコードです。
0562529
2007/06/26(火) 23:16:56import java.io.File;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class DakuonTest {
public static void main(String[] args) {
try {
JFrame frame = new JFrame();
JTextArea text = new JTextArea();
frame.getContentPane().add(new JScrollPane(text));
File[] files = new File(args[0]).listFiles();
for(int i=0; i<files.length; i++) {
text.append(files[i].getName() + "\n");
}
frame.pack();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}
0563529
2007/06/26(火) 23:22:031行に1ファイル、テキストエリアに表示しています。
「ピクチャ.png」があった場合、
Java 5の場合、ピは1文字で表示されますが、カーソルはずれてます。
Java 6の場合、ヒ゜と表示されます。
0564529
2007/06/26(火) 23:34:10濁点がずれて表示されます。
「ががが.txt」
の場合、
「か゛かか゛゛.txt」
と見えます。
Appleのバグレポートにあげようかと思ったんですが、こんなもんどうやって
英語で説明したものか・・・
0565デフォルトの名無しさん
2007/06/26(火) 23:35:58>>536 が言ってるフォントレンダラの問題なんじゃないかと推測。
1.5 -> Quartz という Mac 本来のエンジン使ってるので、NFD でも 一文字として表示する、
けど Java と Quartz の連携が中途半端で文字の大きさとかの情報が渡ってなくって
カーソル位置がずれる。
1.6 -> Sun のエンジンは NFD は 別々の文字として表示する。
あくまで推測だから本当のところはわからんけど。
0566デフォルトの名無しさん
2007/06/26(火) 23:40:06通すのがまっとうな解決法だろうなぁ。
0567566
2007/06/26(火) 23:41:050568デフォルトの名無しさん
2007/06/26(火) 23:56:10表示しようとするのが間違い。
MacのFSのUTF-8はNormalizeされてるので、取ってきた後
deNormalizeしてから表示するべき、ってことなのかなー。
0569デフォルトの名無しさん
2007/06/27(水) 00:00:030570デフォルトの名無しさん
2007/06/27(水) 00:03:58appleこういうの多いよね。
0571529
2007/06/27(水) 00:29:08自分のコードを改修しようと思います。
その場合Java5については諦めるしかなさそうですね。
ついでなんでさらにMacのSwingについてぼやきます。
日本語キーボードを使っていると、KeyEventのgetKeyChar()とgetKeyCode()の
戻り値が矛盾します。
英語と日本語キーボードで配置が変わらない数字やアルファベットのキーなら
問題ないですが、記号だとgetKeyCode()の値がおかしいです。
たとえば@キーの場合、getKeyChar()は'@'を返しますが、
getKeyCode()はKeyEvent.VK_OPEN_BRACKET(0x5B)を返しました。
キー操作の多いアプリで、キーコードとアクションを関連づけてるんで
しゃれになりません。
バグレポートは投げておきましたが、なんでこんな基本的なバグが
何年も放置されてるんだと・・・
0572デフォルトの名無しさん
2007/06/27(水) 01:52:29ttp://www.starseed.ne.jp/ikemen/diary/tdiary/?date=20070622#p02
0573デフォルトの名無しさん
2007/06/27(水) 02:08:00VMが昔はたくさんあったが今は淘汰されてSunのばかりになったことも移植性があがった原因なんだよな
しかしLinuxとWindowsは問題ないというのが歯がゆい
0574デフォルトの名無しさん
2007/06/27(水) 08:54:460575529
2007/06/27(水) 09:21:07すんません、それ僕です。
0576デフォルトの名無しさん
2007/06/27(水) 09:37:18Choose Beanすれば何でも可
0577574
2007/06/27(水) 09:43:30なるほど、ありがとうございます。
0578574.
2007/06/27(水) 09:56:55JSpinnerで入力した値を取得したらNullPointExceptionが出てきて困っています。
JSpinnerは
JSpinner SP_Date = new JSpinner(new SpinnerDateModel(new Date(), null, null, Calendar.DAY_OF_MONTH ));
SP_Date.setBounds(new Rectangle(147, 191, 113, 21));
SP_Date.setUI(new BasicSpinnerUI());
SP_Date.setModel(new SpinnerDateModel());
という感じで作成し、
String TestDate = SP_PurchaseDate.getValue().toString();
で取得しようとしているのですが…
0579デフォルトの名無しさん
2007/06/27(水) 10:03:280580デフォルトの名無しさん
2007/06/27(水) 12:43:57JSpinnerの使い方間違ってね?
・JSpinnerのコンストラクタにSpinnerModel指定したのなら、setModel()は不要
・SpinnerDateModel使うのなら、モデルに対してgetDate()すればDate型で値もらえる
それと、変数名は小文字で始めようぜ。Javaの流儀だ。
0581529
2007/06/27(水) 22:24:31発覚したんで書きます。
new File("ががが.txt").createNewFile();
で作られるファイル名が「か゛かか゛゛.txt」になります。
あと、564に書いたことは間違っていて、
「ががが.txt」が「か゛かか゛゛.txt」と見えるのではなく、
Javaで「ががが.txt」を作ると「か゛かか゛゛.txt」が出来る、という話でした。
ひどすぎる・・・
Java6の場合、
new File(Normalizer.normalize("ががが.txt", Normalizer.Form.NFD)).createNewFile();
と書くと正しいファイルが作れましたが、多分Java5だと
どうしようもないんじゃないでしょうか。
スレと関係なくてすみません。
0582デフォルトの名無しさん
2007/06/27(水) 23:16:12Mac対応はやめよう
LinuxとWindows、Solarisだけでいいや
0583デフォルトの名無しさん
2007/06/27(水) 23:25:53変な挙動だね……
ががががが.txt みたいに「が」の個数増やすと、どーなるんだろとか
がぎぐげご.txt みたいに濁点は付いてるけど別の字の場合とか
興味があったり
0584デフォルトの名無しさん
2007/06/27(水) 23:28:150585529
2007/06/27(水) 23:42:19実験してみました。
がががが.txt -> ががかが?.txt
ががががが.txt -> ががかかが??.txt
がががががが.txt -> がががかかが??.txt
がぎぐげご.txt -> がぎくけご??.txt
がぱが.txt -> がはか??.txt(最後の「か」に半濁点付いた後に濁点があります)
がぱがぱ.txt -> がぱかば?.txt(最後のばの後に半濁点が付いてます)
なんか頭痛くなってきました・・・
0586529
2007/06/27(水) 23:44:53がががが.txt -> ががかが゛.txt
ががががが.txt -> ががかかが゛゛.txt
がががががが.txt -> がががかかが゛゛.txt
がぎぐげご.txt -> がぎくけご゛゛.txt
がぱが.txt -> がはか゜゛.txt(最後の「か」に半濁点付いた後に濁点があります)
がぱがぱ.txt -> がぱかば゜.txt(最後のばの後に半濁点が付いてます)
0587デフォルトの名無しさん
2007/06/28(木) 05:20:04ソースの文字コードだけど何使ってる?
コンパイルする時に、-encodingオプション指定すればよくなくね?
WinのコードとMacのコードは違うしそこらへんの問題じゃなくて?
0588デフォルトの名無しさん
2007/06/28(木) 09:37:16System.out.println(s);
new java.io.File(s).createNewFile();
をwinのJDK5でコンパイルして、バイトコードをmacに持っていってJDK5環境で実行すると、
println表示は「ががが.txt」だけど、作成されたファイル名は「がかが゛.txt」になるね。
macはサブで、あまり本格的にjavaでいろいろやったりしてなかったんで、
macのjava実装がこんなもんだということにちょっとびっくり。
0589574.
2007/06/28(木) 09:50:31ありがとうございます。
getDate()ですね。
あと、変数名おかしいのも指摘していただいてありがとうございます。
またひとつ質問があるのですが、
JSPinnerで 日付のみを表示することって可能でしょうか?
2007/06/28 00:00:00 という表示を
2007/06/28 という表示にしたいのですが…
0590588
2007/06/28(木) 10:22:52ファイルとして「ががが.txt」が生成されるけど、逆にwin環境では化けファイル名になる。
もしかしてmacでNormalizerを使って正しいファイル名を生成できたとしても、
それをwinに持ってきて正しいファイル名にはならない?
うちはJDK5環境のままなんでNormalizer周りを確認できないけど。
0591デフォルトの名無しさん
2007/06/28(木) 10:38:04> 逆にwin環境では化けファイル名になる
NFD使われた程度で化けるならWin側にも問題はあると思うけどね。
NFCが正しいユニコードってわけじゃないし。
まぁ、>>586 のはバグだろうけど。
0592588
2007/06/28(木) 10:46:23JSpinner#setEditorを使って、
setEditor(new JSpinner.DateEditor(sp, "yyyy/MM/dd"))
0593デフォルトの名無しさん
2007/06/28(木) 10:49:400594589
2007/06/29(金) 00:15:08ありがとうございます。できました。
でも次はデータを取得したらなぜかぬるぽになる・・・
sp.getValue().toString() とかやってみたのですが…
0595デフォルトの名無しさん
2007/06/29(金) 00:36:310596デフォルトの名無しさん
2007/06/29(金) 00:37:530597デフォルトの名無しさん
2007/06/29(金) 00:40:59spがnullなのかsp.getValue()がnullなのか。
データ取得のタイミングが早過ぎてスピナがまだ構築されていないとか。
試しにこういうのを作ったけど普通に取得できたよ。
JFrame f = new JFrame();
f.setLayout(new java.awt.FlowLayout());
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
final JSpinner sp = new JSpinner(new SpinnerDateModel(new Date(), null, null, Calendar.DAY_OF_MONTH ));
sp.setEditor(new JSpinner.DateEditor(sp, "yyyy/MM/dd"));
sp.setUI(new javax.swing.plaf.basic.BasicSpinnerUI());
f.add(sp);
JButton b = new JButton("A");
b.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println(sp.getValue());
}
});
f.add(b);
f.pack();
f.setVisible(true);
0599529
2007/06/30(土) 10:08:36>>587
ソースはShift_JISですが、.classファイル中では変換されちゃってNFCなUTF-8の
コードで記録されてるんで関係無いっぽいですね。
MacのファイルシステムはNFDでファイル名持ってるけどNFCのファイル名渡されると
NFDに変換するみたいなんですが、Java VMのそこら辺の実装にバグがあるっぽいです。
>>591
Windowsは最初っからNFCのファイル名のみを渡されるのが前提で、
NFDのファイル名をNFCに変換する機能とかが無く、NFDの濁点のフォントを持ってないんで
化けるみたいです。
まあ、仕方ないかと。
Appleに報告したら1日で返事が来て追加情報を求められました。
さすがにやばいと思ったんでしょうか。
あと、無理矢理Swingに話を戻すと、JTextComponentはNFCみたいなんで、
自分のアプリではファイル名はNFCで扱い、java.io.Fileを生成するときだけ
MacではNFDに変換するようにしました。
0600デフォルトの名無しさん
2007/06/30(土) 14:12:280601デフォルトの名無しさん
2007/06/30(土) 15:56:39だからsunのJDKの実装ではReaderのデフォエンコーディングがUTF-8なんだったはず。
0602デフォルトの名無しさん
2007/07/02(月) 17:46:19今AとBという画面を作って、Bに検索窓を作って、クリックした内容がAウィンドウのテキストフィールドに反映するように
しているのですが、そこからさらにBウィンドウの「確定」ボタンを押すと、Aウインドウでも「確定」ボタンを押したのと同じ状況にしたいのですが…
0603デフォルトの名無しさん
2007/07/02(月) 18:07:29イベントの中ではそのメソッドを呼ぶようにするだけ
Swingの中で押したように動作させるという意味ならそのまま命令があるけど、APIマニュアルをよく見てみよう
0604594
2007/07/03(火) 11:12:10すいません、spがnullになってしまいます。。。
EclipseでgetJContentPane()に自前で以下のコードを追加したのですが…
JSpinner sp = new JSpinner(new SpinnerDateModel());
sp.setUI(new BasicSpinnerUI());
sp.setEditor(new JSpinner.DateEditor(SP_checkDate, "yyyy/MM/dd")) ;
jContentPane.add(sp);
そして、ボタンを押したときのコードはこれです。
SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd");
Date spData = sdf.parse(SP_checkDate.getValue().toString());
なぜかspがnullになっています。。。
0605デフォルトの名無しさん
2007/07/03(火) 12:28:07Swingの前にJavaの勉強した方がいいぞ。
>>597のコードを、お前のコードにそのまま埋め込んでもダメ。
意味を理解しろ。
JSpinner.DateEditorのコンストラクタの引数は、
setEditorを呼び出すJSpinnerオブジェクトを指定する。
>>604では、JSpinner.DateEditorのコンストラクタで指定したJSpinnerと
setEditorを呼ぶJSpinnerが異なっている。
それと、以前のアドバイスをまるで無視してるな。ちゃんと読んでるか?
SpinnerDateModel#getDate()でDate型で取得できると言われたのに
無駄にSimpleDateFormat使ってDate→String→Date変換してるし、
変数名があいかわらず変だったりするし。
0606594
2007/07/03(火) 13:46:28変数名の修正が中途半端になっていました・・・すいません。
Date型で取得せずにStringで取得してたりダメダメなので、もう一度出直します…
0607デフォルトの名無しさん
2007/07/03(火) 14:57:060608デフォルトの名無しさん
2007/07/03(火) 17:16:40いつも太字のDialog,12を手動でぽちぽち変更しているのですが…
0609デフォルトの名無しさん
2007/07/03(火) 18:35:49>>483 辺りを参照するヨロシ。
0610デフォルトの名無しさん
2007/07/04(水) 01:14:58使おうと思ったけどエンコード思うようにいかなくて
javax.mailの方に手を出したら結局そっちだけで用が済んでしまい
わざわざcommons使うまでもなかったっていうか・・・
0611デフォルトの名無しさん
2007/07/04(水) 01:15:440612594
2007/07/04(水) 12:11:32DataModelが必要だったのですね… ちゃんと読んでなくてすいません。ありがとうございます!
0613デフォルトの名無しさん
2007/07/04(水) 12:12:23やっぱりVE上でもヨロシくしたかったのですが…
VE以外のGUIエディタなら可能?
0614デフォルトの名無しさん
2007/07/04(水) 16:25:33いざエクスポートして、問題なく起動でしたと思ったら、
なぜかDBとの通信に失敗している。
エラー内容をみるとjava.lang.NullPointerException
開発時には普通に実行できたのに、
jarにエクスポートしたらDBと通信できなくなる場合ってあるのでしょうか?
JDBCはちゃんとclasspathがあるとこに置いてます
0615デフォルトの名無しさん
2007/07/04(水) 17:09:100616デフォルトの名無しさん
2007/07/04(水) 17:25:13Swingというかスレ違いな気がするが、一応回答。
実行可能jarから起動すると、CLASSPATHや-classpathオプションは無視される。
代わりにMANIFEST.MFのClass-Pathエントリに書くこと。
これ以上の助言が欲しかったら、その例外の発生箇所を加えて
Java質問・相談スレに行け。
0617デフォルトの名無しさん
2007/07/04(水) 17:31:57無視されないよ
なにわけのわからんことを・・・
0618デフォルトの名無しさん
2007/07/04(水) 17:51:03ある
0619デフォルトの名無しさん
2007/07/04(水) 18:18:05>>614
eclipse使ってるなら、jarファイルをデバッガ経由で起動してみたら?
0621デフォルトの名無しさん
2007/07/04(水) 21:33:41ttp://java.sun.com/javase/ja/6/docs/ja/technotes/tools/windows/java.html#-jar
ドキュメントを読む習慣を付けようぜ。
0622デフォルトの名無しさん
2007/07/04(水) 21:49:10普通は使わんし、使うならマニフェストファイルに書くの普通だろ
Swingと何も関係ないやんか
0623デフォルトの名無しさん
2007/07/04(水) 22:00:11>>622
とことん読まないね。
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/jar/jarGuide.html
>デスクトップ上で JAR ファイルをダブルクリックすれば javaw -jar により JAR ファイルが自動的に実行されます。
0624デフォルトの名無しさん
2007/07/04(水) 22:04:36オプション設定できないから
0625デフォルトの名無しさん
2007/07/05(木) 00:43:070626デフォルトの名無しさん
2007/07/05(木) 00:54:08関連付けされたプログラム実行の方が一般的だろ。
自分を正当化してかみつきたいだけの馬鹿はスルーしとけよ。
0627デフォルトの名無しさん
2007/07/05(木) 11:41:18lauch4j
0628デフォルトの名無しさん
2007/07/05(木) 12:00:320629デフォルトの名無しさん
2007/07/05(木) 13:08:40それを回避するためにコマンドライン引数受け付けるのもあるけど、あくまでも救済処置だろ。
今となっては。
0630デフォルトの名無しさん
2007/07/05(木) 13:27:570631デフォルトの名無しさん
2007/07/05(木) 13:43:14たぶんアプリケーションのオプションではなくJVMオプションの類の話をしてると思われる
0632デフォルトの名無しさん
2007/07/05(木) 14:47:030633デフォルトの名無しさん
2007/07/05(木) 14:53:280634デフォルトの名無しさん
2007/07/05(木) 14:57:180635デフォルトの名無しさん
2007/07/05(木) 15:07:49システムプロパティを指定する-Dや、
VMの種類を選択する-clientや-serverとか、
メモリ割当プールの最大最小サイズを指定する-Xmxや-Xmsなど。
今のところ、実行可能Jarをダブルクリックでは、
これを個別指定することはできない。
まあただ、-clientや-serverはCPUやアーキテクチャによって
自動選択されるし(おおよそではあるけど)
-Xmxと-Xmsも、Java6からは規定値が64MB/2MBではなくなり、
物理メモリに応じた値に変わるようになった。
ttp://java.sun.com/javase/ja/6/docs/ja/technotes/guides/vm/gc-ergonomics.html
-Dやその他のVMオプションは無理としても、
実行可能Jarの手軽さを全否定するほど、使えないってことは無いと思う。
0636デフォルトの名無しさん
2007/07/05(木) 20:26:11SwingやJavaの動作が速くなったとはいえ、デフォではGCによる停止時間が長すぎるので
使い物にならないのさ。
あくまでも快適に動くアプリはチューニングされたオプションが前提。
マニフェストファイルにオプションがかけないのでここは厳しいんだよな。
WebStartもメモリだけしか対応してないので厳しい。
普通の人は2,3秒もGCでGUIがとまってたら使わないと思う。
0637デフォルトの名無しさん
2007/07/05(木) 20:28:146では単純なサーバークラス検出動作からかわったの?
0638デフォルトの名無しさん
2007/07/05(木) 21:28:25VMのチューニングしないとまともに動かないような、リッチでヘビーなGUIアプリはお前に任せる。
俺は、VMのチューニングが不要な、チープでライトなアプリ作って、実行可能jarで配布するよ。
ところでV2C使ってると、クライアントサイドJava & Swingもいいもんだと思えてくる。
もっとも、あれは作者さんのがんばりに寄るところが大きいのかな。
HTMLビューアは自作してるそうだし。
0639デフォルトの名無しさん
2007/07/05(木) 22:25:020640デフォルトの名無しさん
2007/07/05(木) 22:46:47ガンガレ639。お前には未来とVMチューニングがある。
0641デフォルトの名無しさん
2007/07/06(金) 02:48:48Swingで最重量級といえるNetBeansでも、そんなに止まることはないが。
0642デフォルトの名無しさん
2007/07/06(金) 07:00:100643デフォルトの名無しさん
2007/07/06(金) 20:16:52コンカレントGCに変更すれば大丈夫だけど
0644デフォルトの名無しさん
2007/07/06(金) 21:46:120645デフォルトの名無しさん
2007/07/06(金) 22:02:26glassfish立ち上げたりDB立ち上げると1GBじゃたりないよね
NetBeansはデフォだとまったくメモリが足りないから増やしてるさ
もしかしてみんなヘビーにNetBeansつかってないの?
0646デフォルトの名無しさん
2007/07/06(金) 23:37:13いや、コンカレントにするより、分散GCの周期を1分から延ばすのと
スループット並列GCにする方が快適だったりするかもしれないぞ。
でもIDEのVMとアプリケーションサーバのJVMは分けるよ。
違う性質のアプリなんだから分けた方がチューニングしやすい。
って何の話になってるんだ。
V2Cは、多分に作者さんのコーディングの腕で快適になってるんだと思う。
0647デフォルトの名無しさん
2007/07/06(金) 23:54:15遅いのはFullGCだけだからFullGCがでなければそれでいいのさ
GCチューニングはJavaでゲーム作ったりしてテストしてるから大丈夫
5ms以下にしていれば体感的に問題はないかな
メモリが多いとパラレルがわりと有効だけど、パラレルにするとスループットはいいけど、
レスポンスが大幅に低下するから、使う場面が結構難しい
マルチコアだからパラレルでいいというよりはGC用にずっとコンカレントだけ動かしてるほうが
いい場合も多いかな
まぁ、バックグラウンドコンパイルとかもあるし、AP鯖やDB鯖も起動するからIDEだけにフルにまわすわけには行かないからね
最近はVM系もよく使うからなおさらかな
ところでAP鯖とIDE、デバッグ起動とそれぞれVMは自動的に分かれるよね?
Tomcatだってデフォだとメモリ少ないし-Xmxいれないとまずうごかん
あーSwingがもはや関係なくなってしまった
0648デフォルトの名無しさん
2007/07/07(土) 11:24:32glassfishとJavaDBはNetBeansと違うVMで走るよ。
0649デフォルトの名無しさん
2007/07/07(土) 12:59:29何を当たり前のことを
0650デフォルトの名無しさん
2007/07/07(土) 15:41:580651デフォルトの名無しさん
2007/07/07(土) 16:00:02マルチプロセスでの動作を考慮ってことだろ。
0652デフォルトの名無しさん
2007/07/07(土) 19:59:560653デフォルトの名無しさん
2007/07/24(火) 12:16:09import javax.swing.*;
public class Sample1 extends JFrame{
public static void main(String[] args){
Sample1 frame = new Sample1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds( 10, 10, 300, 200);
frame.setVisible(true);
}
}
という簡単なものを表示してみようと思ったのですがサンプルどうりに300,200の
大きさのウインドウが表示されず左上隅に小さいウインドウが表示されるだけです.
なぜこうなってしまうのでしょうか?
0654デフォルトの名無しさん
2007/07/24(火) 13:30:36java version "1.6.0_02"
Java(TM) SE Runtime Environment (build 1.6.0_02-b06)
Java HotSpot(TM) Client VM (build 1.6.0_02-b06, mixed mode, sharing)
気休めだけど setLocation(int, int), setSize(int, int) とかも試してみたら?
0655デフォルトの名無しさん
2007/07/24(火) 13:52:23Swingではやってはいけないコーディングなのがきになるが、それどこのサンプルなの?
0656デフォルトの名無しさん
2007/07/24(火) 14:21:25なんかまずいか?
0657デフォルトの名無しさん
2007/07/24(火) 14:22:08http://www.javadrive.jp/tutorial/
ここを参考にやったんですが出来ません.
>>654
1.6.0_02を使っているけど出来ませんxx
0658デフォルトの名無しさん
2007/07/24(火) 17:09:020659デフォルトの名無しさん
2007/07/24(火) 18:00:31public class Sample1 extends JFrame{
public static void main(String[] args){
SwingUtilities.invokeLater(new Runnable() {
public void run() {
Sample1 frame = new Sample1();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds( 10, 10, 300, 200);
frame.setVisible(true);
}
});
}
}
ウインドウマネージャ次第でフレームは再配置やリサイズされるかもしれないしな。
>>658のようないろいろなヒントをマネージャに与えれば言うことを聞いてくれるかも。
0660デフォルトの名無しさん
2007/07/27(金) 00:38:57位置を変えたり、非表示だったのを表示するようにしたりしているのですが、
大きさと、位置が変わってくれません。
デバッグしたところ正しい値はコンポーネントのプロパティに入っているようなの
ですが、、、
0661デフォルトの名無しさん
2007/07/27(金) 01:16:140662デフォルトの名無しさん
2007/07/27(金) 01:17:140663デフォルトの名無しさん
2007/07/27(金) 14:24:010664デフォルトの名無しさん
2007/07/28(土) 01:26:080665デフォルトの名無しさん
2007/07/28(土) 02:14:54invokeLaterでええやん
例えばボタンとかを押してActionListener#actionPerformedを呼んで
その中からJDialog#setVisibleするのならinvokeAndWaitは使えない
0666デフォルトの名無しさん
2007/07/28(土) 10:04:35使わなくてもいいよ
AWTスレッドなら
0667デフォルトの名無しさん
2007/07/31(火) 12:29:26・BufferStrategyを使って描画
・フルスクリーン表示
・メニューの表示
CanvasでBufferStrategy使って描画、Canvasを含むJWindowをフルスクリーン表示
フルスクリーン画面でJPopupMenuを表示するとCanvasの描画が走るタイミングでJPopupMenuが消える
JPopupMenuをJInternalFrameで実現してJDesktopPaneとの組み合わせにしてもダメでした。
BufferStrategyを使わなければ実現出来るのに・・・。
ゲーム作ってる人で同じ悩みに直面した人いませんか?
0668デフォルトの名無しさん
2007/07/31(火) 13:25:18JPopupMenu#setLightWeightPopupEnabled(boolean) で false にしろとかって話でなくて?
0669デフォルトの名無しさん
2007/07/31(火) 14:00:11はやり、消えます。
BufferStrategyからgetDrawGraphicsしたGraphicsでMenuを描画すれば良いのでは
と思いついたのですが描画は出来ても機能せず。
フルスクリーンじゃない時はMenuがCanvasの上に表示されるので
フルスクリーン+BufferStrategyの組み合わせがどうにも悪いのかなと・・・。
0670デフォルトの名無しさん
2007/07/31(火) 14:00:350671デフォルトの名無しさん
2007/07/31(火) 14:10:17JWindowからcreateBufferStrategyしてもダメでした。
0672デフォルトの名無しさん
2007/07/31(火) 14:13:510673デフォルトの名無しさん
2007/07/31(火) 14:34:53部品を全てawtに統一しJPopupMenuの変わりにDialogを使用したところ無事実現できました。
事象が上手く理解できていないので今からソースを見て理解を深めたいと思います。
ありがとうございました。
0674デフォルトの名無しさん
2007/07/31(火) 14:50:24AWTってのは各種OSなどに描画を任せる
混ぜるな危険ってのはそういうこと
Swingコンポーネントを使いつつBufferedStrategyが使いたいという用途はあまりないと思うので
その場合はSwingフレームワークにあわせること
ゲームなどでBufferedStrategyは使うと思うが、メインループスレッドからバックバッファに描画、
その後repaint発行でいける
この場合注意すべきポイントはrepaintはいつ呼ばれるかわからないということ
つまりトリプルバッファのようにバックバッファが最低2つは必要になる
BufferedStrategyなどでゲームに特化した話題ならゲーム製作板へどうぞ
0675デフォルトの名無しさん
2007/07/31(火) 16:31:47BufferStrategy の原理上そうなると思う.
昔ちょっと試したときの結論はゲームにメニューバーは付けない(そもそもかっこわるいし)で
ゲーム内にメニューを実装する,でした.
0676デフォルトの名無しさん
2007/07/31(火) 17:39:570677デフォルトの名無しさん
2007/07/31(火) 18:00:20この仕組みを変えるためにはSwing自体大幅にパイプラインをかえないといけない
で、JOGLに関してはJavaSE6でそうなる予定だったのだが、不具合のためOFFになってしまった
そろそろ標準でJOGLついていてもいいと思うけどね
まともに3D動かそうとすると必須だし
0678デフォルトの名無しさん
2007/07/31(火) 18:21:290679デフォルトの名無しさん
2007/07/31(火) 18:31:18描画内容を反映させるのにBLITが必要なく、垂直同期が取れるAWTのほうが有利
JNIによるダイレクトなレンダリングも期待できる
GUIコンポーネントというのならSwingのほうが将来的にも拡張性的にも有利ではないかと
0680デフォルトの名無しさん
2007/07/31(火) 18:41:02>>677
このバグ自体は昔からあるけどいざ、潰してみたらVGAドライバ由来の物だということが分かったので当分無理。
だから途中でデフォルト無効になったんだし。
これさえ直ればちゃんとGLPanelがつかえるんだよ。
せっかく、JOGLがjavax.*まできたのに・・・。
JOALも標準拡張にしてやってくだせぇ。
ミドルレンジ以上のサウンドカードじゃないとOpenALまともにサポートしてないから無理かな?
0681デフォルトの名無しさん
2007/07/31(火) 19:13:050682デフォルトの名無しさん
2007/07/31(火) 19:53:15自分で調べろや
0683デフォルトの名無しさん
2007/07/31(火) 21:35:540684デフォルトの名無しさん
2007/07/31(火) 21:37:05Java言語から勉強したほうがいいよ
0685デフォルトの名無しさん
2007/07/31(火) 21:57:55http://www.amazon.co.jp/Java-Swing-Hacks/dp/4873112788/
この本の17ページに書いてあるよ
0686デフォルトの名無しさん
2007/07/31(火) 21:59:16BufferedImage→ Graphics→drawImage
これで分からなきゃ初心者スレ行ってくれ
0687デフォルトの名無しさん
2007/07/31(火) 22:06:500688デフォルトの名無しさん
2007/07/31(火) 22:07:400689デフォルトの名無しさん
2007/07/31(火) 22:12:10APIに載ってるんだが、なんで調べないの?
つ getEditingRow()
0690デフォルトの名無しさん
2007/07/31(火) 22:31:300691デフォルトの名無しさん
2007/07/31(火) 22:32:46Heavyweight/Lightweight Mixing feature of Java 7
ttp://forums.java.net/jive/thread.jspa?threadID=29175&tstart=0
ごめん内容いまいち追い切れてない。
0692デフォルトの名無しさん
2007/07/31(火) 22:44:27まだmacはJDK5だと言うのに・・・。
0693デフォルトの名無しさん
2007/07/31(火) 22:46:38あんまバージョンアップが早いと
リタイヤするOSが増えそうだな
FreeBSDも5だっけか
0694デフォルトの名無しさん
2007/07/31(火) 22:53:326の開発者向けプレビューが去年から更新されてないんだよね。
たぶん4月にはLeopardと一緒に正式リリースを目論んでいたんだろうけど、
Leopard10月になっちゃったし。
0695デフォルトの名無しさん
2007/07/31(火) 23:02:50BufferedImageってImageインターフェースもってるだろ?
BufferedImageにすってことはどれだけ情報がうしなわれるとか考えた?
0696デフォルトの名無しさん
2007/07/31(火) 23:04:40で、どっちが活発にメンテされてるの?
0697デフォルトの名無しさん
2007/07/31(火) 23:15:09Windows版しかみてないが、ネイティブ版の8割くらいの速度で動くと思えばよい
1.0GHzで動いていたのと同じように動かすためには1.2GHzくらいが必要
Java3Dはかなり前に試したが、とにかく遅くて使い物にならないことや高レベルすぎるんじゃないかな
ゲーム以外ならJava3Dでいいのかもしれないけど
0698デフォルトの名無しさん
2007/07/31(火) 23:34:42なるほど。よく分かった。
0699デフォルトの名無しさん
2007/07/31(火) 23:37:02これ自体がオプションパッケージだから、依存性が強くてもいいのかもしれない。
Java3Dがまだこなれてないんじゃ、しようがないね。
0700デフォルトの名無しさん
2007/07/31(火) 23:38:250701デフォルトの名無しさん
2007/07/31(火) 23:46:50OpenGLはWindowsやLinux、Solarisなどで動くオープンなAPIだよ
Java3Dは実装選べるけど結局OpenGLかDirect3Dかの二択だしプラットフォームはかわらんよ
sunが自前で全部実装ってのは無理
ビデオチップベンダとの協力が必要だから
0702デフォルトの名無しさん
2007/07/31(火) 23:48:51オフスクリーン以外で実行したらそれがでるのは正しい動作
それにImageなんて抽象クラスなんだから実装はさまざまだ
0703デフォルトの名無しさん
2007/07/31(火) 23:51:33てかJOGL1.0はもう古い。今は1.1.0。
java2DをJOGLのテクスチャに合成するutilが追加されてる。
1.0までだとここらへん自力でやらないとだめだったけど今なら
java2Dで描画できるもんならなんでもJOGLに持っていけるようになったからフォント描画も楽になった。
ビルボード上にテクスチャ貼ってスプライトさせるなら自分でやった方が効率よさそうだけど。
0704デフォルトの名無しさん
2007/07/31(火) 23:53:451.0からできるっしょ?どっかかわった?
混ぜるな危険はSwingがでたとき、1.1時代からいわれてるよ
0705デフォルトの名無しさん
2007/07/31(火) 23:57:04何言ってんだ?JOGLもJava3DもOpenGL使ってるだろ。
それに両方、標準拡張。
万人が使うわけじゃないからJREから外されれてるだけ。
そこらのJNI使った拡張機能とはわけが違う。
0706デフォルトの名無しさん
2007/08/01(水) 00:13:53そうじゃなくてoffscreen renderingの問題だよ。どうにかなったのこれ?
昔から言われてるのは常識だろ。
>1.0からできるっしょ?どっかかわった?
javadoc嫁
0707デフォルトの名無しさん
2007/08/01(水) 00:49:41落としてきてあるのだけは確認した
com.sun.opengl.util.j2dパッケージが追加されたのか
いままでもJava2Dからのテクスチャ生成ができたけど、これは動いてる最中も反映されるんか?
毎回getTexture必要になるっぽくみえる
今週末久々にJOGLいじってみるか
問題は激しくすれ違いなことだがJOGLのスレってなかったか
0708デフォルトの名無しさん
2007/08/01(水) 03:07:030709デフォルトの名無しさん
2007/08/01(水) 05:49:39JOGLにしかない機能・作法が意外とあるのにどこいってもJOGL専用話してる所がないんだよ。
JOGL紹介サイトでもOpenGLの教本に書いてあることくらいしか書いてない。
jogl-demosのソースか洋書あたるのが近道。
国内はJava3Dだらけだ。
0710デフォルトの名無しさん
2007/08/01(水) 08:39:420711デフォルトの名無しさん
2007/08/01(水) 10:57:50JOGLって作りこみの部分に入るとOpenGLまんまだから迷うことはないけど
たしかにそのセットアップとかTipsとかそういう情報ゼロに近いね
一方JavaのゲームではJOGLしか選択の余地がないから非常に悩むところ
Java2Dのアクセラレーション範囲が狭いことに加え、アルファブレンディングの種類が足りなすぎる
おかげで2D描画もOpenGLが必須になるという・・・
0712デフォルトの名無しさん
2007/08/01(水) 11:05:22本当にこんなネーミングで良いのか?
0713デフォルトの名無しさん
2007/08/01(水) 13:40:12配置の制約情報オブジェクトをコンポーネントに関連付けるメソッドが追加されたLayoutManager
ネーミングについては確かに投げやりだな
0714デフォルトの名無しさん
2007/08/01(水) 23:48:140715デフォルトの名無しさん
2007/08/02(木) 01:26:14そりゃたしかに投げやりなネーミングだな。ひどい
0716デフォルトの名無しさん
2007/08/02(木) 04:06:22- AdvancedLayoutManager
- ExtendedLayoutManager
- SuperLayoutManager
- LayoutManagerGreat
- 続・LayoutManager
0717デフォルトの名無しさん
2007/08/02(木) 04:23:15アナログ的に配置指示
0718デフォルトの名無しさん
2007/08/02(木) 10:30:35続・LayoutManager に一票
0719デフォルトの名無しさん
2007/08/02(木) 11:29:000720デフォルトの名無しさん
2007/08/02(木) 12:01:51数字なら 3 とか 4 にすればいいだけで楽。
0721デフォルトの名無しさん
2007/08/02(木) 12:54:43ソートした時に
XX
XX10
XX2
XX3
.
.
ってなりそう。
0722デフォルトの名無しさん
2007/08/02(木) 16:37:38そろそろ Swing そのものを根本的に整理して欲しい時期だねえ。
0723デフォルトの名無しさん
2007/08/02(木) 17:58:03・定数のenum化
・コレクションフレームワーク利用
・generics利用
・OpenGLパイプライン有効
で作り直してほしいな
互換性とるのは無理だからパッケージをかえてな
0724デフォルトの名無しさん
2007/08/02(木) 18:15:140725デフォルトの名無しさん
2007/08/02(木) 18:43:390726デフォルトの名無しさん
2007/08/02(木) 19:09:32他のクラスで利用出来ないものでしょうか?
0727デフォルトの名無しさん
2007/08/02(木) 19:51:019の次はaにすれば、しばらく問題なし
0728デフォルトの名無しさん
2007/08/02(木) 19:55:47ひどい方法
class IconRevealer extends BasicOptionPaneUI {
public Icon getIcon() { return super.getIcon(); }
};
IconRevealer foo = new IconRevealer();
new JOptionPane(null, JOptionPane.INFORMATION_MESSAGE).setUI(foo);
//new JOptionPane(null, JOptionPane.ERROR_MESSAGE).setUI(foo);
//new JOptionPane(null, JOptionPane.QUESTION_MESSAGE).setUI(foo);
Icon icon = foo.getIcon();
JOptionPane#getIcon()やiconフィールドはsetIcon()で設定した時用だったんだな
0729728
2007/08/02(木) 20:21:29String propertyName = "OptionPane.errorIcon";
//String propertyName = "OptionPane.informationIcon";
//String propertyName = "OptionPane.warningIcon";
//String propertyName = "OptionPane.questionIcon";
Icon icon = (Icon)sun.swing.DefaultLookup.get(new JOptionPane(), new BasicOptionPaneUI(), propertyName);
0730デフォルトの名無しさん
2007/08/02(木) 20:27:270731デフォルトの名無しさん
2007/08/02(木) 20:31:56BasicOptionPaneUIはUIManagerを介さずに直にsun.swing.DefaultLookupを呼んでるんだな
0732デフォルトの名無しさん
2007/08/02(木) 21:26:15変えられても文句いえないんだよな。
こーゆーところはpublicな定数なりenum(は増えるから無理か)を
使ってあれば安心して使えるんだが。
0733726
2007/08/03(金) 16:54:32昨日は諦めてアイコンを作ってましたが
使わなくて済みそうです。
0734デフォルトの名無しさん
2007/08/03(金) 18:12:41再配布可能なライセンスならアイコン自体もらってアプリに組込めば
明文化されてない使い方しなくてもすみそうなんだけど…
0735デフォルトの名無しさん
2007/08/03(金) 20:16:550736デフォルトの名無しさん
2007/08/03(金) 21:39:54Thx!
0737735
2007/08/04(土) 00:38:560738デフォルトの名無しさん
2007/08/04(土) 04:47:39ほんとだ… インフォメーションアイコン(丸に"i"のやつ)とかあるから
同じかと思ったら別のアイコンだ…
0739デフォルトの名無しさん
2007/08/05(日) 08:56:15BufferedImage.TYPE_INT_ARGB_PRE
よく_PREってついてるのあるけど、どう違うの?
0740デフォルトの名無しさん
2007/08/05(日) 11:16:41RGB 各成分に A 成分が乗算済みであるフォーマット。
例えば 70% の不透明度で描画するとき通常 result = dst * 0.3 + src * 0.7 とやるわけだけど、
_PRE は A 成分が乗算済みだから result = dst * 0.3 + src で済む (src が _PRE で dst がそうでない場合)。
0741デフォルトの名無しさん
2007/08/05(日) 12:31:430742デフォルトの名無しさん
2007/08/05(日) 20:45:360743デフォルトの名無しさん
2007/08/05(日) 20:51:440744デフォルトの名無しさん
2007/08/05(日) 20:53:470745デフォルトの名無しさん
2007/08/05(日) 21:00:130746デフォルトの名無しさん
2007/08/06(月) 10:15:44Sunのチュートリアルには無かったけど、そういう話(話題)ってどこを参照すればいいの?
できれば日本語で。
0747デフォルトの名無しさん
2007/08/06(月) 10:41:300748デフォルトの名無しさん
2007/08/06(月) 11:05:27http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/image/BufferedImage.html#TYPE_INT_ARGB_PRE
『このイメージのカラーデータには、アルファがあらかじめ乗算されています』
0749デフォルトの名無しさん
2007/08/06(月) 12:37:440750デフォルトの名無しさん
2007/08/06(月) 12:41:38API以前に画像の基礎知識つけたほうがいいんじゃね?
GUIがわかってない人がSwingのマニュアル見てもわからないのと同じように
0751デフォルトの名無しさん
2007/08/06(月) 12:55:52ImageIOではなくて。
0752デフォルトの名無しさん
2007/08/06(月) 19:25:43たとえばExcelの色選択メニューみたいな。
枠ナシJFrameを使うとタスクバーに出たり、ウィンドウがちらついたりします。
0753デフォルトの名無しさん
2007/08/06(月) 19:39:27単に JPopupMenu のレイアウトマネージャを変えてみるとか。
0754デフォルトの名無しさん
2007/08/06(月) 19:41:050755デフォルトの名無しさん
2007/08/06(月) 20:39:15(色選択ならJColorChooserからコンポーネントもってくれば)
0756752
2007/08/06(月) 21:35:43JFrameのときは、windowListenerのwindowDeactivatedでdisposeしてました。
0757デフォルトの名無しさん
2007/08/07(火) 08:45:37その「よそ」って何?
「よそ」が他のコンポーネントならそのコンポーネントのイベントを拾って閉じればいいじゃん。
0758デフォルトの名無しさん
2007/08/07(火) 08:50:35最初の質問に書いたとおり、ポップアップメニューを作りたいので、よそというのはメニュー以外のことです。
では、元のウィンドウのタイトルバーや、プログラム管理外の領域がクリックされたときのイベントはどうやってとればいいでしょうか?
0759752
2007/08/07(火) 09:35:06あとは、タイトルバーのクリックがどうにかなれば
0760デフォルトの名無しさん
2007/08/07(火) 09:58:46popup.add(new JColorChooser());
component.setComponentPopupMenu(popup);
でよくね?
# JPopupMenu isa JComponent
0762デフォルトの名無しさん
2007/08/07(火) 20:40:22paintComponent(Graphics g) にクロージャを引っかけることができるような
カスタムペイントコンポーネントって、ないの?
今はふつー(??)に、JPanel の派生クラスをつくってる。
0763デフォルトの名無しさん
2007/08/07(火) 20:45:01ふつーは JComponent から派生する。
0764デフォルトの名無しさん
2007/08/07(火) 20:51:450765デフォルトの名無しさん
2007/08/07(火) 21:42:32ないんだよねぇ。
それ欲しい。
0766デフォルトの名無しさん
2007/08/13(月) 12:08:22SynthPainter#paintTabbedPane****をオーバーライドして描画してやらんとどうにもならない・・・
xmlだけじゃTabはだめなんかねー?
0767デフォルトの名無しさん
2007/08/14(火) 13:33:290768デフォルトの名無しさん
2007/08/14(火) 20:19:46これからも更新してくれるのかなー
どうも7はそれどころじゃなさそうですけどw
諦めて自分で描画します!ありがとうございましたー!!
0769デフォルトの名無しさん
2007/08/21(火) 14:47:56while((line = fin.readLine())!=null){
line=line.replace("Direction",Direction);
textArea.append(line);
textArea.append("\n");
}
fin.close();
}
のようにしてFile.txtの中身を1行ずつTextAreaに書き込んでいるのですがものすごく
時間がかかってしまいます.ファイルの中身をもっと簡単にTextAreaに書き込む方法はないのでしょうか?
どなたか教えてください.
0770デフォルトの名無しさん
2007/08/21(火) 15:05:27StringBuilder stringBuilder = new StringBuilder();
BufferedReader fin = new BufferedReader(new FileReader("File.txt"));
while((line = fin.readLine())!=null){
line=line.replace("Direction",Direction);
stringBuilder.append(line);
stringBuilder.append("\n");
}
textArea.append(stringBuilder.toString());
fin.close();
}
0771デフォルトの名無しさん
2007/08/21(火) 15:40:57BufferedReader fin = new BufferedReader(new FileReader("File.txt"));
textArea.read(fin, null);
fin.close();
textArea.setText(textArea.getText().replace("Direction", Direction));
ではだめなん?
0772デフォルトの名無しさん
2007/08/21(火) 15:48:43String prev = textArea.getText();
...
textArea.insert(prev, 0);
で
0773デフォルトの名無しさん
2007/08/21(火) 15:52:260774デフォルトの名無しさん
2007/08/21(火) 20:26:370775デフォルトの名無しさん
2007/08/21(火) 20:40:04>>771のコードの前に4〜5行追加すればいいだけじゃないか
APIリファレンス引っ張ってくるのが面倒だから、やり方だけいうと、
ファイルをメモリマッピングして、マッピング用のストリーム生成して、
そのストリームをBufferedReaderの代わりに使えばいい
0776デフォルトの名無しさん
2007/08/21(火) 22:05:12無駄な労力と思われ
0777デフォルトの名無しさん
2007/08/21(火) 22:15:50TextAreaに渡せばいいじゃない
処理が遅いのは内部でStringの生成を繰り返しているせいかと
0778デフォルトの名無しさん
2007/08/21(火) 22:46:210779デフォルトの名無しさん
2007/08/21(火) 22:48:410780デフォルトの名無しさん
2007/08/21(火) 23:33:460781デフォルトの名無しさん
2007/08/21(火) 23:53:300782デフォルトの名無しさん
2007/08/22(水) 00:21:520783デフォルトの名無しさん
2007/08/25(土) 01:01:12JListはサムネイルビューにはならんよねぇ?
0784デフォルトの名無しさん
2007/08/25(土) 01:07:05JList#HORIZONTAL_WRAPって使ったことないけどどうだろう
0785デフォルトの名無しさん
2007/08/25(土) 01:09:03イエス
それ試してみるっすよ
0786デフォルトの名無しさん
2007/08/25(土) 02:13:32JTableの方も試してみるか
0787デフォルトの名無しさん
2007/08/25(土) 08:42:43以下のようなものをどうぞ
class ImageListCellRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value, int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRenderer(list, value, index, isSelected, cellHasFocus);
if (value instanceof Image) {
setText(null);
setIcon(new ImageIcon((Image)value));
}
return this;
}
}
list.setCellRenderer(new ImageListCellRenderer());
0788デフォルトの名無しさん
2007/08/25(土) 11:37:36神様ありがとう試してみるよ!
0789デフォルトの名無しさん
2007/08/25(土) 12:01:14神様ありがとう!サムネイル表示できたよ!
0790デフォルトの名無しさん
2007/08/25(土) 12:08:59つーか、EditableImageからImage取得できるならImageだけでもいい気がしてきた
public class ImageListCellRenderer extends DefaultListCellRenderer {
public Component getListCellRendererComponent(JList list, Object value,
int index, boolean isSelected, boolean cellHasFocus) {
super.getListCellRendererComponent(list, value, index, isSelected, cellHasFocus);
if (value instanceof Image) {
setText(null);
setIcon(new ImageIcon((Image) value));
}
if (value instanceof EditableImage) {
setText("test");
ImageModel im = ((EditableImage)value).getImageModel();
ImageIcon imc = new ImageIcon((Image)im.getImage());
setIcon(imc);
}
return this;
}
}
0791デフォルトの名無しさん
2007/08/25(土) 15:17:39at GUI.actionPerformed(GUI.java:308)
at javax.swing.JComboBox.fireActionEvent(Unknown Source)
at javax.swing.JComboBox.setSelectedItem(Unknown Source)
at javax.swing.JComboBox.setSelectedIndex(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup$Handler.mouseReleased(Unknown Source)
at java.awt.AWTEventMulticaster.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at javax.swing.plaf.basic.BasicComboPopup$1.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
こんなエラーがでて困ってるんですが何が原因かわかる方いますでしょうか?
0792デフォルトの名無しさん
2007/08/25(土) 15:43:210793デフォルトの名無しさん
2007/08/25(土) 15:43:42もう少し具体的にソースなど挙げないとなんとも言えません。
0794デフォルトの名無しさん
2007/08/25(土) 15:44:460795デフォルトの名無しさん
2007/08/25(土) 15:45:270796デフォルトの名無しさん
2007/08/25(土) 15:50:200797デフォルトの名無しさん
2007/08/25(土) 15:54:49コードさらしてみろ
0798デフォルトの名無しさん
2007/08/25(土) 19:08:09ポップアップメニューをクリックした時に、TransferHandlerへ
Ctrl+C、Ctrl+Vの時と同じ通知をしてやりたいんだが、どうやってやればいいんだ?
0799デフォルトの名無しさん
2007/08/25(土) 21:45:10TransferHandlerのjavadoc読んで分からんなら諦めろ。お前には無理だ。
0800デフォルトの名無しさん
2007/08/25(土) 22:14:340801デフォルトの名無しさん
2007/08/25(土) 22:48:390802デフォルトの名無しさん
2007/08/25(土) 22:58:360803デフォルトの名無しさん
2007/08/25(土) 23:41:46おう、取得できたぜ!
だがしかし、小さいアイコンが取れた。
大きいアイコン取れるようにがんばってみるぜ
0804デフォルトの名無しさん
2007/08/25(土) 23:59:25Swing だけじゃ、大きいアイコンは取れなかったはず。
大きいアイコン取りたい場合は JDIC、jconfig みたいなライブラリ使うか、JNI かな。
sun.awt.shell.ShellFolder 使えば取れるかもしれんけど、内部ライブラリだから、
メソッドが変更されたり無くなったり、クラスそのものが無くなったりしても文句言えない。
0805デフォルトの名無しさん
2007/08/26(日) 00:02:56マジッスカー
チューザーが使うアイコンって言葉にちょっと引っかかってたんすけどね。
ほな、今は諦めて別の作業しまっすー
0806デフォルトの名無しさん
2007/08/26(日) 02:05:59javadoc読んで分からんかったけど、Tutorialにサンプルプログラムあったのね。
親切にありがとう。
0807デフォルトの名無しさん
2007/08/26(日) 06:46:540808807
2007/08/26(日) 06:49:13paintComponentの内部でのGraphicsのインスタンスを使ってテキストを縦書きに描画したいんです。
普通のdrawStringだと横書きになってしまいます。
0809デフォルトの名無しさん
2007/08/26(日) 08:09:30Swing だと自前でやるしかない。
java.awt.Component#setComponentOrientation(ComponentOrientation)
java.awt.ComponentOrientation#isHorizontal()
ってのが使えそうなんだけど、これ縦書き用のインスタンス持ってないから。
OSが縦書き用フォント持ってれば
縦書き用フォントから字形ひっぱってきて 90度回転させて表示するとか、
もしくは横書き用フォントから字形ひっぱってきて
英数文字や鍵括弧のように90度回転させるか
日本語のように縦書きするか決めてながら、自前で再配置するとかしないとダメ。
フォントから字形を引っ張ってくるには
java.awt.Font#createGlyphVector
java.awt.font.GlyphVector#getOutline
回転させるには
java.awt.geom.AffineTransform#getRotateInstance
java.awt.geom.AffineTransform#getTransformedShape
あたり使え。
AttributedCharacterIterator とかの書式付きでやりたいなら
GlyphVector の代わりに TextLayout 使うと便利。
0810デフォルトの名無しさん
2007/08/26(日) 09:50:11んであとは位置指定して文字描画。
0811デフォルトの名無しさん
2007/08/26(日) 10:48:040812デフォルトの名無しさん
2007/08/26(日) 10:58:37Windowsの @MS ゴシック みたいな VHEA とか VMTX とか見て作ってるフォントは
VHEA とか VMTX 無視する Java の、っつーか Sun の JRE が持ってるフォントレンダラでは
扱えないんじゃなかったっけ?
縦書きって専用フォントじゃないとカギカッコとか句読点とか再配置面倒なんだよね。
0814デフォルトの名無しさん
2007/08/26(日) 22:27:100815デフォルトの名無しさん
2007/08/26(日) 22:38:23System.getenv("USERPROFILE") + "\\デスクトップ"
0816デフォルトの名無しさん
2007/08/26(日) 22:49:310817デフォルトの名無しさん
2007/08/26(日) 22:56:01それで無理やり作れるっすねぇ
>>816
WSHっすか
0818デフォルトの名無しさん
2007/08/30(木) 22:08:25これって、すでに動いてるフレームには使えねえのな。
なんか、動的にやっちゃう方法はないのか
0819デフォルトの名無しさん
2007/08/30(木) 23:09:39これか?
http://java.sun.com/docs/books/tutorial/extra/fullscreen/index.html
0820デフォルトの名無しさん
2007/08/30(木) 23:36:17フルスクリーン用にフレームを作って元のフレームの中身を入れる…とか?
0821デフォルトの名無しさん
2007/08/30(木) 23:49:18いんや、そこまで本格的じゃないの。
コンテンツ領域をダブルクリックしたら、窓枠とタイトルバーのないウィンドウを最大化で表示する感じ
>>820
コンストラクタに元のフレームを突っ込んで、中で変数をわっしょいわっしょいしてやったぜ
次のJAVAでは動的なフルスクリーンとかサポートされるといいなぁ
0822デフォルトの名無しさん
2007/08/31(金) 00:06:41setVisible(false)とdispose()の後で設定し、setVisible(true)にする感じだったかと。
昔試した記憶なんで定かではないが
0823デフォルトの名無しさん
2007/08/31(金) 00:27:440824デフォルトの名無しさん
2007/08/31(金) 01:24:48それって質問者の解決になってないんじゃない?
動いているものってのがリソースの破棄を示すとはおもえんし
とはいえ>>821のコンストラクタでというのはナンセンスすぎ
モデルと分離するのがよかろう
0825デフォルトの名無しさん
2007/08/31(金) 04:22:190826デフォルトの名無しさん
2007/08/31(金) 11:58:54フィルレート稼ぐためとかだな
0827デフォルトの名無しさん
2007/08/31(金) 12:02:490828デフォルトの名無しさん
2007/08/31(金) 12:26:11ほんの一部のblitとかしかきかないけど
0829デフォルトの名無しさん
2007/08/31(金) 12:27:33逆にJOGLだとフルスクリーン時問題がでることがある
0830デフォルトの名無しさん
2007/08/31(金) 13:04:15kwsk
JOGLフルスクリーンにできないの?
0831デフォルトの名無しさん
2007/08/31(金) 13:28:59やってみればすぐわかる
解像度変更しなくてもフルスクリーン化しただけでダメだよ
GLJPanelのほうならいくけど遅くて実用性ないし
0832デフォルトの名無しさん
2007/08/31(金) 16:52:07あと、JOGLはドライバによっては実行中に突然コケる。
そういうドライバは大体、ライダーに変身しそうな勢いでファンが回り続けるけど・・・。
0833デフォルトの名無しさん
2007/08/31(金) 19:58:15ただたんに画面いっぱいに表示したいだけだからエセフルスクリーンでいいんだな
>>824
おう、そうすりゃちょっと気分もコードもスッキリするな
0834デフォルトの名無しさん
2007/08/31(金) 20:52:05なら5だったか6だったかで新しく実装された常に手前で表示とフレームなしのウインドウの最大化で事足りる
それをやらないとタスクバーの手前にこない
0835デフォルトの名無しさん
2007/08/31(金) 22:45:12>>823
できたー
お前すげえ
ちょっと誤爆してきた
0836デフォルトの名無しさん
2007/09/01(土) 00:30:07disposeでリソース破棄が必要ってのは
0837デフォルトの名無しさん
2007/09/01(土) 02:11:16やってみた・・・なんかだめっぽいね
残念
0838デフォルトの名無しさん
2007/09/01(土) 23:05:12どうやればいいの?
0839デフォルトの名無しさん
2007/09/02(日) 00:47:51それ以外の描画自体はすべてそのまま動いてるっぽいがなんだこの現象は・・・
0840デフォルトの名無しさん
2007/09/02(日) 02:11:11OpenGL のテクスチャは左下が原点だってことと関係ありそう?
0841デフォルトの名無しさん
2007/09/02(日) 10:48:460842デフォルトの名無しさん
2007/09/04(火) 20:09:54画面のサイズを取得して、setBoundsで広げてみたけど、これは俺の知ってる最大化とちと違う。
最大化ボタンを押した時の挙動を実現する方法を教えてくだせぇ
0843デフォルトの名無しさん
2007/09/04(火) 20:15:26java.awt.Frame#setExtendedState(int)
0844デフォルトの名無しさん
2007/09/04(火) 20:26:40...先生!
最大化したあとでノーマルに戻すと、サイズがでかいままです!
0845デフォルトの名無しさん
2007/09/04(火) 20:29:190846デフォルトの名無しさん
2007/09/04(火) 20:30:22ノーマルサイズの状態にせずに、
いきなり最大化状態で表示すると、そうなったりする。
0847デフォルトの名無しさん
2007/09/04(火) 20:30:33getPreferredSizeとsetPreferredSizeを使ってみたらどうかね
0848デフォルトの名無しさん
2007/09/04(火) 22:28:30今更ながら自己レス
FileSystemView fs = FileSystemView.getFileSystemView();
File[] roots = fs.getRoots();
これでデスクトップ取って来れたよ
0849デフォルトの名無しさん
2007/09/05(水) 00:07:49メソッド名とあわんけどな
0850デフォルトの名無しさん
2007/09/05(水) 00:16:32メソッド名と処理が全然直感的じゃないことに脱帽する。
0851デフォルトの名無しさん
2007/09/05(水) 00:38:26デスクトップを取得したかった理由は、エクスプローラみたいなツリーを作りたかったからなんで、
今回はokです。
デスクトップ取得して、そこから展開してったらサクっとエクスプローラみたいになってびっくり。
ウィン以外だとどんな動作になるのやら。
0852デフォルトの名無しさん
2007/09/05(水) 00:51:47名前のとおりの動作になる
ファイルシステムのルート
説明によるとDOSだとドライブ番号らしい
でもデスクトップってユーザーごとに違うからそこがファイルシステムルートってのもピンと来ないんだよなぁ
0853デフォルトの名無しさん
2007/09/05(水) 22:21:28左右の端っこでカーソル?が止まるべ。
右端で右を押したら、一段下の左端にカーソルもってこうとしてこんなん書いてみた。
protected void keyPresse(KeyEvent e) {
switch (e.getKeyCode()) {
case KeyEvent.VK_RIGHT:
int index = getLeadSelectionIndex();
int width = getWidth() / getFixedCellWidth();
if (index % width == width - 1) {
getSelectionModel().setLeadSelectionIndex(index + 1);
}
以下略
だがしかし、これだと左端の一つ右にカーソルがいくっす。
どうしたら、左端にきっちり止まるかな?
0854デフォルトの名無しさん
2007/09/05(水) 22:28:30左端に移った後で右へ移動の処理が呼ばれてるんじゃね?
e.consume()とかしたら伝搬せずに済むかも。
0855デフォルトの名無しさん
2007/09/05(水) 22:48:00なるほどっす、ありがとっす
if ((e.getModifiersEx() & InputEvent.SHIFT_DOWN_MASK) != 0) {
getSelectionModel().setLeadSelectionIndex(index + 1);
} else {
setSelectedIndex(index + 1);
}
e.consume();
シフトキー押してなくても右端と左端を選択するようになったから、
e.consume();の前にif文かましてみたっす。
0856デフォルトの名無しさん
2007/09/05(水) 22:58:030857デフォルトの名無しさん
2007/09/05(水) 23:05:35右端だったら次行の1つめへ、
というActionを定義して、
ActionMapに名前を付けて登録。
InputMapの右キーのトコにその名前を登録。
と処理するのが正当かもしれんね。
0858デフォルトの名無しさん
2007/09/11(火) 01:51:36これで関連付けでファイルを開けるんだが、ディレクトリを2、3個開くとVMが落ちる。
画像は平気。
今後に期待ってところかね
0859858
2007/09/11(火) 02:07:360860デフォルトの名無しさん
2007/09/11(火) 02:32:560861デフォルトの名無しさん
2007/09/11(火) 04:35:390862デフォルトの名無しさん
2007/09/11(火) 07:08:01リンクっぽく表示されるけどクリックできません。
リンクを開くにはどのようにすればいいのでしょうか?
0863デフォルトの名無しさん
2007/09/11(火) 08:33:29JLabel に MouseListener つけて mouseClicked を検地して自前で処理する。
ハイパーリンクのクリックイベントを捕らえられるのって、JEditorPane
だけじゃないかな。
0864デフォルトの名無しさん
2007/09/11(火) 13:02:58問題はSwingの話題がないことだろう
0865デフォルトの名無しさん
2007/09/11(火) 13:04:130866デフォルトの名無しさん
2007/09/11(火) 13:06:27SwingのHTMLは表示させるためだけのものってどこかに書いてあったようななかったような…
0867デフォルトの名無しさん
2007/09/11(火) 13:24:350868デフォルトの名無しさん
2007/09/11(火) 14:27:26Desktop desktop = Desktop.getDesktop();
desktop.open(new File("C:\\"));
desktop.open(new File("C:\\WINDOWS"));
desktop.open(new File("C:\\WINDOWS\\system32"));
desktop.open(new File("C:\\Documents and Settings"));
で、4個開いてみたけどVM落ちない。再現条件が違うんじゃね?
0869デフォルトの名無しさん
2007/09/11(火) 17:08:28どなたかご教示ねがいます。
0870デフォルトの名無しさん
2007/09/11(火) 17:36:20それともJFileChooserだけを変更したいっていう話?
0871デフォルトの名無しさん
2007/09/11(火) 17:39:41UIManagerのsetを呼び出す場所が間違ってました。
ごめんなさい(m´・ω・`)m ゴメン…
0872デフォルトの名無しさん
2007/09/12(水) 01:19:58ボタンを押す毎に月の変数を増減させ、その変数の値を見て31日を追加したり削除したりさせたいのですが、
removeが動作してくれません。大まかに書くと下記のような感じなのですが↓
public void actionPerformed(ActionEvent e){
month++;
if(month == 9){
panel1.add(day31);
}
else if(month == 10){
panel1.remove(day31);
}
else if(month == 11){
panel1.add(day31);
}
}
上記の「day31」が削除されません。
変数の値は間違い無く条件式に対し真を返す値である事は確認しています。
何故か、30日を示す「day30」が存在しないと、削除に成功します。
色々試しましたが解決策が見つかりませんでした。そこが悪いのでしょうか?
0873872
2007/09/12(水) 01:30:18×そこが悪いのでしょうか
○どこが悪いのでしょうか
解決策が見つからない事は確かに悪いのですが・・・
0874デフォルトの名無しさん
2007/09/12(水) 09:22:09レイアウトを使用しているなら、コンポーネントの追加と削除をした場合
にはrevalidate()なりを呼び出さないといけない。
そういう手間がいやなら、day31.setVisible(false)とかで表示上消して
しまえばいい。いちいちコンテナに追加したり削除したりすると後が面倒。
たとえば7月から8月にした場合とか、両方とも31日ある月とか
30日以下の月が連続した場合に面倒だろ?
ところで9月は30日なんだが、
if(month == 9){
panel1.add(day31);
}
この判定はいったいなんだ?
0875デフォルトの名無しさん
2007/09/12(水) 09:49:16月の範囲が0−11
0877デフォルトの名無しさん
2007/09/12(水) 11:09:15Java がどうとかじゃなくて、もっと昔からの慣習なんだろうけど。
0878デフォルトの名無しさん
2007/09/12(水) 11:13:520879デフォルトの名無しさん
2007/09/12(水) 11:17:010880デフォルトの名無しさん
2007/09/12(水) 16:54:46文字列の配列のインデックスのためでしょ
0881デフォルトの名無しさん
2007/09/12(水) 20:20:47回答ありがとうございます。おかげで解決しました。
つたない質問に丁寧に答えて頂き、本当に有難う御座いました。
0882デフォルトの名無しさん
2007/09/12(水) 23:14:55これでjpgファイルを読み込んで、JLabelにイメージアイコンとして突っ込んで表示してたら変な色になるファイルがある。
暗いところ明るい緑に、白いところは赤っぽくなる。
なんか変なフラグでも立ってるのかね?
0883デフォルトの名無しさん
2007/09/13(木) 22:47:17>>882(自己レス)
ImageIOのバグなのか?
ここに書いてある通りにしたらうまくいった。
jpgはこれで読み込んで、jpg以外はImageIOにやってもらえばいいか。
0884デフォルトの名無しさん
2007/09/13(木) 23:05:230885デフォルトの名無しさん
2007/09/13(木) 23:15:500886デフォルトの名無しさん
2007/09/13(木) 23:28:540887デフォルトの名無しさん
2007/09/13(木) 23:30:32読み込んだjpegがどんな機能使ってるかだな。
実は2kだったりしたら笑えるw
0888デフォルトの名無しさん
2007/09/14(金) 17:12:51ttp://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6578753
まー、SunはみんなSolarisだから、気づかないんだろうけど。
真面目にチェックしてリリースしろよ。
0889デフォルトの名無しさん
2007/09/14(金) 18:33:360890デフォルトの名無しさん
2007/09/14(金) 21:15:256u2で重く感じたのはやはり気のせいじゃなかったか
0891デフォルトの名無しさん
2007/09/15(土) 01:39:07u2ってbug fixだったな。
0892デフォルトの名無しさん
2007/09/16(日) 00:19:34ルートのフレームから、その子供みんなにどどーんとイベントを発行できたらいいなぁ。
なんて思ってるんだけど。
具体的には、各部品が勝手に開いてるファイルをファイル名指定して「閉じろ」って命令したいんだな。
0893デフォルトの名無しさん
2007/09/16(日) 00:23:220894デフォルトの名無しさん
2007/09/16(日) 02:37:420895デフォルトの名無しさん
2007/09/16(日) 03:13:49そういう実装になるんだろうけど、ドキュメントを閉じるなんてイベントが無いからイベントの発行じゃ出来ない気が。
そういうEventObject実装してるならそいつをpostしてやれば良いだけ?
イベント拾った側でいろいろやるけど。
>>892の説明は全然具体的じゃないからコード出すなりした方が早いんじゃない?
0896デフォルトの名無しさん
2007/09/16(日) 03:37:25コンポーネントツリーにイベント投げれても意味なくない?
0897デフォルトの名無しさん
2007/09/16(日) 15:06:560898デフォルトの名無しさん
2007/09/16(日) 19:11:45AWT のイベントを自分で発生させるにはどうすればよいのですか?
ttp://javafaq.jp/S065.html#S065-18
0899デフォルトの名無しさん
2007/09/16(日) 19:45:560900デフォルトの名無しさん
2007/09/17(月) 20:59:26選択行を取得できますが、元の行を知るにはどうすればいいのですか?
Java6であればconvertRowIndexToModel()がありますが、Java1.4.2で
同様のことをしたいのですが見つかりませんでした。
0901デフォルトの名無しさん
2007/09/17(月) 21:11:291.4.2 だと、ソートはモデルを直接弄らんとできないはずだから、
1.6のconvertRowIndexToModelで変換しなきゃいけないような「元の行」自体がないはず。
0902デフォルトの名無しさん
2007/09/21(金) 22:51:00クロスプラットフォームLAFも糞重いのを確認した
階層が変わるたびにすごいまたされる
なんだこれ
0903デフォルトの名無しさん
2007/09/22(土) 00:49:560904デフォルトの名無しさん
2007/09/22(土) 01:07:460905デフォルトの名無しさん
2007/09/22(土) 14:47:58そこに表示されるテキストをComboBoxで選択できるようにするにはどうすればよいのでしょうか?
0906デフォルトの名無しさん
2007/09/22(土) 14:50:110907デフォルトの名無しさん
2007/09/22(土) 15:15:50セルエディタとしてJComboBoxを与えて構築したDefaultCellEditorを設定してやればいい
0908デフォルトの名無しさん
2007/09/22(土) 15:24:47すいません。あまり意味がわからないのですが簡単な例を
記述してもらうことなどは出来ないでしょうか?
0909デフォルトの名無しさん
2007/09/22(土) 15:32:25相手に要求してる作業量を考えて発言しようよ
0910デフォルトの名無しさん
2007/09/22(土) 15:34:400911デフォルトの名無しさん
2007/09/22(土) 15:40:04JTableは非常に複雑なコンポーネントなので厄介だが、
セルレンダラとセルエディタというのがあると理解すれば
道は開けるかと。
0912デフォルトの名無しさん
2007/09/22(土) 15:42:47なかなかいい例が見つからなかったんです。
本当にすいませんがどなたか助けてください
0913デフォルトの名無しさん
2007/09/22(土) 15:48:00最近 JTable のチュートリアル読んだ時にそのまんまな例があった。
俺ならググる前にチュートリアルあたるけど、あまり使われてないのかな?
よくできてると思うけど。
0914デフォルトの名無しさん
2007/09/22(土) 15:48:442段階くらい行き成り高くなる感じで、壁を感じるのは誰もが通る道。
0915デフォルトの名無しさん
2007/09/22(土) 15:49:080916デフォルトの名無しさん
2007/09/22(土) 15:54:360917デフォルトの名無しさん
2007/09/22(土) 15:56:58ttp://terai.xrea.jp/
0918デフォルトの名無しさん
2007/09/22(土) 16:06:31ありがとうございます
これならなんとか参考にして出来そうです。
みなさんもいろいろありがとうございます
0919デフォルトの名無しさん
2007/09/22(土) 18:20:17まあ、レンダラ・エディタ・モデルはSwingの共通概念だが、ここら辺の扱いは
JTable>JTree>=JListの難易度だと思う。
JTreeは見た目と内部状態が違うだけで
JListに横方向の概念が加わっただけだからカスタムレンダラ・エディタ・モデルのコード自体はかなり使い回せるよ。
データ転送を実装しようとするとJTreeの方が面倒臭さで上回ってしまうけど。
この3つのカスタムコンポーネントのコード量が多いのは変わりないけどね。
0920デフォルトの名無しさん
2007/09/22(土) 18:35:35そこへいきで嘘かいてたりするから実はつらいぞ
0921デフォルトの名無しさん
2007/09/22(土) 18:44:02※左にTree、右上にTable、右下に任意コンテンツのレイアウトを持つアプリ
0922デフォルトの名無しさん
2007/09/22(土) 19:21:24http://www.freewebs.com/photoradio/?0/1103271
0923デフォルトの名無しさん
2007/09/22(土) 19:29:53手書きでテーブル駆使したhtml書くようなものだし。
0924デフォルトの名無しさん
2007/09/22(土) 19:53:16OLEみたいなアプリの埋め込みをサポートすると磐石なんだよなぁ。
Warriorなる組み込みブラウザが最近話題になってるけど、
GeckoやIEコンポーネントが使えれば、そんな苦労は不要だろうに。
0925デフォルトの名無しさん
2007/09/22(土) 19:58:57期待してます><
0926デフォルトの名無しさん
2007/09/22(土) 20:26:050927デフォルトの名無しさん
2007/09/22(土) 21:33:22ブラウザうめこみならJDIC使えばいいと思うよ
0928デフォルトの名無しさん
2007/09/22(土) 21:49:09// http://www.mozilla-japan.org/
// シンプル プログミング ツール
// http://proforceone.web.fc2.com/
// 素因数分解サンプルプログラム
// Calculation processing にコピーして[RUN]
MAX=1000;br();
for(x=2;MAX>=x;x++){write(" "+x+" ⇒");
for(i=2;x>=i;i++){if(0==x%i){k=0;
for(j=2;(i>=j)&&(1>=k);j++){
if(0==i%j){k++;}
} if(1==k){write(" "+i);}
}} br();
} br();
0929デフォルトの名無しさん
2007/09/23(日) 06:09:350930デフォルトの名無しさん
2007/09/23(日) 07:43:40JDICとかいくつかある
0931デフォルトの名無しさん
2007/09/23(日) 15:47:33JDK7 build19から対応が入った様子。
0932デフォルトの名無しさん
2007/09/23(日) 16:58:18そういった未来の予定表はどこ見ればいいですか?
0933デフォルトの名無しさん
2007/09/23(日) 17:21:26未来?最新はb20だぞ
0934デフォルトの名無しさん
2007/09/23(日) 17:23:30http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4811096
0935デフォルトの名無しさん
2007/09/23(日) 19:12:04>>929の件だけなら、
http://forums.java.net/jive/forum.jspa?forumID=25
ここで直前に予告があった。
でも、それは投稿者がBugparadeのトピックを読んで質問してたから。
まあ、偶にここでFixされるビルドが予告されるのもあるけど
直す予定をまとめて公開はしてないと思う。
今は、2週間〜1ヶ月で1つのビルドが出来ている感じ。
ビルド自体は
http://download.java.net/jdk7/binaries/
を見てれば更新されたのが分かるし、更新内容もBugIDとひもづいて確認できる。
0936デフォルトの名無しさん
2007/09/23(日) 20:56:08ありがーと!
そろそろJDK6を視野にいれようと思ってたら、もうJDK7か・・・。
前より良くなってくのだろうけど、おっかけるのも疲れてきた。
Win&Mac対応のアプリやってるのであまり最新ので開発できないのです。
0937デフォルトの名無しさん
2007/09/23(日) 23:08:29数字の大小でソートさせるにはどうすればいいですか?
0938デフォルトの名無しさん
2007/09/23(日) 23:42:09win&linuxなら新版追いかけて開発していけるんだけどね・・・アップルがorz
0939デフォルトの名無しさん
2007/09/24(月) 01:53:53API見ただけだが、たぶんこんな感じ?
DefaultRowSoter sorter = (DefaultRowSotrer)aTable.getRowSorter();
sorter.setComparator(0, new Comparator() {
// ...
});
実際にはgenerics関連とかいろいろ要るはず。
0940デフォルトの名無しさん
2007/09/24(月) 13:21:400941デフォルトの名無しさん
2007/09/24(月) 14:35:47キーイベント拾ってやってみればいいんじゃないかな。
0942デフォルトの名無しさん
2007/09/24(月) 14:55:30ActionMapとInputMapについて調べてみてください。
0943デフォルトの名無しさん
2007/09/24(月) 15:52:26alt + F4で入れたら、JInternalFrameより上のレベルで先にイベント拾ってるもんだから
JInternalFrameは個別にキーが割り当てられているのかと思い込んじまった。
0944デフォルトの名無しさん
2007/09/24(月) 16:58:120945デフォルトの名無しさん
2007/09/24(月) 17:01:580946デフォルトの名無しさん
2007/09/24(月) 17:03:32最初見たとき荒らしの立てたスレかと思った。
高性能とか、標準とか、なんとでも言い方はあると思うんだが。
0947デフォルトの名無しさん
2007/09/24(月) 17:35:050948デフォルトの名無しさん
2007/09/24(月) 18:13:39「Java標準GUI Swing 6」
0949デフォルトの名無しさん
2007/09/24(月) 18:17:55JavaGUI AWT/Swing 6
0950デフォルトの名無しさん
2007/09/24(月) 18:37:080951デフォルトの名無しさん
2007/09/24(月) 18:42:06それはjdk7が普及してからにしないと混ぜるな危険系問題がループすると思う。
初質でも見かけるし。まだ時期早い思う。
まあ、Swingが本当に低速だったのは1.3までだな。
低速の部分を高レベルとか軽量とかAWTと対になる単語入れとけば良いんじゃない?
0952デフォルトの名無しさん
2007/09/24(月) 19:12:18Java標準GUIだけでいいんじゃね?
0953デフォルトの名無しさん
2007/09/24(月) 21:20:010954デフォルトの名無しさん
2007/09/24(月) 22:09:43もしかして俺って天才?
って感じが好きなので低速でお願いします
0955デフォルトの名無しさん
2007/09/24(月) 22:11:240956デフォルトの名無しさん
2007/09/24(月) 22:13:330957デフォルトの名無しさん
2007/09/24(月) 22:15:04あとSwingフレームワークも期待
0958デフォルトの名無しさん
2007/09/24(月) 23:54:160959デフォルトの名無しさん
2007/09/25(火) 00:26:28扱ってもいいんじゃない?
質問の内容としてもSwingにかぶってくるところも有りそうだし。
ただ、擦れたいに入れるかどうかは微妙だな
0960デフォルトの名無しさん
2007/09/25(火) 00:32:31Swing初心者の入門用かセッション保存ライブラリだと思えば・・・。
けど、EDTに自分でinvokeしなきゃいけないのは変わらないんだよね。
0961デフォルトの名無しさん
2007/09/25(火) 03:33:440962デフォルトの名無しさん
2007/09/25(火) 03:42:10あ、俺も低速のが良いぞ。
0963デフォルトの名無しさん
2007/09/25(火) 03:52:220964デフォルトの名無しさん
2007/09/25(火) 07:12:550965デフォルトの名無しさん
2007/09/25(火) 08:46:210966デフォルトの名無しさん
2007/09/25(火) 09:22:24javaのdocなんて間違いだらけじゃないかw
0967デフォルトの名無しさん
2007/09/25(火) 10:57:480968デフォルトの名無しさん
2007/09/25(火) 13:05:111 JavaGUI AWT/Swing 6
1 Java標準GUI
1 Java標準GUI Swing 6
3 Java低速GUI Swing 6
1 Java光速GUI Swing 6
1 Java中速GUI Swing 6
1 JavaそれなりGUI Swing 6
1 Java微速前進GUI Swing 6
思った以上に低速が人気。
0969デフォルトの名無しさん
2007/09/25(火) 14:15:04AWTはスレ違いといわれてもAWTのスレがあるわけでもなく
JOGLは内部で使われるようになってきたからこのスレ向きにもみえるし
0970デフォルトの名無しさん
2007/09/25(火) 14:29:57Java 高速GUI SWT 3
http://pc11.2ch.net/test/read.cgi/tech/1164877399/
俺もGUIは統合してもいいと思うけど、
>>951のいうように、その手の質問が連発される可能性はあるから、
その場合はテンプレを整備する必要があるか。
0971デフォルトの名無しさん
2007/09/25(火) 14:30:400972デフォルトの名無しさん
2007/09/25(火) 14:41:42スレタイは Java Swing 6 で十分な気がする.
0973デフォルトの名無しさん
2007/09/25(火) 15:07:590974デフォルトの名無しさん
2007/09/25(火) 15:15:02なんてどう?
0975デフォルトの名無しさん
2007/09/25(火) 15:37:39でいいだろ
常識的に考えなくて
0976デフォルトの名無しさん
2007/09/25(火) 15:52:54初期化がもっさりすぎとか、メモリ食いすぎとか
粘着されるのが目に見えてる。
低速って入れとくのは処世術みたいなものだ。
0977デフォルトの名無しさん
2007/09/25(火) 15:54:500978デフォルトの名無しさん
2007/09/25(火) 16:26:33俺もそう思う。
というわけで>>974でいいんじゃないかな?
AWTはプログラムの上で混ぜたくはないけど、別に作る程話題ないだろうし。
0979デフォルトの名無しさん
2007/09/25(火) 16:45:590980デフォルトの名無しさん
2007/09/25(火) 19:08:39SOUTHの部分にタスクバーのようなものが表示されるのですが
どうやったら消せますでしょうか。
0981デフォルトの名無しさん
2007/09/25(火) 19:18:51GTKルック&フィールを使ってないか?
0982デフォルトの名無しさん
2007/09/25(火) 20:29:39JLabelやJTextFieldやJButtonを貼り付けて作成するのが
一般的でしょうか?
設定項目が多く、オブジェクトだらけになって大変なことに…
JOptionPaneは名前はそれっぽいのですが、実際には
ダイアログボックスとしてしか使えないようですし、
一体どうやれば効率的に開発できるのか悩んでいます。
0983デフォルトの名無しさん
2007/09/26(水) 00:02:48でも、別に手間がかかるだけで大変ということはないよね?
一括管理したい場合は各種Binding使うとよろし
たんにソースが見にくいというのならそれはコードの品質に問題がある
0984デフォルトの名無しさん
2007/09/26(水) 00:17:07けど >設定項目が多く、オブジェクトだらけになって大変なことに…
こういう事ならUIデザインの問題もあると思う。
0985デフォルトの名無しさん
2007/09/26(水) 01:44:52意図せずにあちこちにぴとぴとくっついたり、
逆に意図した構図にならなかったり
もともと不器用だからストレス溜まりまくり
0986デフォルトの名無しさん
2007/09/26(水) 02:06:040987デフォルトの名無しさん
2007/09/26(水) 02:28:10ボタンとテキストフィールド2,3個くらいなアプリでもなければ無い方が後々のため。
0988デフォルトの名無しさん
2007/09/26(水) 03:51:41MS信者がうるさそうだ。
0989デフォルトの名無しさん
2007/09/26(水) 04:07:30超初期のNetBeansからまったく進化してないのがきつい
JavaEEのほうはどんどんよくなってるのにorz
0990デフォルトの名無しさん
2007/09/26(水) 13:30:35ようやく6にアップグレードしたところなんだがV2Cのスクロールバーの追従性が
数十ミリ秒くらい遅れるようになった
5のときはスクロールバー握って猛烈にスクロールしても全くラグを感じなかったんだけどね
環境はLinuxでのMetalです
0991デフォルトの名無しさん
2007/09/26(水) 14:20:25true double buffering のサポートだかなんだかで
RepaintManager のソースを見てみると怪しげなプロパティがいくつかあるので、いじってみると何か変わるかもしれない
0992デフォルトの名無しさん
2007/09/26(水) 15:35:22GroupLayout使わず旧来のPanel+BorderLayout/FlowLayoutやらGridBagLayout使うなら、GUIエディタの方が楽
GroupLayout使うならGUIエディタなしではありえない。
0993デフォルトの名無しさん
2007/09/26(水) 16:52:130994デフォルトの名無しさん
2007/09/26(水) 17:20:345から6で速度アップはほとんどないというのは過去にいくつも出てきたと思うけど
速くなったのはVMそのもので演算とかGCとかいろいろと
0995デフォルトの名無しさん
2007/09/26(水) 18:08:12爆速になったのはVMで主に動的にレジスタに割り当てるようになったから。
あと、並列GC関連が強化されてるからマルチCPU環境だとGC負荷は下がるかも知れん。
むしろ、Swing自体はロジック変更で一部が遅くなってる。
まあ、散々概出な上にバグ報告までされてて、jdkについてるソース読めば分かることなんだが。
0996デフォルトの名無しさん
2007/09/26(水) 18:46:49自分はもうしわけないことにスキルがない。
だれかできる人お願いします。
0997デフォルトの名無しさん
2007/09/26(水) 19:22:130998デフォルトの名無しさん
2007/09/26(水) 19:49:400999デフォルトの名無しさん
2007/09/26(水) 20:52:03Java標準低速GUI 6 AWT/Swing
http://pc11.2ch.net/test/read.cgi/tech/1190807478/
1000デフォルトの名無しさん
2007/09/26(水) 20:55:15\\/⌒ヽ//
(( \( ^ω^) ))
/| ヘ
//( ヽノ \\
⊂/ ノ>ノ \⊃
レレ 1000〜♪
彡
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。