Java低速GUI Swing 5
■ このスレッドは過去ログ倉庫に格納されています
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
0011デフォルトの名無しさん
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")の方がよくね?
■ このスレッドは過去ログ倉庫に格納されています