Java標準低速GUI 6 AWT/Swing
レス数が1000を超えています。これ以上書き込みはできません。
0001デフォルトの名無しさん
2007/09/26(水) 20:51:18しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 5 (前スレ)
http://pc11.2ch.net/test/read.cgi/tech/1161139809/
Java低速GUI Swing 4
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
0002デフォルトの名無しさん
2007/09/26(水) 20:57:16Java 高速GUI SWT 3
http://pc11.2ch.net/test/read.cgi/tech/1164877399/
0003デフォルトの名無しさん
2007/09/26(水) 20:59:02NetBeans
http://www.netbeans.org/index_ja.html
Eclipse+VisualEditorPlugin
http://www.eclipse.org/
http://www.eclipse.org/vep/
0004デフォルトの名無しさん
2007/09/26(水) 22:10:02ボタンを押すとdispose()して閉じるようにしても
またダイアログを開くと前回表示した内容が残ってしまいます。
2回目の表示のときは、ダイアログを最初から作り直したい
のですが、どのようにすべきでしょうか?
ちなみにVisualEditorを使って作成しています。
0005デフォルトの名無しさん
2007/09/26(水) 22:30:42使わないSwingの子供部品はなくならないわけです。部品自体やその階層
関係はそのままのこっていて、描画が必要になったときにOSリソースが
取り直されるだけ。
地道に値を入れなおすか、子供を全部削除して入れ直(あるいはそれを
するメソッドを呼ぶ)せばいいと思うよ。
0006デフォルトの名無しさん
2007/09/26(水) 23:27:390007デフォルトの名無しさん
2007/09/27(木) 03:04:22標準低速ってなんだよw
オレのお茶返せwww
Q. AWT と Swing 混ぜちゃ駄目って聞いたんですけど
混ぜちゃ駄目なんですか・・・・?
A.
今まででは、「駄目」というのが正解です。
が、現在開発中(未リリース)のバージョンではSwingとAWTの混在ができるようになっています。
正式リリースがされるまで、情報の錯綜があって混乱すると思いますが
普通の人にとっては「まだ駄目」という状況だと思ってください。
0008デフォルトの名無しさん
2007/09/27(木) 07:20:02一乙。
>>7
期待してたテンプレthx.
0009デフォルトの名無しさん
2007/09/27(木) 09:44:34できないよりはできたほうがいいとはおもうけど、Swingのコンポーネント
増やしてくれたほうがうれしい。
0010デフォルトの名無しさん
2007/09/27(木) 10:26:060011デフォルトの名無しさん
2007/09/27(木) 11:36:390012デフォルトの名無しさん
2007/09/27(木) 12:19:58>パフォーマンスの問題は改善されています。
現在完了形キタコレ。
>>9
軽量化よりも環境ネイティブな L&F なのが嬉しそう。
Swing のエミュレーションは見た目は実用レベルで近づいたけど
挙動の微妙な差異にイラっとさせられる時がある。
ファイル選択ダイアログでファイル名をクリックしたら
名前変更モードになっちゃうとか、
ちっこいアイコン叩かないとファイル選択にならないとか、
そういう部分。
0013デフォルトの名無しさん
2007/09/27(木) 14:14:13AWTだと使えるけど、機能が少ないし
AWTとの連携で一番期待したいのはGLCanvasが使えること、かな?
GLJPanelが遅すぎて使い物にならないとか統合チップセット以外なら
Windowモードでも垂直同期が取れているというのが一番大きいかもしれない
0014デフォルトの名無しさん
2007/09/27(木) 18:53:18http://journal.mycom.co.jp/column/ide/015/index.html
こんなんあったんだな。VisualEditorは重すぎだし使ってみようかな。
0015デフォルトの名無しさん
2007/09/27(木) 20:28:23どれも古いプラグインじゃないか。まだ残ってたんだ。
0016デフォルトの名無しさん
2007/09/27(木) 20:42:36有償なやつはいらないな
0017デフォルトの名無しさん
2007/09/28(金) 09:31:110018デフォルトの名無しさん
2007/09/28(金) 10:27:253.3対応のVEはいつでることやら。
>>17
つ>>14
0019デフォルトの名無しさん
2007/09/28(金) 10:30:300020デフォルトの名無しさん
2007/09/28(金) 12:52:22並び方はなかなか懐かしくてよいなあ。
0022デフォルトの名無しさん
2007/09/28(金) 14:41:34最初から読み切って作れればいいんだけどそうもいかない。
GUIの部分って書くの時間かかるじゃん。
メニューを動的に変化させたり、いろんな機能と複雑に絡み合っていたり。
人間側で使いやすい操作法と、コーディングのしやすさは相容れない事が多いし。
使ってみて使いにくいから別のやり方に変更とか、やり直しが頻発するときびしい。
デバッグもいろんなパターンをためしていかなきゃいけないし。
0023デフォルトの名無しさん
2007/09/28(金) 15:02:16イベントの発行順序がかわったりして苦労するとか
ほんと昔からあるとおりデバッグ等は大変だよ
GUIのアニメとか見た目のコントロールはそのフォームべったりになりやすいし
せいぜいビジネスロジックを完全に分離してフロントエンドに何が来てもいいように
するくらいしかない
NetBeansだったら2行以上のロジックはイベントのメソッドに書かないとかIDEごとの常識が存在するし
0024デフォルトの名無しさん
2007/09/28(金) 17:11:04どこかの記事で読んだだけなんだが、同じようなのJavaで付けてくれないかなあ。
0025デフォルトの名無しさん
2007/09/28(金) 17:24:04詳しいことは知らないけどさ。
0026デフォルトの名無しさん
2007/09/28(金) 22:39:31でもさー、最近のリッチクライアント事情っていったらMSのSilverlightとAdobeのAIRの2人勝負で、JavaFXが蚊帳の外になってるよね
0027デフォルトの名無しさん
2007/09/28(金) 23:02:46ランタイムはなにさ?
0028デフォルトの名無しさん
2007/09/29(土) 14:02:240029デフォルトの名無しさん
2007/09/29(土) 14:14:31貼り付けがよく分からないんですけど、
どうやってメニューアイテムとかボタンとかイベントで貼り付けを起動したらいいか分かりません。
あまりググっても出てこないんですけど、日本語の解説サイトとかないですかね?
0030デフォルトの名無しさん
2007/09/29(土) 15:15:270031デフォルトの名無しさん
2007/09/29(土) 15:39:55それはDnDの範疇ではなく、普通にクリップボードを介してオブジェクトを渡せばいいんじゃないか?
DragSourceから引き出してDropTargetへ落とすまでは一連の操作だから、
ドラッグの開始で得られたTransferableをメニューやボタンなんかの他の操作でどうにかしたりはできない。
Transferableをクリップボードへ→クリップボードから貼り付け対象へ
という二段階のそれぞれを処理するイベントハンドラをメニューやボタンにaddすればいいんじゃないか?
0032デフォルトの名無しさん
2007/09/29(土) 15:42:02tableにwindows上でファイルを右クリック→コピーでクリップボードに入れたファイル(?)
を解析してそのファイルの情報
D&Dできるようにはした。
http://up2.viploader.net/bg/src/vlbg013628.jpg
public boolean importData(TransferSupport support) {
if (!canImport(support)) {
return false;
}
try {
Object obj = support.getTransferable()
.getTransferData(DataFlavor.javaFileListFlavor);
List<File> files = (List<File>)obj;
for (File file: files) {
//if (filter.accept(file)) {
frame.addRowFile(file); ←このメソッドでtableにファイル情報が追加される
//}
}
return true;
} catch (UnsupportedFlavorException ex) {
// 失敗したら false を返すだけ
} catch (IOException ex) {
// 失敗したら false を返すだけ
}
return false;
}
D&Dなら投げ込むだけimportDataがたぶん起動してる。
貼り付けの時のどうやってimportDataを動かすか分からない…
0033デフォルトの名無しさん
2007/09/29(土) 16:07:51そのメニューに getPasteAction を設定してる?
0034デフォルトの名無しさん
2007/09/29(土) 20:53:44すいません、ちょっと出かけてました…
その辺がよく分からなくて、
pastejMenuItem.setActionCommand((String)TransferHandler.getPasteAction().getValue(Action.NAME));
と書いてみました。何かでも間違ってるっぽい
0035デフォルトの名無しさん
2007/09/29(土) 22:03:23Timerで1秒間隔でJFrameを描画しなおす為にactionListenerを定義しようと
したんですが、VEで作成したパネル上で
[右クリック]→[Events]→[actionPerformed]
しようとしたんですが・・・・
actionPerformedがメニューに出てきません。
eclipseから全てインストールしなおしても変わりません。
何が原因なんでしょうか?
環境は
eclipse 3.2 + JRE1.6.0_02
GEF 3.2
EMF 2.2.0
VE 1.2
Windows XP Pro SP2
です。
0036デフォルトの名無しさん
2007/09/29(土) 22:09:57actionPerformedで
Transferable transferable = Toolkit.getDefaultToolkit().getSystemClipboard().getContents(this);
Object obj = transferable.getData(DataFlavor.javaFileListFlavor);
List<File> files = (List<File>)obj;
以下略
ってやった方が簡単な気がする
0037デフォルトの名無しさん
2007/09/29(土) 22:14:26VEでは、javax.swing.TimerはGUIコンポーネント扱いされないので、
ポップアップメニューからaddActionListenerはできない。
手書きしよう。そんなに面倒じゃない。
0038デフォルトの名無しさん
2007/09/29(土) 23:50:52javax.swing.Timerはあんまりつかわんよな
1.3以上は
0039デフォルトの名無しさん
2007/09/30(日) 01:39:56そう?
手書きで精度をあまり問わないちょっとしたもので定期的実行が必要な時によく使うんだが。
0040デフォルトの名無しさん
2007/09/30(日) 12:29:43ということかもしれない。
0041デフォルトの名無しさん
2007/09/30(日) 13:01:29より複雑な並列動作に使うことは多いね
0042デフォルトの名無しさん
2007/09/30(日) 17:11:140043デフォルトの名無しさん
2007/09/30(日) 17:26:50java.util.Timerってことだろ?
0044デフォルトの名無しさん
2007/09/30(日) 17:28:440045デフォルトの名無しさん
2007/09/30(日) 17:57:551.5以上ならjava.util.concurrentはよくつかうね
SwingWorkerはpublishとのタイミングがわからんから使われないことが多いかも
つーか、面倒だよな、あれ
0046デフォルトの名無しさん
2007/09/30(日) 18:40:34文書ソフトのファイルの読み書きと文書内検索にはちょうど良いと思った。
使い捨てのコストもそれならあまり気にならないし。
0047デフォルトの名無しさん
2007/10/01(月) 08:27:28つまりimportしているライブラリによって選べると言う事でしょうか?
Timerは置いておいてパネルだけ作って追加しようとしてもメニューに表れません。手書きしてしまうのも良いのですが、今の状況がVEの正しい挙動なのか気になるところです。
そもそも、eclipseのGUI作成プラグインとしてVEを選んだのが正解だったかも疑問です。eclipse使ってる方々はGUI作成はどうしてるのか教えていただきたいです。
0048デフォルトの名無しさん
2007/10/01(月) 09:44:17「パネルだけ作って追加」の意味が分からないが、
addActionListenerはJPanelにはない。
javax.swing.TimerはGUIコンポーネント扱いされないが、
Java Beansとして置く分には可能なので、それで追加して
addActionListenerを手書きするといい。
上で挙げられているような
java.util.Timerとどちらを使うかはお好きに。
どちらにしてもGUIコンポーネント扱いはされない。
ちなみに俺はVE使ってるが、半分意地みたいなところがある。
これがベストの選択肢という自覚はない。
昔Jigloo使ったことがあるけど、
com.cloudgarden.*なクラスが勝手に作られたり
自動生成されたコードが見づらかったりと
(1メソッドに全てのコンポーネント設定コードが詰め込まれるタイプ)
不満だったので止めた。今は良くなってるのかもしれないけど。
NetBeansという選択肢もあるが、わざわざ使い分けるのが面倒くさい。
0049デフォルトの名無しさん
2007/10/01(月) 12:34:02まぁNetBeansだとできるけど、Eclipseだと商用製品に手をつけるのがオススメ
0050デフォルトの名無しさん
2007/10/01(月) 12:47:55最近は改善されてるのかな…
0051デフォルトの名無しさん
2007/10/01(月) 12:50:360052デフォルトの名無しさん
2007/10/01(月) 14:05:180053デフォルトの名無しさん
2007/10/02(火) 13:12:58開発環境じゃないけど、
http://bugreport.sun.com/bugreport/contact.jsp?language=ja
JREが改良され、使われる様になったら、ここにいる人にもメリットあると思うので、
なんかあればfeedbackしておくと良いと思う。
0054デフォルトの名無しさん
2007/10/03(水) 22:32:49やり方はいろいろありそうだけど、ソースがきれいになりそうなやり方あれば教えてちょ。
0055デフォルトの名無しさん
2007/10/03(水) 22:44:230056デフォルトの名無しさん
2007/10/03(水) 23:40:31char c = e.getChar();
if(c >='0' && c <=9)
return;
else
e.consume();
とかしても結構すっきりして好きだなー
0057デフォルトの名無しさん
2007/10/03(水) 23:41:200058デフォルトの名無しさん
2007/10/04(木) 00:48:540059デフォルトの名無しさん
2007/10/04(木) 01:16:02セルを入力モードにせずに適当なキーを押して入力した場合はCellEditorを使ってないの?
CellEditorをかならず使うようにしたいのだが、どうすればよいかな。。。
0060デフォルトの名無しさん
2007/10/04(木) 01:27:14もう少しわかるように
0061デフォルトの名無しさん
2007/10/04(木) 02:17:15Character.isDigit使う方がよくね?
と思ったが、漢数字や全角数字にもtrueを返すんだよな。
0062デフォルトの名無しさん
2007/10/04(木) 16:26:51ヘッダ行の文字数が多すぎると、項目によっては
...で項目名が省略されちゃいますよね。
セルの横余白を調節することってできませんか?
0063デフォルトの名無しさん
2007/10/04(木) 16:51:110064デフォルトの名無しさん
2007/10/04(木) 18:11:06列の幅変えたいなら
TableColumn column = table.getColumn(col);
column.setMinWidth(min);
column.setMaxWidth(max);
column.setPreferredWidth(width);
0065デフォルトの名無しさん
2007/10/04(木) 23:46:59ありがとうございます。でもすみません,ヘッダ行についてだけなんです。
これだと,普通のセルの余白が変更されちゃうんじゃ・・・
0066デフォルトの名無しさん
2007/10/04(木) 23:59:03そう申すのか?
0067デフォルトの名無しさん
2007/10/05(金) 00:05:20そのとおりです。たとえば,ヘッダ行が
| 果物名 | 産地 | 価格 |
のようにあったときに,
| 果物名 | 産地 | 価格 |
としたいのです。列のサイズ自体を変更することはできますが,ある程度
小さくすると項目行が「果...」とかになってしまって見にくくなって,
でも余白はきっちりとられているものですから,なんとかならないかなーと。
0068デフォルトの名無しさん
2007/10/05(金) 00:09:340069デフォルトの名無しさん
2007/10/05(金) 10:24:07ありがとうございます。
とりあえず,new DefaultTableCellHeaderRenderer()したものをそれぞれの列に
セットすることができるようになりました。
ただ,そのヘッダ行だけ周りのL&Fから浮いてしまっているだけでなく,クリックや
マウスホバーにも反応しないのが大変痛いです。
TableColumn#getHeaderRendererで中身を取って,それを操作してやるのが一番
よいのではないかと思ったのですが,うまくいかず・・・
(DefaultTableCellHeaderRenderer)JTable.getColumnModel().getColumn(0).getHeaderRenderer();
とかだとnullが返ってきてしまいます。
0070デフォルトの名無しさん
2007/10/05(金) 11:11:430071デフォルトの名無しさん
2007/10/05(金) 17:07:29マウスイベントで、シングルクリックとダブルクリックを識別するには、
MouseEvent#getClickCount()でボタンを押した回数が分りそうに思えるけど、
ダブルクリックをするとイベントが二回発生して、
一回目はClickCount=1のイベント、
二回目にClickCount=2のイベントというように発生するよね。
たとえば画面に丸印を用意して、その丸をシングルクリックのときは四角に、
ダブルクリックのときは、三角に変化させる。
別のボタンを押すとまた丸にもどる。というプログラムを作りたいとする。
ところがダブルクリックのときは、まず1回目のクリックでmouseClicked()が呼び出され、
二回目のクリックで再び同メソッドが呼び出される事になる。
だから次のようなコードを書いたとすると・・・
public void mouseClicked(MouseEvent evt) {
int count = evt.getClickCount();
if(count == 1) {
//四角を描画
} else if(count ==2) {
//三角を描画
}
}
ダブクリのとき、1度目のクリックで四角が描画され、
二度目のクリックで三角が描画されることになってしまう。
ダブクリとシングルクリックを識別することがmouseClicked()では
実のところできないような気がするのだけど、みんなどんなやり方してますか?
0072デフォルトの名無しさん
2007/10/05(金) 17:39:10結果としてワンクリック目の四角形は消えて最終的に三角形だけが残るんなら。
0073デフォルトの名無しさん
2007/10/05(金) 17:49:35じゃあシングルならダイアログAが開き、ダブクリならダイアログBが開くような場合は?
0074デフォルトの名無しさん
2007/10/05(金) 18:11:45そんないかれた仕様にするならどちらかをモディファイアキー有りにするかポップアップメニューにしてくれ…
# シングルクリック時にタイマーを設定してダブルクリック時にタイマーをキャンセルとかすればできなくはないか…
0075デフォルトの名無しさん
2007/10/05(金) 18:14:16ダブルクリック1回のつもりが失敗してシングルクリック2回になってしまうことはよくある。
その逆もよくある。
そういうゲームならともかく、ミスったら終わりみたいなユーザインタフェイスはやめた方がいいと思う。
0076デフォルトの名無しさん
2007/10/05(金) 18:33:36>>74
まあタイマー使うことになるよね。
>>75
ワンクリでアイテム選択、ダブクリでアイテムプロパティ設定とか、よくあるでしょ。
MSのパワポとか。
0077デフォルトの名無しさん
2007/10/05(金) 18:34:12こんなのは? シングルクリックの動作が遅れるのは
原理的にダブルクリックとの判別にそれだけ時間をかけないといけないからなので仕方がない
四角の描画は別スレッドなのでシングルスレッドルールに反してはいけないときはEDTに描画を投げるようにして
まあ基本的にこういうふうにクリック回数で処理を分けるUIはよくないと思うが
private final int mci = ((Integer)Toolkit.getDefaultToolkit().getDesktopProperty("awt.multiClickInterval")).intValue();
private boolean flag;
public void mouseClicked(MouseEvent evt) {
int count = evt.getClickCount();
if(count == 1) {
new Thread(new Runnable() {
public void run() {
flag = true;
try { Thread.sleep(mci); } catch (InterruptedException e) {}
if (flag) {
//四角を描画
}
}
}).start();
} else if(count == 2) {
flag = false;
//三角を描画
}
}
0078デフォルトの名無しさん
2007/10/05(金) 18:50:12AWTは知らないけど、少なくともSwingのコンポーネントの多くはそのコンストラクタで
オーバライド可能なメソッドを呼び出したり、
そのインナークラスをイベントリスナーとして登録してるんだけど、
どう考えればいいのかな。
コンストラクタが終了する前に this を漏洩することは、
オブジェクトが整合性を整える前にメソッドが呼び出される可能性がある。
とりあえず、基本EDT限定なので、まあ、別スレッドから呼び出される心配はないかもしれないが、
それを差し引いても、例えばリスナー登録の瞬間にコールバックされたりなど
シングルスレッドでも、コンストラクタ完了前に呼び出される危険がある。
とりあえず、今考えているのは、Swingを使う場合は
自前コンポーネントでthisを漏洩しないよう(ファクトリメソッドを作るとか)複雑にしても、
既に親クラスが漏洩しているので、複雑にした分だけ損。それなら、毒を食らわば皿までということで、
1.コンストラクタでイベントハンドラの登録やオーバライド可能なメソッドの呼び出しはOKとする
2.イベントの仕組みを作る場合は、イベントを登録した瞬間にコールバックしない
(標準で用意されているSwingのコンポーネントはそうなってるのかなあ?)
3.オーバライドを前提としているメソッド(paintComponent()など)以外は、絶対オーバライドしない
というルールでカバーできるのかなと思っているのだけど、どなんでしょうか
0079デフォルトの名無しさん
2007/10/05(金) 18:51:47エクスプローラとかパワポとかテキストエディタは、実際にワンクリ目の動作 (項目選択とかカーソル移動とか) を実行してる。
その後にダブクリの動作を実行するけど、そういう流れで問題ないユーザインタフェイスになってるからな。
0080デフォルトの名無しさん
2007/10/05(金) 18:51:58おー、シンプルでいいね!
漏れが考えたのはもう少し冗長だった。
勉強になりますた!
0081デフォルトの名無しさん
2007/10/05(金) 18:59:28言われてみればそうだね。
クリック回数で処理を分けるのは、よほどの理由がないかぎり
やらないほうが良いのかもしれない。
008278
2007/10/05(金) 21:27:334.リスナーの登録はコンストラクタの最後にする。
が必要か。リスナーの登録メソッド自身がイベントを発生したら木阿弥だけど。
いいのかこんなので
0083デフォルトの名無しさん
2007/10/05(金) 22:59:320084デフォルトの名無しさん
2007/10/05(金) 23:41:33コンストラクタで登録しても問題ない
0085デフォルトの名無しさん
2007/10/06(土) 00:15:19・SwingコンポーネントのイベントはAWTスレッドでしか発行しない
これだけでおけでは?
ところでDesktopがWindowsXPで動かないわけだが、これはいったいどういうコードになってるんだ?
0086デフォルトの名無しさん
2007/10/06(土) 00:33:400087デフォルトの名無しさん
2007/10/06(土) 00:50:29ttp://www-06.ibm.com/jp/developerworks/java/050826/j_j-jtp07265.shtml
ttp://www-06.ibm.com/jp/developerworks/java/020823/j_j-jtp0618.html
0088デフォルトの名無しさん
2007/10/06(土) 01:03:45同じXPでも動くマシンと動かないマシンがあるのだ
すべてJREは同一という不思議
>>87
俺が言いたいのはコンストラクタをAWTスレッドでしか生成しないと問題は少ないという意味なんだが
生成中にthis公開するのが変というのは常識だろ
>>78の前提がおかしいのは当たり前で
それをふまえてそのままのコードでいかに問題なく動かせるかの話じゃないの?
そして現在の実装において問題が発生することはないはず(5.0までは)
結局AWT/Swingなんてソース見ればわかるとおりほとんどVM依存コードの塊なんだけど、
SunのVMで実行しているかぎり問題は表面化していないというのが正しいか
0089デフォルトの名無しさん
2007/10/06(土) 01:54:54final AtomicReference<String> lastSetText = new ...
@Override
public void setText(Strint text) {
super.setText(text);
lastSetText.set(text);
}
0090デフォルトの名無しさん
2007/10/06(土) 16:17:20public class NPO extends JTextField {
public NPO(String text) { super(text); }
>>89 のコード
}
として、nullでない文字列を使ってクラスNPOのインスタンスを生成すると、
その時点で、ぬるぽになる。
オーバライド可能なメソッドをコンストラクタで使うことは、
生成中にサブクラスに this を漏洩しているのと同じでやってはいけない。
このような常識を Swing は平然と破っている。したがって、Swing を使うには、
「このメソッドは、(心の目でみると) final が付いているからオーバライドしてはいけないんだ!」
などという脳内変換ルールが必要なのは明らか。
0091デフォルトの名無しさん
2007/10/06(土) 16:24:070092デフォルトの名無しさん
2007/10/06(土) 17:09:080093デフォルトの名無しさん
2007/10/06(土) 17:54:360094デフォルトの名無しさん
2007/10/08(月) 13:48:570095デフォルトの名無しさん
2007/10/10(水) 06:22:58ふと以前何処かでそういう文章を読んだことを思い出し、とりあえず盲目的にそれを追記してみた所、
バキュームベッドから空気を掃除機で全部吸い取った様に空間の余裕が消え、ピッチピチに圧縮されました。
setBounds()でウィンドウサイズを設定していたのにたまったもんじゃないです。
しかしまぁそれで大体どういう動きをするメソッドか分かりました。
ただピチピチにパックするだけでは無いだろうと思い調べてみたのですが、
それ以上の情報は見つからず、必ずパックしろといった記事も見つかりません。
今までパックしていなかったにも関わらず何事も無く動いていたので、何かの勘違いだったんでしょうか。
それとも偶々運良く動いていただけなんでしょうか。
0096デフォルトの名無しさん
2007/10/10(水) 08:58:37余白が欲しければちゃんとBorderなりをセットしてからpackしろ
setBounds()で固定サイズとかダメすぎ
0097デフォルトの名無しさん
2007/10/10(水) 11:19:45大体とか言わず、正確に理解しといた方がいいと思うよ
http://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Window.html#pack()
>サブコンポーネントの推奨サイズおよびレイアウトに合わせて、この Window をサイズ変更します
余裕が欲しいコンポーネントには推奨サイズを設定 (setPreferredSize) しておけば、そのサイズに合わせてくれる
0098デフォルトの名無しさん
2007/10/10(水) 14:27:26合わせてくれるかどうかはレイアウトマネージャ次第。
推奨サイズなんだから無視されても文句は言えない。
>>96のようにBorderでマージンとるのを推奨。
0099デフォルトの名無しさん
2007/10/10(水) 20:26:34次期Java 6、Direct3Dの概要が明らかに - WindowsでのSwing 2D描画を高速化
ttp://journal.mycom.co.jp/news/2007/10/09/021/index.html
0100デフォルトの名無しさん
2007/10/10(水) 20:34:26# いや、そういうコトなら結構昔に変わってるはずで・・・
010195
2007/10/10(水) 20:44:20今までモヤモヤしていた部分が引き締まったようで、とってもすがすがしいです。
>>96さん、>>97さん、どうもレスありがとうございました。
0102デフォルトの名無しさん
2007/10/11(木) 00:12:05デフォルトでオンはいいよね。MacではOpenGLがオンになるんだろうか・・・。
0103デフォルトの名無しさん
2007/10/11(木) 00:29:460104デフォルトの名無しさん
2007/10/11(木) 00:38:44現状だとDirect3Dモードにすると品質がかわるので使い物にならない
0105デフォルトの名無しさん
2007/10/11(木) 01:08:52それがさ、Java SE 6からSunのレンダラがデフォルトになる予定なのよ。
0106デフォルトの名無しさん
2007/10/11(木) 04:10:28-Dsun.java2d.d3dは支援がまともに得られないから無効だった(パフォーマンス落ちる)
当然-Dsun.java2d.openglはバグ回避で無効。
しかし、D3D9ベースになるのかPS2.0も使うみたいだしVGAとドライバ依存がでかくなるな。
それよりNimbusはマルチバイト文字通るようになるの?w
0107デフォルトの名無しさん
2007/10/11(木) 13:03:09去年でたDeveloperPreviewでは、PSフォントのレンダリングがガタガタだったんだけど
それ以来、DeveloperPreview無しのまま。
ttp://pc11.2ch.net/test/read.cgi/mac/1138543708/172
>>106
JDK6u5では、日本語通ってるよ。
org.jdesktop パッケージのは古いよ。
http://download.java.net/jdk6/
では、パッケージ自体が変わってる。
sun.swing.plaf.nimbus.NimbusLookAndFeel
ね。
org.jdesktop.swingx.plaf.nimbus.NimbusLookAndFeel
のヤツは化ける。
0108デフォルトの名無しさん
2007/10/11(木) 20:02:53けど、-Dsun.java2d.d3d=trueがデフォになるってことはJOGLでプログラマブルシェーダー使うときは明示的にfalseにしないとOpenGLのシェーダーが効かなくなるな。
(win版JVMはd3dとddrawがtureだと効かない、他はDirectXがないので関係ない)
けど、バックエンドがD3D9とPS2.0に変更になっただけで
描画アルゴリズムは今まで通り、OpenGL版と同じだからパフォーマンスは対して変わらんだろうなぁ。
むしろ、OpenGLパイプラインの一部がJOGLと共通化されてOpenGL使った方がJOGLやSwingにはメリットあるんだよな。
けど、個人向けVGAのOpenGLドライバはNVIDIAもATIもバグが回避出来んしなぁ。
もういっそ、J/Directをry・・・w
それよりjdk6に密かに入ってるJava Smart Card IO APIのjavax移動はマダー!?
jdk6はいろんなモン隠しすぎw
0109デフォルトの名無しさん
2007/10/11(木) 20:21:44JDesktop側のweeklyビルドの方が古い様子。
どうも、JDK6u5が一番始めに組み込まれてるんじゃないかと。
JDK7にもまだ入ってないし。
0110デフォルトの名無しさん
2007/10/11(木) 23:58:070111デフォルトの名無しさん
2007/10/15(月) 22:49:48読み込んで表示まではいけたんだが、最初の1フレームだけ表示してる感じ
アニメーションGIFだけMistralを使わないとか、もう全部Mistral使わないでやったほうがいいんだろうか
0112デフォルトの名無しさん
2007/10/16(火) 01:09:070113デフォルトの名無しさん
2007/10/16(火) 01:40:30?
0114デフォルトの名無しさん
2007/10/16(火) 03:08:55確かpngはできないけどgifできたような気がする
0115デフォルトの名無しさん
2007/10/16(火) 03:15:320116デフォルトの名無しさん
2007/10/16(火) 03:15:340117デフォルトの名無しさん
2007/10/16(火) 03:55:17>>114
pngのアニメーション仕様なんて画像ビューアーにすら忘れ去られてる存在だから気にしないw
対応してるのは次期Fxくらい。
0118デフォルトの名無しさん
2007/10/16(火) 04:03:180119デフォルトの名無しさん
2007/10/16(火) 19:04:35jpeg2000は使われることなく次世代策定中かorz
実際、jpeg2000の拡張仕様まで実装したらPNGどころじゃない超万能規格なんだが。
ウェーブレットいいよ、ウェーブレット!
0120デフォルトの名無しさん
2007/10/16(火) 22:07:55良い面を全部帳消しにするぐらい現在のCPUでも結構重いってのがな……
0121デフォルトの名無しさん
2007/10/16(火) 22:17:580122デフォルトの名無しさん
2007/10/16(火) 23:24:270123デフォルトの名無しさん
2007/10/16(火) 23:33:46JAIがまともになるはずないだろ・・・
0124デフォルトの名無しさん
2007/10/17(水) 02:22:170125デフォルトの名無しさん
2007/10/17(水) 14:13:040126デフォルトの名無しさん
2007/10/18(木) 08:49:07JFileChooserのcancelボタンに表示する文字を変えるにはどうすればいい?
ApproveButtonは変えれるのに、キャンセルはなぜ変えれない?
0127デフォルトの名無しさん
2007/10/18(木) 11:12:570128デフォルトの名無しさん
2007/10/18(木) 16:42:55JTextFields 名前 = new JTextField();
JRadioButton 女 = new JRadioButton("女");
JRadioButton 男 = new JRadioButton("男");
JButtonGroup buttonGroup.add(女);
JButtonGroup buttonGroup.add(男);
Javaの変数名はダブルバイト可だし、自然言語風に書くのがスタイルなんだし。
0129デフォルトの名無しさん
2007/10/18(木) 16:45:33ButtonGroup buttonGroup = new ButtonGroup();
buttonGroup.add(女);
buttonGroup.add(男);
0130デフォルトの名無しさん
2007/10/18(木) 16:52:32ファイルシステムに依存しやすいクラス名と違ってフィールド名やローカル変数は問題は出ないよ
DBでも日本語名のカラムを使うかどうかという話と同じく宗教だから気にすんな
クラス名でつかうのはさすがにとめる
0131デフォルトの名無しさん
2007/10/18(木) 17:23:17マルチプラットホームのJavaではまさに致命的だし、うかつに手を出せん。
0132デフォルトの名無しさん
2007/10/18(木) 17:41:370133デフォルトの名無しさん
2007/10/18(木) 18:21:430134デフォルトの名無しさん
2007/10/18(木) 18:24:02まあ、無駄に怖がってるのかも試練がな。
だが、linuxなんかで文字コードに苦しんだ俺としては、
少しでもリスクを減らしたい。
0135デフォルトの名無しさん
2007/10/18(木) 18:33:24変数名に日本語使えるのか!しらんかった!
0136デフォルトの名無しさん
2007/10/18(木) 20:23:17Character.isJavaIdentifierStart(char)
Character.isJavaIdentifierPart(char)
で調べられる。
識別子の頭に使えるかと頭以外で使えるかがチェックできるよ。
0137デフォルトの名無しさん
2007/10/19(金) 00:17:38クラス名はクラスファイルで問題出る可能性があるけど
String 半角カナ = StringConverter.get半角カナ( 全角ひらがな );
氏名フィールド.setText("ほげほげ");
JMenu ファイルメニュー = new JMenu("ファイル(F)");
JMenuItem 開くアイテム = new JMenuItem("開く");
ファイルメニュー.add(開くアイテム);
みたいな使い方もできるから、大胆に使ってみたいんだが、
やっぱりなんか気がひける。w
Java言語のスタイルとしては、ある意味、正しいように思うけど。
0138デフォルトの名無しさん
2007/10/19(金) 00:19:14入力がうざそうだなぁw
俺カナタイパーだから、IMEオンのままコード打つの難しいし
0139デフォルトの名無しさん
2007/10/19(金) 00:20:470140デフォルトの名無しさん
2007/10/19(金) 00:33:55DOS/VキーでATOKの話だけど、タッチタイプで親指で[変換]キーを叩いて、
全角/半角の切替をマスターしたらけっこう楽に入力できるよ。
チームの中で一人だけ漢字でメソッド名つけたりする人いるのはまずそうだが。w
0141デフォルトの名無しさん
2007/10/19(金) 00:39:53けっこういい感じなんだけどね。わかりやすい。
本番で採用したことはないけど。
英語圏の人には災難。
0142デフォルトの名無しさん
2007/10/19(金) 00:41:07ローマ打ちの人に「面倒じゃない?」ってよく言われる
ローマ打ちの方が遅いから、「平気、っーかよくわかんない」
0143デフォルトの名無しさん
2007/10/19(金) 00:41:14スマン!気が引ける事もなく最近じゃ普通に使ってる。
プロジェクトとして利用を推進してる。
ホント分かりやすいよ。
>>138-140
補完されるから日本語を全部打つ事はあまりない
>>140 ではないが、Macの流儀に合わせて変換キーで全角モードに入るようにしている
0144デフォルトの名無しさん
2007/10/19(金) 00:42:46まーじーかー
どうせリファクタリングでゴリっと直せるんだし、挑戦してみようかな
0145デフォルトの名無しさん
2007/10/19(金) 00:51:14おーっ、勇気あるなーww
Javaはもともとダブルバイトを変数名やメソッド名に許しているんだからして、
そういう作法もありだとSunも暗黙に認めてるってことじゃないかと。
将来には見たこともないフォントで書かれたソースコードが
出てくるような気がするんだよね。
0146デフォルトの名無しさん
2007/10/19(金) 00:57:15個人的に使う分にはまったく問題ないし。
0147デフォルトの名無しさん
2007/10/19(金) 00:58:280148デフォルトの名無しさん
2007/10/19(金) 01:20:31ちょっと気になったので・・・・フォントと文字自体は、別のものですよ。
見た目と意味、くらいの違いがあります・・・・
老婆心ながら、ちょっと調べておいた方がよいかと・・・
0149デフォルトの名無しさん
2007/10/19(金) 01:21:39Javaを全て日本語で書くとかいう研究がどっかであったけど、
ソースがあまりにもカッコ悪くて、プログラミング言語のほとんどが英語で良かったと思っている
0150デフォルトの名無しさん
2007/10/19(金) 01:31:10で、JLabelを継承して、paint(Graphics g)をオーバーライドしたら、拡大縮小回転を楽しめたんですよ。
ここで質問です。
paint(Graphics g)が呼ばれたときに、
アニメーションGIFの何フレーム目を表示しようとしてるか検出できますかね?
拡大縮小回転のさせたBufferedImageを保存して再利用したいんだけど、
今何フレーム目とかわからないと、再利用できない気がするんだぜ
0151デフォルトの名無しさん
2007/10/19(金) 01:50:12気分とかカッコいいとかそういった主観に基づい行うもんじゃないだろ。
便利なのか必要なのかどうかで違ってくる。
それも言語仕様でサポートされてるから安心して使えるし。
0152デフォルトの名無しさん
2007/10/19(金) 03:48:140153デフォルトの名無しさん
2007/10/19(金) 07:37:14同意!
0154デフォルトの名無しさん
2007/10/19(金) 07:46:07文意を理解してよw
ギリシア語やタイ語の文字のグリフで変数名が書かれているかもしれないってこと。
0155デフォルトの名無しさん
2007/10/19(金) 08:45:120156デフォルトの名無しさん
2007/10/19(金) 09:44:44日本語環境のIDE上で表示できるかどうかはしらんけど。
0157デフォルトの名無しさん
2007/10/19(金) 12:18:44エキサイト翻訳ででてきた意味不明な英語がはいるよりは漢字のほうがましだと思う
そのアプリは日本国外での開発で、海外で売る気があるのかい?と
数年後メンテをやらなくてはならない場合に
ドキュメントが残ってない場合把握しやすいというメリットもある
DBで日本語の項目名いれてNetBeansなりでJPAを生成でもすれば
日本語名のプロパティが見事に生成されるわけだが、わりとみやすいし
いざとなればリファクタリング一発だから問題はねぇな
0158デフォルトの名無しさん
2007/10/19(金) 12:19:33とりあえず軽量コンポーネントでpaintそのものをオーバーライドするのやめれ
0159デフォルトの名無しさん
2007/10/19(金) 14:17:33NetBeansだとGUIまわりのリファクタリングはひっかかるケースが多いけど。
0160デフォルトの名無しさん
2007/10/19(金) 14:44:40変数名に日本語使えばバイトコードにも残るの?
0161デフォルトの名無しさん
2007/10/19(金) 15:14:300162デフォルトの名無しさん
2007/10/19(金) 16:18:190163デフォルトの名無しさん
2007/10/19(金) 16:24:360164デフォルトの名無しさん
2007/10/19(金) 16:26:360165デフォルトの名無しさん
2007/10/19(金) 21:02:52C#だとGenerics型は残るらしいね。
Javaのはキャストしてるだけってのが理由だろうけど。
0166デフォルトの名無しさん
2007/10/19(金) 21:22:05確保されてたはず。
0167デフォルトの名無しさん
2007/10/19(金) 21:42:430168デフォルトの名無しさん
2007/10/19(金) 22:25:36NetBeansのGUIコンポーネントの話はしてないよ
リファクタリングはJPAのほう
GUIのコンポーネントのリファクタリング問題は4.1あたりで直すとか言ってたのだが
絶賛放置中
>>167
なさそうではなくて問題ない
問題が出るとしたらマッピングがおかしい場合だけ
0169デフォルトの名無しさん
2007/10/20(土) 00:50:24Netbeansは、リファクタリング無しでも日本語が使えないGUIエディタまわりがあるな。
Javaで作って、何でそうなるのか問い詰めてやりたい。
0170デフォルトの名無しさん
2007/10/20(土) 04:02:05使わないものがどうなっていようとそれは仕様です。
0171デフォルトの名無しさん
2007/10/20(土) 04:45:280172デフォルトの名無しさん
2007/10/20(土) 06:30:17確かに国際化は意識して対応しないとまともに動かないけど
それってsunは他言語のことなんて知りません、手抜きですって告白してるようなものなんだが
0173デフォルトの名無しさん
2007/10/20(土) 06:52:510174デフォルトの名無しさん
2007/10/20(土) 21:09:54やっぱフォントまわりかな。
文字列はダブルバイトでも1文字でカウントしてくれるし、
ファイルにはUnicodeで書き出するようにすればてっとり早い。
でもアプリの性質にもよるか。
エディタのように文字を扱うのは問題おきやすいかもね。
0175デフォルトの名無しさん
2007/10/20(土) 23:01:36InputStream, OutputStreamで処理してる糞アプリや糞ライブラリ
をよく見かけたな…
0176デフォルトの名無しさん
2007/10/21(日) 00:04:320177デフォルトの名無しさん
2007/10/21(日) 00:59:580178デフォルトの名無しさん
2007/10/21(日) 03:01:530179デフォルトの名無しさん
2007/10/21(日) 03:46:160180デフォルトの名無しさん
2007/10/21(日) 06:58:55よく見かけるほどJavaアプリがあったのか
0181デフォルトの名無しさん
2007/10/21(日) 08:31:45Appletもいらない。
0182デフォルトの名無しさん
2007/10/21(日) 10:23:380183デフォルトの名無しさん
2007/10/21(日) 13:00:160184デフォルトの名無しさん
2007/10/21(日) 13:07:280185デフォルトの名無しさん
2007/10/21(日) 13:21:200186デフォルトの名無しさん
2007/10/21(日) 14:02:14アプリ配布じゃ駄目なのか?
0187デフォルトの名無しさん
2007/10/21(日) 14:08:52バージョンが上がってもユーザーは自分の意志でダウンロードしなくていい。
望めばデスクトップのアイコンやスタートメニューのエントリも作ってくれる(後からでも)。
あたりまえだがアンインストールにも対応してる。
0188デフォルトの名無しさん
2007/10/21(日) 14:47:220189デフォルトの名無しさん
2007/10/21(日) 15:02:200190デフォルトの名無しさん
2007/10/21(日) 15:07:53エロゲメーカーにもってこいの機能だな。
0191デフォルトの名無しさん
2007/10/21(日) 15:30:05普通にローカルファイルだって使えるし、組み込みDBやプラグインだっていける。
Eclipse RCPをJava Web Startで配布することも可能だよ。
ttp://help.eclipse.org/help31/index.jsp?topic=/org.eclipse.platform.doc.isv/guide/java_web_start.htm
0192デフォルトの名無しさん
2007/10/21(日) 16:59:03思い出せるのはV2CとTopCoderぐらい
他にももっと見てきたはずなんだが
0193デフォルトの名無しさん
2007/10/21(日) 16:59:350194デフォルトの名無しさん
2007/10/21(日) 17:49:40WebStartは配布技術だからWebStartアプレットというのもある
まぁ、WebStartアプリケーションのほうがはるかに使いやすいけど
今のJavaだとWebStartはデスクトップなどへのショートカット、
アプリケーションの追加と削除でアンインストールが出来るなど大幅によくなってるが
スタンドアロンアプリでもショートカットやアンインストールやってほしいのにねぇ
リッチクライアントは不特定多数を相手にしたものではなくて特定のユーザー向けだから
業務アプリとかやってないとあまり見る機会はないかもしれない
0195デフォルトの名無しさん
2007/10/21(日) 18:02:05そもそもJavaアプリケーションで有名なものが少ないからWebStartの知名度も…
0196デフォルトの名無しさん
2007/10/21(日) 18:27:12JDiskReportとJudeぐらいかなあ。
0197デフォルトの名無しさん
2007/10/21(日) 18:43:270198デフォルトの名無しさん
2007/10/22(月) 00:17:16Appletは、JavaQuickStarter使えば劇速になるので
これからまだ延びるかもしれないと思った。
JQSについては、
ttp://download.java.net/jdk6/binaries/
ttps://jdk6.dev.java.net/6uNfaq.html
参照。
要は、prefetchです。
0199デフォルトの名無しさん
2007/10/22(月) 01:15:18進歩のほとんどなかった5.0から大幅によくなってるので
だいぶ未来は明るいと信じたい
0200デフォルトの名無しさん
2007/10/27(土) 18:27:01コード署名が必要なJavaWebStartアプリの開発をするときには、
maven2のwebstart-jnlp-pluginを使うと、幸せになれる。
http://sqs.cmr.sfc.keio.ac.jp/tdiary/20070709.html
コード署名証明書の値段が高すぎで買えない!という場合には、
http://sqs.cmr.sfc.keio.ac.jp/tdiary/20051003.html
こちらを。
以下、まだ作りかけ・証明書期限切れですが:
http://sqs.cmr.sfc.keio.ac.jp/app/SourceEditor.jnlp
http://sqs.cmr.sfc.keio.ac.jp/app/MarkReader.jnlp
前者のほうは、クライアントローカルかつ環境非依存に、
フォント埋め込みPDFファイルを作れるようにするために、
JavaWebStartでIPAフォントを配布して利用している。
後者のほうは、LAN内のマシン複数台を使って分散並列処理が
できるように、JavaWebStartで起動した分散プロセス群が
Pure P2P的に通信して、グリッドを作れるようにしてある。
0201デフォルトの名無しさん
2007/10/27(土) 19:46:02あらかじめ信頼できるように登録しておくという手が普通に使われるんで
あんま問題になってない感じ
0202デフォルトの名無しさん
2007/10/27(土) 21:06:36っとか思ったけどム板のJava関連のスレで適切なのってないのな…
0203200
2007/10/27(土) 22:29:24たとえば、Preferencesを設定するGUIを作るときには、
左画面にJTree、右画面にその選択範囲のエディタを配置する形で、
2ペイン構成のGUIとする場合が多いと思います。
http://www.sociomedia.co.jp/160
でも、この手のGUIで作業をすると、左画面と右画面をマウスで
行ったり来たりするのが、ちょっとわずらわしい。
また、左画面と右画面の関係が直感的に分かりにくい。
そこで、左のJTree画面上で任意の範囲をドラッグして選択できるようにし、
その選択部分のフォーカスが右エディタ画面の該当個所に投影される
ような仕組みを作ってみました。
http://sqs-xml.sourceforge.jp/sqs-core/doc/screenshot/SourceEditor.png
こんな感じ。
高機能GUIコンポーネントとしての再利用性の追求は、
まだ全然やっていないけれど、需要あるでしょうか?
こういう部分を含む全体を、Apache Licenseで開発しています。
0204デフォルトの名無しさん
2007/10/27(土) 23:10:27多いとは思えない
アプリでいくらでも上書きできるから、ちょっとした保存くらいにしか使い道がないと思うんだけど
そういうアプリとなると通常Windowsがメイン環境になるし、設定箇所なんてWindowの位置保存程度だろう
ならばレジストリ直接開いたほうが速い
意味のある値ならばxmlなり別ファイルにするはず
ただし、選んだ部分を一気に出してほしいというインターフェースはわりとある
その場合、右側のペインにもちゃんとスクロールバーつけといてね
特に難しいことではないので高機能ってのがわからんのだが、ここが便利!という売り文句がないと難しいぞ
0205デフォルトの名無しさん
2007/10/27(土) 23:13:18そういうのって自分が必要だと思うから作るんじゃないの?
0206デフォルトの名無しさん
2007/10/27(土) 23:25:24200じゃないけど
>アプリでいくらでも上書きできるから、ちょっとした保存くらいにしか使い道がない
ってどういう意味?
JavaアプリなのにわざわざWindows依存にしてレジストリが出てくるのも
よくわからないんだけどどういう状況を想定してるのかしら…?
0207200
2007/10/28(日) 00:22:19っていうか、XMLエディタを作っているのですよ。
> そういうのって自分が必要だと思うから作るんじゃないの?
説明が難しいのだけれど、
階層的な構造をまたいで、
離れた枝と枝を見比べながら編集をするときに、
ちまちまと必要のない枝を閉じて、必要な枝だけを開いて、
画面内に収まるようにしてから作業をするのは、かったるい。
また、階層的な構造をまたいで、
離れた枝から枝へドラッグするときに、
マウスドラッグで画面をオートスクロールさせて
画面の外にある別の枝を探しながら作業をするというのは、
スクロール量の制御がやりにくいし、
うっかり途中でドラッグを放してしまいそうで、危なっかしくてイヤ。
こんなふうに感じるのって、俺だけなのかな?と。
0208デフォルトの名無しさん
2007/10/28(日) 00:32:29Preferencesの実装としてWindowsであればレジストリを使っている
>>207
>っていうか、XMLエディタを作っているのですよ。
XMLエディタです、とあなたは一言も言ってないのにそんなの他人がわかるかい
0209200
2007/10/28(日) 00:49:03> たとえば、Preferencesを設定するGUIを作るときには、
> でも、この手のGUIで作業をすると、
と、断っているように、Preferencesを設定することが目的ではありません。
Preferencesについて言及したのは、「この手のGUI」について
問題提起するための、「たとえば」の話です。
また、
> http://sqs.cmr.sfc.keio.ac.jp/app/SourceEditor.jnlp
として、ここで提案しているGUIの動作内容が、
JavaWebStartで実際に動くようなURLを示しており、
これを起動してみれば、Preferenceエディタではなく、
XMLエディタであることは、すぐに分かるのではないかと思います。
で、
> Preferencesの実装としてWindowsであればレジストリを使っている
っていうのは、regeditのこと? あれ、使いやすいですか?
0210デフォルトの名無しさん
2007/10/28(日) 01:10:19コピペできるように作っておいてくれないと無理だけど。
> http://sqs.cmr.sfc.keio.ac.jp/app/SourceEditor.jnlp
今作ってるのはツリー表示のとこはD&Dもコピペもできないみたいね
その代わり、ポップアップメニューに便利そうなものがあるけど。
0211デフォルトの名無しさん
2007/10/28(日) 01:11:44アプリケーションに組込む設定機能を作るコンポーネントの話をしているのに
Preferencesを設定するツールの話をしていると勘違いしているのだな?
それでWindows環境ならPrefenrecesの実装がレジストリだから
レジストリエディタで直接弄ればいいんじゃね?って話がでてきたと…
0212200
2007/10/28(日) 01:26:32http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6396599
このバグに悩まされております…。
WindowsではPreferencesの保存先にレジストリを用いているので、
このバグは出ないのだけど。
0213デフォルトの名無しさん
2007/10/28(日) 01:35:21んでみてると汎用XMLエディタにはみえんね。
だとしたら設定項目用ということならツリー構造を見せる必要もないと思うんだけど。
0214デフォルトの名無しさん
2007/10/28(日) 01:38:02スレタイ嫁。
それにバグパレードに載ってるんだからバグだろうさ。
お前が悩んでいることをここに報告してどうするつもりなんだ?
それは困ったね、よしよし、と慰めてもらいたいのか?
スレタイに関係のない質問をしたいなら質問スレへ、
何かの課題をやってもらいたいなら宿題スレへいけ。
0215200
2007/10/28(日) 01:41:21やっぱりコピペだよね。
ところで、階層構造のノードをペースト先とするときには、
「そのノード自身(置き換え)」
「兄ノードとして挿入」
「弟ノードとして挿入」
「子供ノードとして挿入」といったように、
何通りかがあるのだけれど、Ctrl-Vで張り付けるとしたら、
どれをデフォルトにするのが感覚的に正しいのだろう?
ちなみにFreeMindでは、
「ノードのアイコンの微妙に上のほうを指しているときは兄として挿入」
「ノードのアイコンの微妙に下のほうを指しているときは弟として挿入」
「ノードのアイコンの右端のほうを指しているときは子供として挿入」
的なGUIを実現しているけれど、
JTreeでは、getClosestPathForLocationとかだと、
指定したx,yがどのノードに一番近いか、ということしかわからないので、
むずかしい。
0216デフォルトの名無しさん
2007/10/28(日) 01:41:410217デフォルトの名無しさん
2007/10/28(日) 01:48:07感覚的には弟として挿入かな
CTRL+SHIFT+Vだったら子供として挿入とかもありかもしらん
0218200
2007/10/28(日) 02:33:52Preferences APIでの保存先の実装は、
Windowsではレジストリ、LinuxなどではXML形式のファイルとして保存される。
ここでの話題にもビミョーに関連すると思ったので、話のついでに書いてみた。
bug_idを示せば、ほかのひともvoteしてくれるかもしれないし。
でもまぁ、ここはGUIのスレなので、スレ違いですね。ごめん。
これから「汎用のもの」を目指して、
XMLエディタの開発を進めていこうと思っています。
個人的にはSwingというかJTreeというか特にTreeCellRendererの
あたりが好き:-)なので、階層構造を編集するためのGUIコンポーネントを、
ユーザ側・開発者側の両面から、もうちょっとだけ使いやすくする
工夫についても、取り組んでみるつもり。
コメントくれた人、ありがとう。名無しに戻ります。
0219デフォルトの名無しさん
2007/10/28(日) 13:08:22一瞬、VIPスレだっけと思ってしまった俺は病んでいる。
リッチなSwing部品、という点で言うとSwinglabで作ってたりするけど
画面ごとの仕組みを含んだライブラリって決定版がないね。
>>203の仕組みも、そんなに便利かなぁと思う。
左で選んだのが右にタブでどんどん、というのでもいいし
左で選ぶの面倒だから、eclipseなんかみたいに項目フィルタあった方が便利だし。
設定パネルなら、一度に見せる必然性ってあんまないのよねぇ・・・
0220デフォルトの名無しさん
2007/10/28(日) 15:02:26ウィンドウをSplitPaneで分割したり、複数のウィンドウを開いたりして、
それぞれの画面で、同じ文書の、別の場所を表示できるようにする、
というものがある。
MVCできちんと作ってあって、
同じModelに対して複数のViewを表示できるのなら、わりと簡単に実現できる。
Eclipseとかでは、タブを画面内でドラッグすると、
左右ないし上下での好みのスタイルで画面分割できる。
また、タブを画面外までドラッグすると、
新しいウィンドウを開くことができる。
こうした機能は、操作性もわりといいと思う。
0221デフォルトの名無しさん
2007/10/28(日) 15:04:56JToolBarのfloatable機能を組み合わせれば、似たようなことができると
思うのだけど、面倒くさいよな
0222_
2007/11/01(木) 18:01:56Border wborder = new LineBorder(Color.white, 1);
JLabel Ac1 = new JLabel("");
Ac1.setBorder(wborder);
Ac1.setHorizontalAlignment(JLabel.CENTER);
Ac1.setBounds(400,100,80,30);
add(Ac1);
// ボタン作成
btnEnter =new Button("追加");
btnEnter.addActionListener(this);
add(btnEnter);
btnEnter.setBounds(150,250,80,80);
//ボタンイベント
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
Border wborder = new LineBorder(Color.black, 1);
Ac1.setBorder(wborder);
Ac1.setText("Push");
}
}
ボタンを押したら指定の場所にラベルが表示されるようにしたいのですが
この方法ではなぜか出来ないのですがどうしてでしょうか
どなたか教えてください
0223デフォルトの名無しさん
2007/11/01(木) 18:28:27Ac1 がローカル変数だからじゃね
たぶん actionPerformed の中から見てる Ac1 と別物
0224_
2007/11/01(木) 18:39:11public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
JLabel Ac1 = new JLabel();
Ac1.setBounds(400,100,80,30);
Ac1.setText("Push");
}
このように書いてみたんですがまったく表示されません.
0225デフォルトの名無しさん
2007/11/01(木) 18:55:26add(Ac1);
0226デフォルトの名無しさん
2007/11/01(木) 22:16:24addも書き加えましたが出来ませんでした。
本当に困ってます。
誰か助けてください。
0227デフォルトの名無しさん
2007/11/01(木) 22:17:030228デフォルトの名無しさん
2007/11/01(木) 22:34:06public class Practice extends JFrame implements ActionListener{
Button btnEnter;
public static void main(String[] args){
Practice frame = new Practice();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(50, 50, 900, 700);
frame.setTitle("研究のGUI");
frame.setVisible(true);
}
Practice(){
JPanel p = new JPanel();
btnEnter = new Button("追加");
btnEnter.addActionListener(this);
add(btnEnter);
btnEnter.setBounds(250,120,80,80);
getContentPane().add(p, BorderLayout.CENTER);
appRun();
}
public void appRun(){
}
public void actionPerformed(ActionEvent e){
Button bt = (Button)e.getSource();
if(bt==btnEnter){
JLabel Ac1 = new JLabel();
Ac1.setBounds(400,100,80,30);
Ac1.setText("Push");
add(Ac1);
}
}
}
0229デフォルトの名無しさん
2007/11/01(木) 23:28:35コンストラクタで設定したり、mainの中だったりここも不統一だし
レイアウトマネージャもしらんっぽいね
そこから勉強したらどうかな
0230デフォルトの名無しさん
2007/11/01(木) 23:29:40のあとに、画面の再描画させたらええんちゃうかな?
コマンドは忘れた
0231デフォルトの名無しさん
2007/11/01(木) 23:30:39それや、add(Ac1);の前にgetContentPaneがいるんや
0232デフォルトの名無しさん
2007/11/01(木) 23:35:58JPanel なくしてみ
getContentPane は最近は要らない
0233デフォルトの名無しさん
2007/11/01(木) 23:47:16add(Ac1);の前にgetContentPaneを書いても変わりませんでした。
どなたかお手数ですがやってみてもらえないでしょうか?
0234デフォルトの名無しさん
2007/11/01(木) 23:51:02setLayout(null);
0235デフォルトの名無しさん
2007/11/01(木) 23:51:29だからレイアウトマネージャが基本なんだから勉強してよ
コンテントペインはボーダーレイアウトがデフォで、
パネルはフローレイアウトがデフォってことでしょ?
推奨サイズとかも覚えてください
0236デフォルトの名無しさん
2007/11/01(木) 23:53:20何も考えずにそれをすると一番難しいんだけどね
JPanelに推奨サイズを指定してpack、
JPanelはnullレイアウトというのならまだわかるけど
setBoundsというのが真っ先に出てきたあたりで何を参考に作ったのかが気になる
0237デフォルトの名無しさん
2007/11/01(木) 23:54:50こんな形でAWTとSwingを混在させるなw
0238デフォルトの名無しさん
2007/11/01(木) 23:56:570239デフォルトの名無しさん
2007/11/02(金) 00:04:29重要なヒントや答えまででてるのにこれ以上何を言うのか楽しみだ
0240デフォルトの名無しさん
2007/11/02(金) 00:19:49肝心のラベルがボタンを押しても出てきません
ただそれがやりたいだけなのに何故なんでしょうか?
正直どなたか全文を書いていただけないでしょうか?
0241デフォルトの名無しさん
2007/11/02(金) 01:33:33答えだけがほしければ宿題スレへどうぞ
0242デフォルトの名無しさん
2007/11/02(金) 01:52:16つ 練炭
0243デフォルトの名無しさん
2007/11/02(金) 01:59:48勘違いすんな。ここはくだすれでもないし初心者スレでもない。
0244デフォルトの名無しさん
2007/11/02(金) 03:04:48JPanel labelsPanel;
public Practice (){
JButton appendLabelButton = new JButton ("ラベルを追加");
appendLabelButton.addActionListener (new ActionListener(){
public void actionPerformed(ActionEvent event){appendLabel();}});
JPanel buttonPanel = new JPanel();
buttonPanel.setLayout(new FlowLayout());
buttonPanel.add(appendLabelButton);
labelsPanel = new JPanel();
labelsPanel.setLayout(new FlowLayout());
labelsPanel.setPreferredSize(new Dimension(400, 400));
add(buttonPanel, BorderLayout.NORTH);
add(labelsPanel, BorderLayout.CENTER);
}
void appendLabel(){
JLabel helloLabel = new JLabel ("Hello");
helloLabel.setBorder(BorderFactory.createLineBorder(Color.white, 1));
helloLabel.setHorizontalAlignment(JLabel.CENTER);
helloLabel.setPreferredSize(new Dimension(80,30));
labelsPanel.add(helloLabel);
labelsPanel.revalidate();
}
public static void main (String[]args){
SwingUtilities.invokeLater(new Runnable(){
public void run(){
Practice frame = new Practice ();
frame.setDefaultCloseOperation (JFrame.EXIT_ON_CLOSE);
frame.pack();frame.setVisible(true);
}
});
}}
0246デフォルトの名無しさん
2007/11/02(金) 04:17:09超マジレスに笑ったw
でもこれがさらっと書けない職業プログラマが多いんだよな・・・
0247デフォルトの名無しさん
2007/11/02(金) 07:21:140248デフォルトの名無しさん
2007/11/02(金) 07:37:070249デフォルトの名無しさん
2007/11/02(金) 07:53:50何を研究したらあんなソースになるのか知りたいw
0250デフォルトの名無しさん
2007/11/02(金) 10:19:13実行して出てきたGUIにワロタ。センターに足す動けばいい的例。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class Test extends JFrame {
public Test() {
JButton button = new JButton("Add Label");
button.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent evt) {
add(new JLabel("Hello, world!"));
getContentPane().validate();
}
});
add(button, BorderLayout.SOUTH);
setSize(100, 100);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
setVisible(true);
}
public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
@Override
public void run() {
new Test();
}
});
}
}
0251デフォルトの名無しさん
2007/11/02(金) 11:34:19インナークラスとかAWTイベントディスパッチスレッドとかしらないで
GUI扱おうとしてぼろぼろになる例はよくみるね
特にスレッド周りがぼろぼろくさい
基本を勉強せずOJTという名の下に無理やり投入される場合そうなりやすい
デバッグ時には動いていてもたまに動かないとか厄介なバグいれこむのがうまい連中がね
0252デフォルトの名無しさん
2007/11/03(土) 12:38:14証明書の有効期限切れてるよ
0253デフォルトの名無しさん
2007/11/03(土) 13:58:53200で言及済
次回以降、安定版のリリースのときには署名タイムスタンプを使うことにするよ。
0254デフォルトの名無しさん
2007/11/04(日) 13:41:02windows標準みたいに"キャンセル"って書くにはどうすればいいだろ…
0255デフォルトの名無しさん
2007/11/04(日) 13:44:430256デフォルトの名無しさん
2007/11/04(日) 14:20:13UIManager.put("OptionPane.cancelButtonText", "キャンセル");
0257デフォルトの名無しさん
2007/11/04(日) 14:25:19いつも思うのですが、そのようなフィールドやプロパティの名前はどうやって調べているのでしょう。
ソースを見るしかないのでしょうか?
0258デフォルトの名無しさん
2007/11/04(日) 14:38:37ttp://homepage1.nifty.com/algafield/UIDF.html
0259デフォルトの名無しさん
2007/11/04(日) 14:59:07ありがとうございます。
0260254
2007/11/04(日) 15:35:25ありがとう。
これで見た目ほとんどwindowsっぽくなった。
FileChooserの複数選択をwindowsみたいにドラッグでびやーって範囲広げてその中全選択とかやってみたいけど、
さすがにこれはキツいな。
0261デフォルトの名無しさん
2007/11/04(日) 16:10:38機能がほとんどないけど、それで足りるのならね
0262デフォルトの名無しさん
2007/11/04(日) 16:26:51MacはAWTは普通だけど、Swingの方がしょぼ過ぎる。
Desktop Java Technology Today TS-3160
ttp://developers.sun.com/learning/javaoneonline/j1sessn.jsp?sessn=TS-3160&yr=2007&track=2
ここを見ると、Future Platform FeaturesにNative FileChooserってあるから、そのうち改善されると思うけど。
0263デフォルトの名無しさん
2007/11/04(日) 22:26:28URL url = Hoge.class.getResource("../resources/book.gif");
2.
URL url = ClassLoader.getSystemClassLoader().getResource("../resources/book.gif");
このような2つのコードでリソースを取得しています。
1をHogeクラスで使用するとちゃんとURLが返ってきますが、Hogeのインスタンスであるインナークラスから呼び出すとnullが返ってきます。
しかし2のようにシステムクラスローダから呼び出すと、Hogeからの場合もHoge中のインナークラスからも呼び出すことができます。
そこで質問なのですが、
Q1.インナークラスからの相対パスは、そのインナークラスの属するクラスからの相対パスとは異なるのか(上でいうHogeのインスタンスのインナークラスとHogeクラスの関係)
Q2.上の実行を、eclipseで行うと結果が逆になる(2がうまくいかず、1がうまくいく)のですがその理由。
答えづらい質問ですみません。もしよろしければ教えてください。
0264デフォルトの名無しさん
2007/11/04(日) 23:44:44どうせリソースは決まった場所におくでそ
0265デフォルトの名無しさん
2007/11/04(日) 23:51:10なんだかそこらへん結構複雑そうですし・・
分りました。以後リソース読み込みは絶対指定にします。
ありがとうございました!!
0266デフォルトの名無しさん
2007/11/08(木) 01:13:350267デフォルトの名無しさん
2007/11/09(金) 12:10:05何かいい方法ないですかねぇ
0268デフォルトの名無しさん
2007/11/09(金) 12:14:15panel.setLayout(new BorderLayout());
panel.add(new JLabel("本文"));
panel.add(new JCheckBox("次からこのメッセージを表示しない"), BorderLayout.SOUTH);
JOptionPane.showMessageDialog(parent, panel);
0269デフォルトの名無しさん
2007/11/09(金) 12:35:18おー、早いレスありがと〜。
0270デフォルトの名無しさん
2007/11/09(金) 23:36:58いまからSwingアプリケーションつくるからなんかお題くれ
条件はネット接続しないこと
開発環境はJDK6u3、NetBeans6.0
0271デフォルトの名無しさん
2007/11/09(金) 23:44:52Jazzの自動作曲。高品質の楽譜の表示と印刷。
0273デフォルトの名無しさん
2007/11/09(金) 23:50:42swingはあくまでもguiのフレームワークに過ぎないから、
swingでアプリケーションを作るって言っても範囲が広すぎるんじゃないかな?
guiでアプリ作るけど何か無いかなって言うようなものだから、もう少し幅を狭めないと。
0274デフォルトの名無しさん
2007/11/09(金) 23:51:07ドロー系お絵書きソフト、SVGでの読み書き可能なものを、OSSで。
0275デフォルトの名無しさん
2007/11/09(金) 23:51:49少しジャンルは違うがヤマハの「初音みく」とか言うの良さそうじゃないか?
0276デフォルトの名無しさん
2007/11/09(金) 23:51:560277270
2007/11/09(金) 23:54:59HotJavaとか初めて聞いたし
Java暦1年半ですがなにか?
0278デフォルトの名無しさん
2007/11/10(土) 00:00:39・・・Swing関係ないかw
0279デフォルトの名無しさん
2007/11/10(土) 00:01:59JEditorPaneで原型はすぐに作れるね。
>>277
ttp://java.sun.com/products/archive/hotjava/index.html
>>275
もちろん既にみくみくしてるぜ。
付属のVSTiプラグインをJavaから使おうとかもしているけど中々時間が取れない。
0280デフォルトの名無しさん
2007/11/10(土) 00:02:19Javaじゃないが、それの本命はinkspaceだろうな。
0281デフォルトの名無しさん
2007/11/10(土) 00:04:380282デフォルトの名無しさん
2007/11/10(土) 00:09:38何かオンリーワンな機能をつけたドローイングかペインティングアプリケーションとかいいんじゃないか?
0283デフォルトの名無しさん
2007/11/10(土) 00:16:53俺が作ってるのもそれだけどw
0284デフォルトの名無しさん
2007/11/10(土) 01:37:420285デフォルトの名無しさん
2007/11/10(土) 01:38:470286デフォルトの名無しさん
2007/11/10(土) 02:27:50Swingと関係なくないか?
あとPDFオープンするのに環境依存コード書くはめになるのもちょっと嫌かな
0287デフォルトの名無しさん
2007/11/10(土) 02:31:130288デフォルトの名無しさん
2007/11/10(土) 03:03:23JFileChooserおそくてかなわんわ
0289デフォルトの名無しさん
2007/11/10(土) 03:56:17だな。死ぬほど遅い。いくつかlazyになるように書き直した。
0290デフォルトの名無しさん
2007/11/10(土) 10:20:210291デフォルトの名無しさん
2007/11/10(土) 12:52:450292デフォルトの名無しさん
2007/11/10(土) 13:47:36金もできたので聞きたいとおもう。GUIつくるだけなら、JBuilderっていい?
無料版はつかったことあるけど、有料版は良いの?
0293デフォルトの名無しさん
2007/11/10(土) 13:59:21SwingベースからEclipseベースになった
少なくとも昔のJBuilderはこつをつかまないと
しらないうちにボーランドのコンポーネント使って汚染されて
他の環境で手軽にコンパイルできなくなるのが欠点だった
あとJBuilderはGUI作成においてNetBeansぬいたことはないよ
GUI使う、使わない以前に開発効率考えるとIDE使わないのは論外だと思う
0294デフォルトの名無しさん
2007/11/10(土) 14:00:46NetBeansでいいんじゃね?
0295デフォルトの名無しさん
2007/11/10(土) 14:12:00NetBeansの方が上なんだ。じゃあそうするよ。
IDE使わないと論外か。。じゃあ、買ってみるよ。
ありがとう。
0296デフォルトの名無しさん
2007/11/10(土) 14:37:010297デフォルトの名無しさん
2007/11/10(土) 15:19:430298デフォルトの名無しさん
2007/11/10(土) 17:06:09まだUbuntu使ってないの?
0299デフォルトの名無しさん
2007/11/10(土) 17:27:590300デフォルトの名無しさん
2007/11/10(土) 17:35:40でも V2C はIDE使ってないらしいね
0301デフォルトの名無しさん
2007/11/10(土) 18:02:480302デフォルトの名無しさん
2007/11/10(土) 18:21:57ソフトウェア=IDEがGUI部を隠蔽しててわずらわしい
規模によりけりじゃないかなぁ。
0303デフォルトの名無しさん
2007/11/10(土) 18:32:02まぁ、groupLayoutは自前でコードかくきにはならないけど
0304デフォルトの名無しさん
2007/11/10(土) 19:39:51横長じゃなくて縦長のボタンやラベルを使いたいのだけど。
0305デフォルトの名無しさん
2007/11/10(土) 20:43:28new JButton("<html>縦<br>書<br>き<br>ボ<br>タ<br>ン");
0306デフォルトの名無しさん
2007/11/10(土) 20:51:00そうだよね。補完とかリファクタリングとか使用状況検索とか便利だよね。
GroupLayoutは最初は便利だと思ったけど、弄ってるといきなり位置が
すっ飛んだりして、いまいち使いづらい。よく出来てるとは思うんだけど。
エディタをもっと分かりやすくすれば良さそうだけど、どうすればいいのやら。
最近は、従来のものを組み合わせた方が思ったようにできていいなと思ってる。
>>304
その発想はなかったw
0307デフォルトの名無しさん
2007/11/10(土) 20:52:04その発想もなかったw
0308デフォルトの名無しさん
2007/11/12(月) 14:58:060309デフォルトの名無しさん
2007/11/12(月) 17:34:14国外のL&Fを今日一つためしてみたんだが、ダブルバイトが全滅。
ttp://regis.risp.pl/
まあ、外観に変化つけるときってフォントいじるから当然かな。
L&Fを自分でこさえるのは手間かかりすぎてそこまで時間とれないし、
MetalのOceanで負けとくのが今のとこ勝ちなのか。orz
0310デフォルトの名無しさん
2007/11/12(月) 17:46:490311デフォルトの名無しさん
2007/11/12(月) 21:05:59おおっ!
なんかすごそうだけど、まださっぱりわからん。
Java SE 6 Update N Early Access Programてのを落としてくればいいのかな。
これそのうちJDKに正式採用されるのかしら?
0312デフォルトの名無しさん
2007/11/12(月) 21:11:420313デフォルトの名無しさん
2007/11/12(月) 21:18:140314デフォルトの名無しさん
2007/11/12(月) 21:23:09Javaアプリケーションが普及してないってことか。
0315デフォルトの名無しさん
2007/11/12(月) 21:39:08アイコンはともかくボタン全体が画像で作られているのはどうも。
融通効かないし。
ボタンが数個しかないアプリとか、ゲームとかならそういうのも良いかと思うけど。
0316デフォルトの名無しさん
2007/11/12(月) 22:45:12作ってみた
public class VerticalJButton extends JComponent{
private JButton button=new JButton(){
public void repaint(long tm,int x,int y,int width,int height){
VerticalJButton.this.repaint(tm,y,1-x,height,width);}};
public VerticalJButton(String text){
add(button);button.setText(text);
enableEvents(AWTEvent.MOUSE_EVENT_MASK|AWTEvent.MOUSE_MOTION_EVENT_MASK);}
public Dimension getPreferredSize(){
Dimension d=button.getPreferredSize();
return new Dimension(d.height,d.width);}
public void doLayout(){
button.setBounds(0,1-getWidth(),getHeight(),getWidth());}
protected void paintChildren(Graphics g){
Graphics2D g2=(Graphics2D) g.create();
g2.rotate(Math.PI/2);g2.translate(button.getX(),button.getY());
button.paint(g2);g2.dispose();}
protected void processMouseEvent(MouseEvent e){
e=new MouseEvent(button,e.getID(),e.getWhen(),e.getModifiers(),e.getY()-button.getX(),-e.getX()-button.getY(),e.getClickCount(),e.isPopupTrigger(),e.getButton());
button.dispatchEvent(e);}
protected void processMouseMotionEvent(MouseEvent e){
e=new MouseEvent(button,e.getID(),e.getWhen(),e.getModifiers(),e.getY()-button.getX(),-e.getX()-button.getY(),e.getClickCount(),e.isPopupTrigger(),e.getButton());
button.dispatchEvent(e);}}
0317デフォルトの名無しさん
2007/11/12(月) 23:11:37NetBeans5.5.1使ってるんですが、GUIビルダーで質問です
JFrameフォームでフレームをつくり、
別途JPanelフォームでパネルを複数つくります。
アプリケーション起動後に、パネルを好きなタイミングで、フレームにadd()したいのですが、
SwingLayoutの影響でうまくいきません。
なにか特別なやり方があるのでしょうか?
それともGUIビルダーでは不可能なのでしょうか。
0318デフォルトの名無しさん
2007/11/12(月) 23:46:28g2.dispose();
なんだけど、これはpaintComponent()をオーバーライドしたときとか、
Graphicsオブジェクトを使ったあとはかならず実行したほうが良いの?
今までそうしてこなかったのだけど、APIリファレンスみると、
したほうが良いような感じなんだけど、いまいちわかりにくい日本語。
0319デフォルトの名無しさん
2007/11/12(月) 23:54:29OverrideしなくてもpaintComponentは呼ばれるだろうし
0320デフォルトの名無しさん
2007/11/12(月) 23:56:01Graphics#disposeでグラフィックコンテクストを開放しないといけないのは自分でそれを確保したとき。
他人が確保したものを許可無く勝手に開放するのは行儀が悪い行い。
paintComponent()をオーバーライドしたときに開放するとかはどこに書いてあったの?
0321デフォルトの名無しさん
2007/11/13(火) 00:08:10dispose
public abstract void dispose()このグラフィックスコンテキストを破棄して、使用中のシステムリソースがあればそれを解放します。
Graphics オブジェクトを dispose の呼び出し後に使用することはできません。
Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
ガベージコレクタのファイナライズプロセスも同じシステムリソースを破棄しますが、関連するリソースを手動で解放することが推奨されます。
つまり、長期間に渡って完了まで実行されない可能性があるファイナライズプロセスに依存するよりも、
このメソッドを呼び出してリソースを手動で解放してください。
コンポーネントの paint メソッドと update メソッドに引数として提供される Graphics オブジェクトは、
こうしたメソッドが復帰したときにシステムによって自動的に解放されます。
効率性を確保するには、Graphics オブジェクトがコンポーネントまたはほかの Graphics オブジェクトから直接作成された場合だけ、
そのオブジェクトを使って終了したときに dispose を呼び出すようにプログラミングしなければなりません。
-----------------------------------
ということらしいんだが、dispose()不要のような必要なような、ケースバイケースのような
説明に読めたのよ。スマソ。
0322316
2007/11/13(火) 00:12:45その g2 は g の単なるキャストじゃなくて、 g.create() で生成したものだから。
放っておいても害はないけど、解放するべきなんじゃない?
0323デフォルトの名無しさん
2007/11/13(火) 00:15:10>こうしたメソッドが復帰したときにシステムによって自動的に解放されます。
Graphics g = createGraphics();
//--->呼び出し
paintComponent(g);
//<---復帰
g.dispose();
こういうことでしょ。きっちり書いてるじゃん。
0324デフォルトの名無しさん
2007/11/13(火) 00:17:35いやだからさ、おかしいなんていってないよ。
g.dispose()と書かれたソースを今までみなかったのだけど、
開放しといたほうがいいのかななどと思ったの。
0325デフォルトの名無しさん
2007/11/13(火) 00:18:32> Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
0326デフォルトの名無しさん
2007/11/13(火) 00:22:01paintComponentについては暗黙の了解?
説明としては抜けてる。ソース嫁といわれりゃあっそう。
0327デフォルトの名無しさん
2007/11/13(火) 00:34:39paintComponentについてはJComponentのドキュメントを読めば理解できるかと。
0328デフォルトの名無しさん
2007/11/13(火) 00:36:15それ勘違いしてるぞ
ファイナライザとか関係ない
0329デフォルトの名無しさん
2007/11/13(火) 00:42:260330デフォルトの名無しさん
2007/11/13(火) 00:43:160331デフォルトの名無しさん
2007/11/13(火) 01:08:35Nimbusはイメージを使わずに、すべてJava2Dで書かれてるから、解像度に依存しないのがいいよね。
0332デフォルトの名無しさん
2007/11/13(火) 01:13:28動作確認してみた。いいね!
やり方もエレガントだと思う。
アイコンもついてたら完璧かも。
0333デフォルトの名無しさん
2007/11/13(火) 01:25:17うん。
作ってるアプリが終盤で、外観の体裁ととのえてるとこなんだけど、
今無理してL&Fいじくるより、Nimbusが標準になるまで待ったほうがトクだろうなぁ。
L&Fを自分で作ったりカスタマイズしてももすぐに時代遅れになるしね。
Metalも出てきた当時はけっこうクールに見えたし。
L&Fは服きせかえるみたいに使い捨てていきたい。
0334デフォルトの名無しさん
2007/11/13(火) 01:46:39自前でgraphicsを生成した場合必須
ファイナライズの話はFileのIOをcloseしないというのと同じ話
そしてかってに呼び出し側でcloseしたらあかんだろというのと同じ
0335デフォルトの名無しさん
2007/11/13(火) 20:01:22> Java プログラムが実行されていると、短時間フレーム内で多数の Graphics オブジェクトを作成できます。
いっぱい作成できると、なんとなく、うれしいジャン?
とりあえず、「多数の Graphics オブジェクトを作成する可能性があります」の誤訳に一票
0336デフォルトの名無しさん
2007/11/13(火) 20:14:10invokeLaterはinvokeLater間違えてAWTのSystem Queueに送ったことあるorz
MIDPのGraphicsにdisposeがなくてどうやってメモリ空けようか悩んだことがあるorz
Nimbusのマルチバイト化けは直ったらしいがあれ重くないか?スケーラブルなLaF目指してるんだろうけど・・・。
ただでさえ、未だにjavaは重いという迷信が信じられてるからなぁ。
0337デフォルトの名無しさん
2007/11/13(火) 20:18:53ファイル多いとファイルリストの取得とは別の何かで重くなってる印象が・・
0338デフォルトの名無しさん
2007/11/13(火) 22:27:10JavaSE6u2からすごいことになった
どうすればあそこまで悪化できるのかと
0339デフォルトの名無しさん
2007/11/13(火) 22:52:07今はソース見れるんだから自分で調べられるよ
0340デフォルトの名無しさん
2007/11/13(火) 23:51:12jdk6がOpenJDKベースになるのはまだ先。
0341デフォルトの名無しさん
2007/11/14(水) 00:16:14そういう意味じゃないだろ
0342デフォルトの名無しさん
2007/11/14(水) 03:38:43今までひどすぎるとまでは感じなかったんだが、そんなにたくさんのファイルリストを
出すという局面に遭遇してないだけだったりする。
100個くらいリストが出ててもなんともないと思うんだが、いくつくらいだとひどいことになるの?
0343デフォルトの名無しさん
2007/11/14(水) 07:17:29なんか共通したミスでもあるんだろうか?
0344デフォルトの名無しさん
2007/11/14(水) 07:27:120345デフォルトの名無しさん
2007/11/14(水) 09:30:487年後サクサク動くニンバスみて、軽いけどもう古いよなこのLaFとかいってるような気がすれ
0346デフォルトの名無しさん
2007/11/14(水) 09:32:310347デフォルトの名無しさん
2007/11/14(水) 09:47:09そんでこれいつからリリースされるのかな。
0348デフォルトの名無しさん
2007/11/14(水) 12:36:16u2以降は1個の表示でもすごい遅い
u1まではさくさく
まぁ遅いといわれたり直ったりエンバグ繰り返してるのがJFileChooserだから・・・
0349デフォルトの名無しさん
2007/11/14(水) 16:43:440350デフォルトの名無しさん
2007/11/14(水) 17:18:38一時的にどけておくといいかも。
0351デフォルトの名無しさん
2007/11/14(水) 19:29:570352デフォルトの名無しさん
2007/11/14(水) 19:34:34どっかのAPIを流用したことによる副作用とかいうオチだったらちょっと笑える
0353デフォルトの名無しさん
2007/11/14(水) 19:45:280354デフォルトの名無しさん
2007/11/15(木) 16:57:27実行形式の場合、そのファイルのリソースとしてアイコンが格納されているんだから、
API経由か直接かは知らんけど、当然ファイルの中身は見てるはず。
で、PEとかELFとか、実行形式のフォーマットを決め打ちできない分、
アイコン読み取りが複雑になってるんじゃなかろうか。
0355デフォルトの名無しさん
2007/11/15(木) 17:06:04これが遅いってことか?
0356デフォルトの名無しさん
2007/11/15(木) 21:18:41つまり世の中のGUIは全てファイル選択ダイアログは遅くて使い物にならない、と
それにu1まではそんなに遅くなかった
1.4.2はいくつかのバージョンが遅いけど
0357デフォルトの名無しさん
2007/11/15(木) 22:11:41http://sourcepost.sytes.net/sourcepost/sourceview.aspx?source_id=29872
質問です
イベントでコンポーネントを追加したいんですが、追加と同時に表示させるにはどうすればいいんでしょうか?
repaint()ではダメみたいです
0358デフォルトの名無しさん
2007/11/15(木) 22:19:39jPanel1.revalidate()
0359デフォルトの名無しさん
2007/11/16(金) 00:00:480360デフォルトの名無しさん
2007/11/16(金) 00:51:25HelloボタンをaddしたあとでMyFrame#pack()を呼ぶ
0361デフォルトの名無しさん
2007/11/16(金) 01:08:45>>358で正しいよ
0362デフォルトの名無しさん
2007/11/16(金) 01:24:190363デフォルトの名無しさん
2007/11/16(金) 01:27:07おまえはバカか
それはレイアウトマネージャの問題であってrevalidate()で十分尽くされているんだから358が正しいんだよ
0364357
2007/11/16(金) 01:31:12>>361
revalidate()って意味ありますか?
revalidate()せずに、pack()だけで思い通りに表示されました
0365デフォルトの名無しさん
2007/11/16(金) 01:39:53いろいろ作っているうちに分かるよ。pack()でレイアウト変更後の再描画なんてよっぽど
異常なUIでもない限りやらないよ。pack()の方でフレームを広げてボタン押してみ。
0366357
2007/11/16(金) 02:01:390367デフォルトの名無しさん
2007/11/16(金) 02:33:010368デフォルトの名無しさん
2007/11/16(金) 03:04:30http://blogs.sun.com/katakai/entry/jfilechooser_performance_issue
0369デフォルトの名無しさん
2007/11/16(金) 05:59:08ttp://download.java.net/jdk6/6u10/promoted/b07/changes/jdk6uN-b07.html
0370デフォルトの名無しさん
2007/11/16(金) 06:06:06Bug ID: 6578753
Votes 65
Synopsis JFileChooser in 6u2 slow on Windows
Category java:classes_swing
Reported Against
Release Fixed
State In progress, bug
Related Bugs 6491795 , 5050516
Submit Date 10-JUL-2007
0371デフォルトの名無しさん
2007/11/16(金) 09:37:29するのはよくある方法だと思うんだけど、たとえばNetBeansはもっと賢いやり方
をしている。
NetBeansが動いている状態で、それが最小化した状態でタスクバーにあるとする。
その状態でNetBeansのアイコンをクリックするなりして二重に起動しようとすると、
二重起動にはならずに、タスクバーにあるものが画面に現れる。
これってどうやったらできるのかな・・・。
0372デフォルトの名無しさん
2007/11/16(金) 10:52:18Javaにはミューテックスなかったっけ?
0373デフォルトの名無しさん
2007/11/16(金) 11:34:11プロセス間は別の仕組み考えないとダメ。
0374デフォルトの名無しさん
2007/11/16(金) 11:36:21起動用のアプリを別に分ける。
というか、そのためにexeを用意しているようなもん。
0375デフォルトの名無しさん
2007/11/16(金) 11:55:44テキストファイルで現在起動中のプログラム・インスタンス数を数えておいて、
起動時に中身が1なら起動しない。
もし>>371のいうような挙動をしたいなら、プログラムでミューテックスファイルを監視しておいて、
ファイルの中身が2になった瞬間タスクバーからプログラムを出せばいい。
ここまで書いて思ったんだが、Swingでタスクバーから出すとかそういうそうさって出来たっけ?
0376デフォルトの名無しさん
2007/11/16(金) 12:02:05でもそのファイルを監視ってのはどうするんだ
タイマで1秒ごとにタイムスタンプを確認するとかか
0377デフォルトの名無しさん
2007/11/16(金) 12:09:54ファイルやフォルダで変更があったときにイベント起こすような機能なかった?
0378デフォルトの名無しさん
2007/11/16(金) 12:13:16NIO2で追加予定。
標準APIでなくてもいいなら、JConfigとかには付いてたと思うし
>>376のやり方で自力で実装してる人も多いんじゃないかと。
0379371
2007/11/16(金) 19:25:50アプリが独自にポート開いて監視しておく。
別プロセスでアプリが起動したら、そのポートを叩く。
応答が返ってきたら、そのプロセスはシャットダウン。
応答した側のプロセスはFrame#setState
でいけそうな気がするんだが、けっこうめんどくさいね。
もっと簡単にできないもんだろか。
0380デフォルトの名無しさん
2007/11/16(金) 19:36:000381デフォルトの名無しさん
2007/11/16(金) 19:48:42OSはロックサーバが標準で付いててほしいんだよな
CVSのロックサービスだってそのためについてるんでしょ。
AbstractFactoryパターンでインタフェース書いて、Winだけ実装作ろうかな
0382デフォルトの名無しさん
2007/11/16(金) 20:36:050383デフォルトの名無しさん
2007/11/16(金) 20:42:19# 複数の VM による同時アクセスを、この API でより強力にサポートしないのはなぜですか。
同様に、複数の設定の更新を結合して単一トランザクションに組み込み、
すべて更新するかまったく更新しないセマンティクスを適用しないのはなぜですか。
この API は、持続性のある基本的なデータ記憶域として使用し、データベースの代わりとしては使用しません。
この API は、標準の設定/構成リポジトリ上に実装できるようにすることが重要です。
これらのリポジトリのほとんどでは、データベースのような機能は提供していません。
これらのリポジトリは、この API の設計目的を満たしています。
0384デフォルトの名無しさん
2007/11/16(金) 22:05:37ファイアウォールの設定はユーザの責任じゃないかい。
0385デフォルトの名無しさん
2007/11/16(金) 22:08:21フラグの書き換えができなかった場合、次に起動しようとすると困ったことに
なりやすい。
0386デフォルトの名無しさん
2007/11/16(金) 22:10:30オンメモリデータベースを使うってのがいいのかも。
0387デフォルトの名無しさん
2007/11/17(土) 01:29:41ファイルチューザ同等の機能を持つファイルチューザを独自に作る場合、
こうやらねーとすっげー遅くなるぜ?っていうTips教えてくれ
0388デフォルトの名無しさん
2007/11/17(土) 02:04:22普通に作れば遅くならんだろ…
JFileChooserはネイティヴLaFに近づけるために
いろいろ細工してるのが裏目に出てるだけだと思うぞ
0389デフォルトの名無しさん
2007/11/17(土) 02:25:54http://touch.moe.hm/touchup_pict/download/1195233390.jpg
こんな上下2ペイン構成のGUIアプリケーションを作りたいと思ってます
上ペインのJButtonをクリックすれば、下ペインのJPanelが切り替わるように作ればいいと思うんですが
普通どのようにやりますか?
■作ったサンプルではこのようにしてます
初期化で空のpanel1をつくり、その上にpanel2をadd()する
別のボタンが押されたら、panel1に載っているpanel2をremove()、panel3をadd()、validate()
ちょっとわかりづらいかもしれませんが、もっといいやり方ありそうでしょうか
0390デフォルトの名無しさん
2007/11/17(土) 02:29:270391デフォルトの名無しさん
2007/11/17(土) 02:39:430392デフォルトの名無しさん
2007/11/17(土) 04:22:23使ったことないけどカードレイアウトに同意
0393デフォルトの名無しさん
2007/11/17(土) 05:09:46Fileが遅くなってるから、普通に作ったら遅くなるよ。
しったか乙。
0394デフォルトの名無しさん
2007/11/17(土) 05:12:230396デフォルトの名無しさん
2007/11/17(土) 10:40:08やってみた事ないけど、
途中でトラぶってコネクションクローズの前に死んだ場合は二重起動しちゃうの?
0397デフォルトの名無しさん
2007/11/17(土) 10:44:33ローカルホストの接続でとらぶるって、どんなときにとらぶるかな。
そこらへんの想定外のことがあるかどうかは気にはなってんだけど。
0398デフォルトの名無しさん
2007/11/17(土) 10:54:59他のアプリがそのポートを使っていて重複する場合
ファイアーウォールが入っていてはじかれる場合
今どきめずらしいけどLANがついてないマシンだとどうなるっけ?
0399デフォルトの名無しさん
2007/11/17(土) 15:21:39頭大丈夫か?
0400デフォルトの名無しさん
2007/11/17(土) 17:21:11たぶん、接続段階で例外投げられたはずだけど。
jarでクレw
クローズ処理をfinalyでやってるなら途中でシャットダウン入るとfinalyブロック中断されるからそれでもアウトだね。
0401デフォルトの名無しさん
2007/11/17(土) 17:46:33# TCP/IPを外してあればできないのか?
0402デフォルトの名無しさん
2007/11/17(土) 17:49:59Win95以前はまずループバックアダプタいれての開発がデフォだったな
0403デフォルトの名無しさん
2007/11/17(土) 17:56:040404デフォルトの名無しさん
2007/11/17(土) 18:15:28そもそも Win95 ってデフォルトのインストール
だと TCP/IP が組込まれてないようなOSだろ…
0405デフォルトの名無しさん
2007/11/17(土) 18:27:56ゲイツ「インターネットなんて一般人にはやんねーよw」
時代の産物だからな。時代の流れか。
0406デフォルトの名無しさん
2007/11/17(土) 20:13:33とくにGUIまわり。
0407デフォルトの名無しさん
2007/11/17(土) 20:40:37Win95はサポート外だね
0408デフォルトの名無しさん
2007/11/17(土) 20:43:390409デフォルトの名無しさん
2007/11/17(土) 21:24:540410デフォルトの名無しさん
2007/11/17(土) 21:57:44DBやネットに接続するようなアプリなら、イーサカードが使えない環境に
インストールされることなんて無いしさ。
0411デフォルトの名無しさん
2007/11/17(土) 22:11:04というのが当然みたいにいってるが、だれか試したことがあるのか?
その理屈だとNICがない環境ではローカルでのサービスは動かんのだが。
0412デフォルトの名無しさん
2007/11/17(土) 22:53:06NICないと実際IPサービスはうごかんよ
ループバックいれてれば動くが
という常識的な流れだろ
0413デフォルトの名無しさん
2007/11/17(土) 22:57:37あんまり関係ないけど・・・、SunはMacのJVMはやってないんだね。
Macはどこがやってるんだろ。Macユーザじゃないからうといんだわ。
Winが80%をしめてるといわれるわりに、周囲にはMac使いが多くて、
じゃあその人たちにも使えるようにとJavaで作り始めたんだが、
肝心のSunはサポートしてないんだね。
0414デフォルトの名無しさん
2007/11/17(土) 22:59:52ごくごく少数。クレームついても仕様ですで押し通せば。
0415デフォルトの名無しさん
2007/11/17(土) 23:02:33Macはアップルがやってる
6がまだ出てこない…
0416デフォルトの名無しさん
2007/11/17(土) 23:11:12そうなんだ。ありがーと。
6をはやくだしてほしいわ。5で動くようにと思ってたんだけど、
6を知るとついつい6の機能を使ってしまったような・・・
0417デフォルトの名無しさん
2007/11/17(土) 23:43:280418デフォルトの名無しさん
2007/11/18(日) 00:40:44ついこの前にそれではまった…
JFileChooser で FileNameExtensionFilter 使ってて
Mac OS X で動かねーって言われるまで気が付かなかった
# Apple は 6 を出す気があるんだろうか…?
0419デフォルトの名無しさん
2007/11/18(日) 00:44:260420デフォルトの名無しさん
2007/11/18(日) 01:03:20Cocoa-Javaバインディングも放置になったし、やる気なさそう。
0421デフォルトの名無しさん
2007/11/18(日) 01:19:050422デフォルトの名無しさん
2007/11/18(日) 01:42:247でも8でも出てくると思うけどね。
Javaはいつも明日の言語なんだよな。w
明日はごちそう、でも今日は無い。w
0423デフォルトの名無しさん
2007/11/18(日) 01:44:33ただ、やろうとしていることに作業が追い付いてないだけで・・・。
0424デフォルトの名無しさん
2007/11/18(日) 02:05:50Javaバインディングを出すのはもうやめてる。
LeopardではBridgeSupportでなんとかできるのかもしれないけど。
0425デフォルトの名無しさん
2007/11/18(日) 02:09:410426デフォルトの名無しさん
2007/11/18(日) 02:18:14時間が経つごとに気合がなくなっていってるっぽいよなぁ
>>425
CPUがインテルでもベースがUNIXでも肝心なGUIライブラリは別物なので結局移植作業は必要
0427デフォルトの名無しさん
2007/11/18(日) 02:20:29グラフィックとかサウンドとかあたりは全然別物だし・・・
0428デフォルトの名無しさん
2007/11/18(日) 02:38:18追従していくの大変すぎるんじゃないのかなぁ。
JVMさえ開発すればどのマシンでも動きますなんてただの宣伝文句で、
それ作ろうとしたらすげー大変だと思うよ。
0429デフォルトの名無しさん
2007/11/18(日) 13:28:02できあいの既存のものを改造していくのには慣れていても、
継続的にある規格に互換させていく作業ってのはやってこなかっただろうし。
0430デフォルトの名無しさん
2007/11/18(日) 14:37:15それが基本ソフトとよばれるものなんだけどな
互換性をいかに維持するか
新しいOSごとにアプリ全部作り直しなんてやってられん
このスレ的にはApple捨ててよで結論でてるだろ
5.0のときの対応も遅かった
0431デフォルトの名無しさん
2007/11/18(日) 14:41:360432デフォルトの名無しさん
2007/11/18(日) 16:17:400433デフォルトの名無しさん
2007/11/18(日) 20:54:18GUIが自前とか言う次元超えてるよ。
0434デフォルトの名無しさん
2007/11/19(月) 00:29:34V2Cが無ければとても困ると思うの
0435デフォルトの名無しさん
2007/11/19(月) 03:17:020436デフォルトの名無しさん
2007/11/19(月) 10:31:310437デフォルトの名無しさん
2007/11/19(月) 13:22:300438デフォルトの名無しさん
2007/11/19(月) 13:46:40でもCocoa-Javaはいらないと思ってる。
そういうのはRubyとかでいいんじゃないかな。
Javaはクロスプラットホームが基本です。
クロスプラットホームだけど、Macでは見た目を良くする。
ttp://developer.apple.com/technotes/tn2007/tn2196.html
その他のプラットホームでは、Nimbusに期待してる。
ttps://nimbus.dev.java.net/spec/index.html
どっちも解像度に依存しないし、スモールサイズなんかは共通して使える。
0439デフォルトの名無しさん
2007/11/19(月) 14:33:56大幅な高速化(1.3.1から1.4.0より大きな変化)だから
もうすぐ1年たつというのにMacに6がきてないのは苦しい
0440デフォルトの名無しさん
2007/11/19(月) 15:16:27糞実装を何とかしてくれればそれで良いと思うが。
0441デフォルトの名無しさん
2007/11/19(月) 19:21:46Macが6をサポートしなくても当分困らないんだよな
5.0が動くだけでも十分じゃね
0442デフォルトの名無しさん
2007/11/19(月) 20:59:510443デフォルトの名無しさん
2007/11/21(水) 21:07:37JTreeで幹や葉をクリックしたり、矢印キーで移動させたときに
選択している幹や葉のファイルを別のJListに表示したい。
この場合、イベントはvalueChangedでいいんでしょうか?
それとなにか注意点とかありますでしょうか
0444デフォルトの名無しさん
2007/11/22(木) 00:03:520445デフォルトの名無しさん
2007/11/22(木) 12:44:57マニュアル読んで判断したならいいでしょ
あとvalueChangedってメソッド名だけ出しても普通の人はわからんと思うよ
0446デフォルトの名無しさん
2007/11/22(木) 15:08:370447デフォルトの名無しさん
2007/11/22(木) 15:31:170448デフォルトの名無しさん
2007/11/22(木) 19:38:15まあ、ドキュメント読めば分かることだが。
0449デフォルトの名無しさん
2007/11/22(木) 23:58:16単純にBorderLayout.SOUTHで問題はないのですが、BorderLayout.SOUTHに当たる領域は後々別に使用するかもしれないので、完全に別領域として下部に取り付けたいのです。
イメージ的にはsetJMenuBar()と同じような感じです。
どのような実装がよいでしょうか?
0450デフォルトの名無しさん
2007/11/23(金) 00:10:09JFrame の SOUTH をステータスバーのために使って、
JPanel の SOUTH を後々別に使用するときのために取っておく
0451デフォルトの名無しさん
2007/11/23(金) 00:13:45他にはないでしょうか?
0452デフォルトの名無しさん
2007/11/23(金) 00:25:57いや、最初から、JFrame じゃなくて JPanel の CENTER に入れればいいじゃん。
わざわざ取得っていうか、JPanel 作ったときにそれをフィールドに持っとけばいいだけでそ?
本当にどうしても JMenuBar のように振舞わせたくて他に方法がないというなら、出来ることは出来るけどちょっと面倒い。
JRootPane の中の layeredPane と glassPane と、layeredPane の中の contentPane と JMenuBar (と自分の statusBar) をレイアウトするレイアウトマネージャを書いて、JRootPane のレイアウトマネージャをそれで置き換える。
0453デフォルトの名無しさん
2007/11/23(金) 00:27:53%USERPROFILE%\Local Settings\Application Data
↑のディレクトリの中に変なGUID名のディレクトリが作られてて
中を見るとJ2SDK5.0のインストーラみたいなのが入ってる。
うちの環境にはJDK6も入ってるけど、5系だけゴミ?があるので気になります。
これって削除しちゃっていいのかな?
0454デフォルトの名無しさん
2007/11/23(金) 00:34:12そうなのですが、どうしてもメニューバーのように扱いたかったので・・
やはりかなり面倒なことになるようですね。
丁寧に教えていただきありがとうございました。
0455デフォルトの名無しさん
2007/11/23(金) 00:40:36面倒ではないだろと
0456453
2007/11/23(金) 00:44:03こちらはクローズします。ごめんよぅ。
0457デフォルトの名無しさん
2007/11/25(日) 00:15:06たので質問させていただきます。
現在、携帯電話でいうフレーム撮影機能をPC上でJAVAを用い、作りたいと考え
ております。USBカメラから動画キャプチャを行い撮影ボタンを押すとその時の
静止画がJPEGで保存するところまでは作ったのですが、写真フレーム(gif)を
動画上に表示する方法がわかりません。API集の方も探してみたのですが、見つ
けることができませんでした。誰か方法について教えてもらえませんでしょう
か??よろしくお願いします
初心者でして簡単なソースなどつけていただけると助かります。
0458デフォルトの名無しさん
2007/11/25(日) 00:18:56・ImageのロードにはImageIOを使う
・JLabelを貼り付けてそれにImageをセットする
ネットで初心者かどうかってのは意味ない文章だからやめたほうがいい
知っているか知らないかだけだから
0459デフォルトの名無しさん
2007/11/25(日) 00:23:380460デフォルトの名無しさん
2007/11/25(日) 00:23:49super呼んだ後に、drawImage(...)でOKじゃね?
0461デフォルトの名無しさん
2007/11/25(日) 00:35:49>USBカメラから動画キャプチャを行い撮影ボタンを押すとその時の
>静止画がJPEGで保存するところまでは作った
ここにJMF使ってるならJMF流儀の動画の描画の仕方があるから動画のキャプチャをどうやってるかでやり方が決まる。
0462デフォルトの名無しさん
2007/11/25(日) 01:30:58キャプチャ部分となりますと
new Timer(100, new ActionListener(){
try {
player = Manager.createRealizedPlayer(new MediaLocator("vfw://0"));
} catch(Exception e){
System.out.println(e);
System.exit(1);
}
player.start();
ここになりますでしょうか。
ご教授よろしくお願いします
0463デフォルトの名無しさん
2007/11/25(日) 02:44:57これがやりたいんだよね?
ならEffect実装してProcessorからTrackControl取り出してTrackControl#setCodecChain(Codec[])で実装したEffectセットしてやれば良い。
んでProcessor#getVisualComponent()で取得したビジュアルコンポーネントを適当に張り付ければ良い。
あとはJMFのページのチュートリアルとかサンプルコード読んで。
0464デフォルトの名無しさん
2007/11/27(火) 20:21:480465デフォルトの名無しさん
2007/11/27(火) 20:22:470466デフォルトの名無しさん
2007/11/27(火) 20:23:190467デフォルトの名無しさん
2007/11/27(火) 20:34:010468464
2007/11/27(火) 20:44:22InputMethodEvent#getCommittedCharacterCount()
で判別できそうですね。
ありがとうございました!
0469デフォルトの名無しさん
2007/11/29(木) 15:28:42<security>
<all-permissions/>
</security>
を設定していて、jarにはオレオレ証明書でサインしている。
確かにファイルアクセスなど自由にできるから、
この設定は有効化されているはずなんだが、
Point p = MouseInfo.getPointerInfo().getLocation();
で
Exception in thread "AWT-EventQueue-0"
java.security.AccessControlException: access denied (java.awt.AWTPermission watchMousePointer)
が出るのって、これはどういうことなんだろ。
JWSで動かさなければこのエラーは出ないんだが。
0470デフォルトの名無しさん
2007/11/30(金) 14:03:31JWSのバグでね?
そのクラス1.5からのやつだからもしかしたら・・・
0471デフォルトの名無しさん
2007/12/01(土) 00:09:26初めに、タブのタイトル部分に選択状態みたいなのが行くんだけど、
それをタブに貼ってある、jCheckBoxに初めから行くようにしたいんだけど、
windowsのアプリはそうなるようなんで。
どうやったら出来ますか?
0472デフォルトの名無しさん
2007/12/01(土) 00:49:320473デフォルトの名無しさん
2007/12/01(土) 00:54:400474471
2007/12/01(土) 01:19:46よく分からないけど、setVisible(true)した後しかフォーカスがいかないな…
0475デフォルトの名無しさん
2007/12/01(土) 01:19:51つrequestFocusInWindow()
俺はタブはいつもsetFocusable(false)するなぁ。
0476デフォルトの名無しさん
2007/12/01(土) 01:26:01つaddAncestorListener()
ancestorAddedでrequestFocusInWindow呼んでみそ
0477デフォルトの名無しさん
2007/12/01(土) 01:27:340478デフォルトの名無しさん
2007/12/01(土) 01:28:59それだとタブで切り替えたときにフォーカスが移らないってことだとおも
0480デフォルトの名無しさん
2007/12/01(土) 02:59:55そのインターフェースの多くが実装される可能性が高いリスナーは
利便性が低いからアダプタクラス用意しないって方針だよ。
0481デフォルトの名無しさん
2007/12/01(土) 10:36:16単純に対象を毎回チェックしてその対象に必要なメニューを構成する、というのはどうも気持ちが悪くて・・
0482デフォルトの名無しさん
2007/12/01(土) 12:02:520483デフォルトの名無しさん
2007/12/01(土) 12:35:030484481
2007/12/01(土) 12:48:32遅延生成とはどういうことを指すのでしょう
やはり表示毎に必要なメニューを生成という意味でしょうか?
>>483
例えば対象の種類にあらゆる属性があり、その属性ごとに必要なメニューがある場合、その組み合わせをあらかじめ作っておくのは好ましくないかと・・
0485デフォルトの名無しさん
2007/12/01(土) 12:55:470486デフォルトの名無しさん
2007/12/01(土) 14:24:05そういう意味だったのか
あの日本語からはそこまで理解できなかったよ
0487デフォルトの名無しさん
2007/12/01(土) 14:28:15表示される項目が全て画面に収まるのならすべていれる。
そして選択可能不可能で調整したほうがいいんじゃない?
コンポーネントによってメニューがかわるより、メニューは同じで選択可能か不可能かのほうが
ユーザーに優しいとおもわれる。
この選択肢は下のほうにあるとか上のほうにあるとかコンポーネントごとにかわっていたら厄介だ。
0488デフォルトの名無しさん
2007/12/01(土) 15:01:14JFrameの上には、とりえあえずJPanel置くべきですか?
0489デフォルトの名無しさん
2007/12/01(土) 15:04:11そうでなくともパネルに機能単位でのせていったほうが楽になるかな
グループレイアウトを使うのなら場合によってはなくてもいいかも
0490481
2007/12/01(土) 15:52:06>>487
とりあえず全部登録しておくのが楽なようですね。
場合によってsetVisible、setEnabledで使い分けようと思います。
ご意見ありがとうございました。
0491デフォルトの名無しさん
2007/12/01(土) 18:02:09そうなんだ〜。まぁ、よく使うなら自分でAdapter作ればいいしね〜。
0492デフォルトの名無しさん
2007/12/02(日) 18:44:49コンテキストメニューが開いちゃうんだけど、心当たりがある人いる?
JavaはSunの1.6.0_03
0493デフォルトの名無しさん
2007/12/02(日) 19:12:28http://sdc.sun.co.jp/java/docs/j2se/1.4/ja/docs/ja/guide/awt/1.3/designspec/popupmenu.html
>・Windows では、マウスボタン 2 マウス UP でメニューがポップアップする
>・Motif では、マウスボタン 3 マウス DOWN でメニューがポップアップする
0494デフォルトの名無しさん
2007/12/02(日) 21:54:41JNLPでデスクトップにショートカットアイコンを作成し、
そのアイコンに何らかのファイル(何でもいい)をドラッグアンドドロップすると、
「このアプリケーションは起動できません」「詳細」「了解」というダイアログが表示される。
ここで「詳細」ボタンを押すと、次のような情報が表示される。
※C:\Users\hoge\Desktop\新しいテキスト ドキュメント.txt をドラッグアンドドロップした場合。
InvalidArgumentException[ 無効な引数が指定されました: {C:\Users\hoge\Desktop\新しいテキスト ドキュメント.txt, C:\Users\hoge\AppData\Local\Temp\javaws12 }]
at com.sun.javaws.Main.launchApp(Unknown Source)
at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
at com.sun.javaws.Main$1.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
で、問題なのは、ここで、ドラッグアンドドロップしたファイルが、
何の断りもなく、いきなり 削除 されてしまう、ということなのです。
この不具合は、あらゆる全てのJNLPアプリで、全てのOSで再現しました。
こうした挙動を防ぐような、何らかの対策をすることは可能でしょうか?
0495デフォルトの名無しさん
2007/12/03(月) 00:20:49MacOSX Leopardでやろうとしましたが再現しませんでした。
何よりファイルにDnDができない。
http://bugreport.sun.com/bugreport/
で報告してください。
報告時は具体的な再現方法と再現環境を書いておくのが吉です。
ありとあらゆる、というのはちょっと曖昧すぎます。
0496デフォルトの名無しさん
2007/12/03(月) 01:24:26あと、64bit用のJREやSolarisでも試せていない。
こちらで試したのは、Windows Vista, Windows XP SP2, UbuntuLinux(7.04)の上で、
1.4.2_16,1.6.0_03,1.6.0_10-ea(いずれも32bit用)。
ここまでやって、いずれの環境でも再現した。
いま、Java7でも試そうとしているところ。
Javaキャッシュビューアで、インストール済みのJNLPアプリについて
「選択されたメニューのショートカットを作成」または、
右クリックメニューで「ショートカットの作成」で、
ショートカットがデスクトップにすることができる。
そうして作られたショートカットに、
ユーザが何かのファイルを放り込むと、
そのファイルが勝手に削除されてしまう、ということ。
ユーザがデスクトップ上のメモ帳のショートカットにファイルをDnDして
開こうとして、まちがって隣のJNLPアプリのショートカットにドロップしたところ、
そのファイルが勝手に削除されてしまう、という感じ。
> 何よりファイルにDnDができない。
たぶん、そういう挙動が正常なのだと思う。
0497デフォルトの名無しさん
2007/12/04(火) 11:36:460498デフォルトの名無しさん
2007/12/04(火) 12:06:32JButtonのjavadocを隅から隅まで読んで
しかるのちにボーダーのマージンを設定したらいいよ
0499デフォルトの名無しさん
2007/12/05(水) 14:21:41497です。できました。ありがとうございます。
0500デフォルトの名無しさん
2007/12/06(木) 02:03:22JFrameでgetContentPane()をしなくてもよくなったは、いつからですか?
自動的に転送されるようになったってのを読んだのですが。
0501デフォルトの名無しさん
2007/12/06(木) 02:06:170502デフォルトの名無しさん
2007/12/06(木) 02:10:450503デフォルトの名無しさん
2007/12/07(金) 22:41:46メイン画面とスコア画面があって、
それぞれJPanelを継承したクラスを作ってMainPanel,SubPanelと作ろうと思ってるんですが、
この方法は値の受け渡しが面倒くさくなったり、重くなったりしますか?
普通はひとつのゲームは大体1パネルですかね?
0504デフォルトの名無しさん
2007/12/07(金) 22:43:16ましてシューティングで・・・
0505デフォルトの名無しさん
2007/12/07(金) 22:45:12最近はSwingもだいぶ早くなったと聞いたんですが...
0506デフォルトの名無しさん
2007/12/07(金) 22:51:48BufferStrategyを使うのも良し。
0507デフォルトの名無しさん
2007/12/07(金) 22:52:23Swingはシングルスレッドだから、パッシブ連打でも問題ないはず
0508デフォルトの名無しさん
2007/12/07(金) 23:00:080509503
2007/12/07(金) 23:01:39メイン画面用とスコア画面用の描画処理が混在してるってことですよね?
そうすると片方の画面の背景だけ変更するなどの処理とかがややこしくはならないですか?
パネルで分けるとコードがすっきりする気がするんですが
0510デフォルトの名無しさん
2007/12/07(金) 23:05:41アクティブ・レンダリング=自発的に描画を実行するレンダリング(Toolkit.sync(), BufferedStrategy)
0511デフォルトの名無しさん
2007/12/08(土) 00:30:40つまりWindowシステム普及前のゲームプログラミングが難しかったと思ってる?
んなことないよ
練習がてらというのならSwingつかってもいいけどメリットはあんまないとおもうよ
JLabelのアイコン指定でキャラ表示とかSwingというフレームワークで
描画や再移動とかそういうことでしょ?
途中でもっといいものを、もっと本格的なものを、となって挫折しそう
あとpaintComponentではゲームのレンダリングの処理はいれないことね
0512デフォルトの名無しさん
2007/12/08(土) 00:31:36ダブルバッファじゃダメ
0513503
2007/12/08(土) 00:51:35paintComponentはそれを呼び出すだけ。で、必要に応じてrepaint()を行うとpaintComponentが再描画されるという感じでしょうか?
0514デフォルトの名無しさん
2007/12/08(土) 00:59:58ウインドウの重なり具合とかOSが画面をいきなりリフレッシュしたりとかあるから
各オブジェクトにdrawのインターフェースを実装させるという考え方はあってる
レンダリングは自前でAというバッファへしてるとすると、
その間描画はBというバッファからイベントでフロントへ描画させる
Aのレンダリングが終わったらAとBをいれかえて、次のフレームの描画はBへ行う
バックバッファへのレンダリングとフロントへのレンダリングが重なる場合もあるという考え方ね
0515503
2007/12/08(土) 01:09:30答えてくださった方どうもありがとうございました
0516デフォルトの名無しさん
2007/12/08(土) 01:16:16ゲーム製作板とかいろいろと斜め読みしてみるといいかも
0517デフォルトの名無しさん
2007/12/08(土) 03:09:19如何せんパフォーマンスが悪いのが致命的なんだよな。
いくら努力しても、一定以上FPSが上がらんとなるとどうしても敬遠したくなる。
0518デフォルトの名無しさん
2007/12/08(土) 06:27:05努力するほど深まって発展していく題材と、
底の浅いところですぐに打ち止めになるのがある。
0519デフォルトの名無しさん
2007/12/08(土) 08:27:040520デフォルトの名無しさん
2007/12/08(土) 08:28:320521デフォルトの名無しさん
2007/12/08(土) 09:47:04ブロック崩しやテトリスくらいなら楽勝。
ゲーム専用機であるようなハデなアクションゲームを作りたいならお門違い。
0522デフォルトの名無しさん
2007/12/08(土) 09:49:46昔のアーケードゲームの解像度はせいぜいその程度だったしさ。
0523デフォルトの名無しさん
2007/12/08(土) 11:36:49リアルタイムシミュレーションとか向いてると思うけどな>java
スレッド周りとか楽々作れるし
0524デフォルトの名無しさん
2007/12/08(土) 12:55:520525デフォルトの名無しさん
2007/12/08(土) 14:32:05まじていってるの?
0526デフォルトの名無しさん
2007/12/08(土) 14:33:14IntelCore2/2GHzでJavaで動かすとCネイティブだと1.6GHzくらいの速度になるけど
それが問題になることはまずあるまい
0527デフォルトの名無しさん
2007/12/10(月) 01:17:57public class MainFrame extends JFrame {
public MainFrame() {
MainPanel mp = new MainPanel();
Container contentPane = getContentPane();
contentPane.add(mp);
}
public void main(String[] args) {
MainFrame frame = new MainFrame();
frame.setVisible(true);
}
}
[MainPanel.java]
public class MainPanel extends JPanel implements ActionListener{
public MainPanel() {
SubPanel sp = new SubPanel();
}
public void actionPerformed(ActionEvent e) {
setBackground(Color.BLACK);
}
}
[SubPanel.java]
public class SubPanel extends JPanel {
public SubPanel() {
JButton b = new JButton("メインパネルの色変更");
b.addActionListener();
}
0528デフォルトの名無しさん
2007/12/10(月) 01:23:46ようするにSubPanelのインスタンスからMainPanelのインスタンスへ
アクセスするにはどうすればよいのでしょうか?
MainFrameでMainPanelのインスタンスをpublicでstaticにしたりいろいろやったのですが、
うまくいかないのでどなたか教えてください。
0529デフォルトの名無しさん
2007/12/10(月) 01:47:12SubPanelにボタンのaddActionListenerを委譲して
MainFrameからやりたいことを教えてあげればいいんじゃないの?
0530528
2007/12/10(月) 03:21:26すいません 委譲がいまいちわからないんですが、SubPanelとMainFrameにaddActionListener()メソッドを作り、MainFrameにactionPerformedメソッドがあるような感じですか?
今までは↓のような形で出来るかなとやっていたんですが、うまくインスタンスにアクセスできていないみたいなんです。
もし↓で出来たとしてもなにか強引過ぎる気がします。もともと構成がありえないんですかね?
[MainFrame.java]
public class MainFrame extends JFrame {
public static MainFrame frame;
public static MainPanel mp;
public MainFrame() {
mp = new MainPanel();
Container getContentPane.add(mp);
}
public void main(String[] args) {
frame = new MainFrame();
}
}
[MainPanel.java]
public class MainPanel extends JPanel implements ActionListener {
public MainPanel() {
sp = new SubPanel();
this.add(sp);
}
public void actionPerformed(ActionEvent e) {
setBackground(Color.BLACK);}}
[SubPanel.java]
public class SubPanel extends JPanel {
public SubPanel() {
JButton b = new JButton("メインパネルの色変更");
b.addActionListener(frame.mp);}}
0531デフォルトの名無しさん
2007/12/10(月) 10:02:090532531
2007/12/10(月) 10:06:520533デフォルトの名無しさん
2007/12/10(月) 10:45:47設計方針とか変更不可のクラス等の制約条件とかが分からないけど
手っ取り早くやるならMainPanelとSubPanelの親子関係がそのままなのを前提に
b.addActionListener((MainPanel)getParent());
0534デフォルトの名無しさん
2007/12/10(月) 11:19:28SubPanel#addColorChangeActionListener(listener){b.addActionListener(listener);}
を作る方を選ぶかな。
0535デフォルトの名無しさん
2007/12/10(月) 12:32:25なんでstaticがでてきたりするんだ?
まずは言語の勉強からやりなおしたほうがいいんじゃないかい?
0536デフォルトの名無しさん
2007/12/10(月) 12:51:30b.addActionListener(frame.mp);}}ってやってもコンパイルできなくて、
b.addActionListener(MainFrame.mp);みたいにできるようにクラス変数にしちゃったんだと推測。
プログラムの設計と実装の仕方を良い参考書や良いソースを見ながら勉強した方がいいと思う。
0538デフォルトの名無しさん
2007/12/11(火) 13:58:13getParent()は使わないほうがいいな
独立性が失われるのにListenner使ったりとかありえん
まず言語の基本の勉強からしたほうがいい
近道しようとしても無駄だと思う
ここ本当に基本中の基本だから
0539503
2007/12/11(火) 17:52:44すいませんご指摘ありがとうございます
SubPanelのコンストラクタでgetParent()しても、その時点ではMainPanelの子にはなってないということですよね
>独立性が失われるのにListenner使ったりとかありえん
これはimplements ActionListenerのことですかね アダプタクラスというのを使ったほうがいいということでしょうか
一応基礎はやったつもりでいたんですが、今回GUI使うことでぜんぜん理解できていないことに気づいてそれだけでもよかったです
もう来ません ありがとうございました。
0540デフォルトの名無しさん
2007/12/11(火) 18:53:25インスタンスの参照を渡せばいいだけでしょ?
それができないってことはJavaの勉強1週間程度しかしてないということかな?
0541530
2007/12/12(水) 00:36:46勉強はJavaの入門書を一通り読んだんですが(スレッドくらいまで。デザインパターンは全く)、ちゃんとは理解できてなかったようです。
参照を渡すといいましても>>530のコードだと難しくないですか?
コンストラクタでいろいろやってるのも悪いんですかね
本当にこれで最後にしますんで、
MainPanelとSubPanelが連動していて(Subのボタンを押すとMainの内容を変更したりする)場合、
どんなコードになりますか?親切な方おねがいします
0542デフォルトの名無しさん
2007/12/12(水) 02:37:50MianPanelはSubPanelを生成してあげたあとにセットしてあげるでもいいんじゃない?
SubPanelに
private MainPanel mainPanel;
public setMainPanel(MainPanel panel){
this.mainPanel = panel;
}
と追加しておいて
sp = new SubPanel();
sp.setMainPanel( this ) ;
this.add(sp);
とするといい。
subからMainを触りたければ上で定義したprivateなmainPanelに対してアクセスをする。
MainPanelでSubPanel作って乗せてるだけだからこれでいいと思われ。
MainPanelが先に消えたりする可能性があるとかだとリスナーいじってどうのこうのが必要になるけど
たぶんあなたがやりたいのはこれで十分かと。
0543デフォルトの名無しさん
2007/12/12(水) 02:44:040544デフォルトの名無しさん
2007/12/12(水) 08:34:31それだと SubPanel が汎用性の低いクズパーツになるだろ。
SubPanel がボタンを持つパネルならそのボタンのアクションリスナーを
>>534のように SubPanel に委譲してやったほうがいい。
public class SubPanel extends JPanel {
private JButton button;
public SubPanel(String buttonText) {
button = new JButton(buttonText);
this.add(button);
}
public void addButtonActionListener(ActionListener listener) {
button.addActionListener(listener);
}
}
public class MainPanel extends JPanel implements ActionListener {
public MainPanel() {
SubPanel panel = new SubPanel("メインパネルの色を変更");
panel.addButtonActionListener(this);
this.add(panel);
}
public void actionPerformed(ActionEvent e) {
this.setBackground(Color.BLACK);
}
}
0545デフォルトの名無しさん
2007/12/12(水) 13:06:00アクションイベントだけならそうだろうけど
GUIってそれ以外のプロパティの変更とかふつうはやるものだし
0546デフォルトの名無しさん
2007/12/12(水) 13:35:410547デフォルトの名無しさん
2007/12/12(水) 13:44:05ActionListennerをMainPanelで実装している時点で複数のイベント対応がおわっとるわけで。
0548デフォルトの名無しさん
2007/12/12(水) 15:31:50スキンがXMLファイルと画像で済むならたくさん配布されてそうなのに、
どうして一個も見つからないんだろう・・・
0549デフォルトの名無しさん
2007/12/12(水) 15:37:420550デフォルトの名無しさん
2007/12/12(水) 15:41:150551デフォルトの名無しさん
2007/12/12(水) 15:48:27Synth Studioにちょっと期待。
http://weblogs.java.net/blog/gfx/archive/2005/09/synth_studio.html
>550
Nimbusもいいと思うんだけど、とにかく数が出ないことにはなんとも多様性が少なすぎます。
0552デフォルトの名無しさん
2007/12/12(水) 16:38:29着せ替えできることを売りにしてるアプリで俺が最初に思い出すのがCDプレイヤー。
0553デフォルトの名無しさん
2007/12/12(水) 17:03:49参考:
ttp://d.hatena.ne.jp/nowokay/20060223#1140636171
Substanceは6.0では動かないくさいけど
0554デフォルトの名無しさん
2007/12/12(水) 17:10:21手法、使用APIなどご教授お願いします。
0555デフォルトの名無しさん
2007/12/12(水) 17:18:24なぜここで聞く?質問スレ行った方がいいんじゃないか?
0556デフォルトの名無しさん
2007/12/12(水) 17:37:28って感じでもないか。
知ってたらBufferedImageを保存するには?って聞くだろうし、それはスレ違いか。
0557デフォルトの名無しさん
2007/12/12(水) 17:44:29そういう感じのLAFがカッコイイと思う人もいるんだろうけど・・・
ブログのスキンとは求められてるものが違うんでね?
0558デフォルトの名無しさん
2007/12/12(水) 18:39:42それとも共存するんだろうか?
NimbusってSynthで全部自前でやってるせいか少し重いからイマイチなんだが。
0559デフォルトの名無しさん
2007/12/12(水) 19:16:20というか、エンジン部分が決まっているので
むしろこれからのチューニングに期待できるんだけど。
Nimbusが出てきてからSubstanceへの興味はだいぶ薄れちゃったな・・・
V2Cは、6u10に入ってるNimbusで綺麗に動くので最近はNimbusで見てる。
素のMetalやOceanよりしっくりきてる。
普通に見れて、プラットフォーム共通の見栄えってのは重要でしょう。
Metalは、お世辞にも見栄えがいいとはいえなかったから・・・・(派手だけど)
0560デフォルトの名無しさん
2007/12/12(水) 19:25:210561デフォルトの名無しさん
2007/12/12(水) 19:26:24jarをインデックス付き無圧縮で配布すれば多少早いかもね。
もしくはSynthをコンパイル可能にするとか。
0562デフォルトの名無しさん
2007/12/12(水) 19:26:41NetBeansもそれでシェアを一気に伸ばしたし
0563デフォルトの名無しさん
2007/12/12(水) 20:07:13ていうかクロスプラットフォームの実現性としてはjavaLAFがデフォの方が良いけど、
ユーザビリティが落ちるので天秤ってところか・・・。
0564デフォルトの名無しさん
2007/12/12(水) 20:40:36部品をカスタマイズしてたりするとなおさら。
で、いくつもLAFがインストールされていても、事実上使えないものが出てくる。
そんなLaFしか実現できないのなら、LAF一つで統一してほしいところだな。
0565デフォルトの名無しさん
2007/12/12(水) 21:25:54推奨サイズを使って設定してくれるならずれることはほとんどないはずだけど?
今まで大量にSwingアプリ作ったがLAFかえて問題が出る場合ってのはほとんどないよ。
むしろWinネイティブより楽。
0566デフォルトの名無しさん
2007/12/12(水) 21:35:29推奨サイズって何?
カスタムコンポーネントなしのアプリしか作ったことないんじゃないの?
0567デフォルトの名無しさん
2007/12/12(水) 21:45:280568デフォルトの名無しさん
2007/12/12(水) 22:04:470569デフォルトの名無しさん
2007/12/12(水) 22:18:380570デフォルトの名無しさん
2007/12/12(水) 22:47:58見るけど気付かなかったよ。どこかに便利なサイズの表でもあるのかと思った。
0571デフォルトの名無しさん
2007/12/12(水) 23:23:410572デフォルトの名無しさん
2007/12/13(木) 00:25:17つまり、preferredSizeを和訳できなかったわけだな。中国の会社の人?
0573デフォルトの名無しさん
2007/12/13(木) 02:30:490574564
2007/12/13(木) 02:58:31もちろんそうしてるよ。JDK1.0のころからある普通のレイアウトマネージャを組み合わせてレイアウトしてる。
そりゃテキストエディタのようにツールバーとメニュー、オプション選択とOK/NOボタンしかないとか、
その程度なら問題ないだろうけど、複雑になるとたいがい問題でると思うけどな。
ただしまったく使えなくなるほど、ひどいことになるのは少ない。
レイアウトデザインには急所があってさ、絶対はずせないところってのがいくつかある。
そこがずれると一気にしまりがなくなってださくなるとこが。
そういうとこが狂うと、やめてよっていいたくなる。
LAFに応じて位置とサイズを調整するようなコードを書くとか、無難なデザインを適用する事はできると思う。
でもそういうのってなんか違うと思うんだよね。
0575デフォルトの名無しさん
2007/12/13(木) 03:27:330577デフォルトの名無しさん
2007/12/13(木) 08:46:370578デフォルトの名無しさん
2007/12/13(木) 11:04:12簡単なのでいいから
0579デフォルトの名無しさん
2007/12/13(木) 11:45:140580デフォルトの名無しさん
2007/12/13(木) 11:54:5621 * 21 のicon,pressedIcon,rolloverIconの三枚のボタン画像を作りJButtonのプロパティに指定。
perferredSize=21,21
margin=0,0,0,0
focusPainted = false
contentAreaPainted = false
borderPainted = false
LaFでMotif,Windows,Metalの三通りを試してみてよ。Motifはアウトだから。
画像ボタンをつくればいいだけなら解決策はあるけど、しかし、
GridBagLayoutで次のようにJTextFieldが等間隔でならんでいて、
その一つにこの画像ボタンがあるとする。
[TextField]
[TextField][B] ←画像ボタン
[TextField]
[TextField]
アウトだよね。レイアウトは崩れる。デザインを修正することで回避する策もあるし、
使えないってことはないが、LaFを切り替えると振る舞いが違うのは困る。
0581デフォルトの名無しさん
2007/12/13(木) 12:04:33もう一つ例をあげると、Motifのメニュー操作法と、Windows,Metalの操作法は異なる。
これは使ってみればすぐに分かると思うけど。
それから、JSliderBarの操作法ね。Metalと残りのWindows,Motifでは振る舞いが異なる。
これもわかりにくいかもしれないけど使ってみれば分かると思う。
LaFは見かけ上の外観を変更するだけのはずなのに、操作体系にまで干渉したらまずいと思うんだけど。
0582デフォルトの名無しさん
2007/12/13(木) 12:57:220583デフォルトの名無しさん
2007/12/13(木) 13:05:42LaFはLook & Feelの略だよ。外見を変更するだけじゃない。
0584デフォルトの名無しさん
2007/12/13(木) 13:14:14すまん、やってみたが、レイアウトは崩れないっぽいんだが…
なんか俺間違ってるのかも試練から
どこがどう崩れたのか教えて欲しい
0585デフォルトの名無しさん
2007/12/13(木) 13:31:58単純思考のくせに傲慢そうなやつだな。w
feelは手触りだから、操作体系が異なるのは仕様のうちだとでもいいたいのか?w
しかしそれでは良くない場合のほうが多いんだよな。
アプリに無意味な混乱を与えるくらいならLAFをユーザに選択させないほうが俺は良いと思うけどね。
ボタンが数個しかついてないようなアプリならまーすきにすればだけど。
0586デフォルトの名無しさん
2007/12/13(木) 13:36:10画像はいらないから、コードをコピペしてみて。
環境の違いもあるだろうし。
0587デフォルトの名無しさん
2007/12/13(木) 13:37:380588デフォルトの名無しさん
2007/12/13(木) 13:48:370589デフォルトの名無しさん
2007/12/13(木) 14:12:06public class Test extends JFrame {
static public void main(String args[]){
new Test().createUI("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
}
private void createUI(String laf){
try {
UIManager.setLookAndFeel(laf);
} catch (Exception e) {
}
this.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
GridBagLayout gbl = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
JPanel p = new JPanel(gbl);
c.weightx = c.weighty = 1;
JTextField t0 = new JTextField(10);
c.gridx = c.gridy = 0;
gbl.setConstraints(t0, c);
p.add(t0);
JTextField t1 = new JTextField(10);
c.gridy = 1;
gbl.setConstraints(t1, c);
p.add(t1);
0590デフォルトの名無しさん
2007/12/13(木) 14:12:36b.setPreferredSize(new Dimension(21,21));
b.setMargin(new Insets(0,0,0,0));
b.setFocusPainted(false);
b.setContentAreaFilled(false);
b.setBorderPainted(false);
b.setRolloverIcon(new ImageIcon("./over.gif"));
b.setPressedIcon(new ImageIcon("./pressed.gif"));
c.gridx = 1;
gbl.setConstraints(b, c);
p.add(b);
JTextField t2 = new JTextField(10);
c.gridx = 0;
c.gridy = 2;
gbl.setConstraints(t2, c);
p.add(t2);
JTextField t3 = new JTextField(10);
c.gridy = 3;
gbl.setConstraints(t3, c);
p.add(t3);
getContentPane().add(p);
this.pack();
this.setVisible(true);
}
}
0591デフォルトの名無しさん
2007/12/13(木) 14:42:18さんきゅー。やってみた。
ただし画像を取得する部分は、getResource()を使う方法に修正させてもらった。
こっちの環境でMotifを指定してみたら、画像ボタンは正常表示されなかった。
new Test().createUI("com.sun.java.swing.plaf.motif.MotifLookAndFeel");
具体的には、3 * 3くらいのサイズで表示されてしまう。
MetalやWindowsのLAFでは、このような状態にはならない。
ところであなたの環境はなに?
3*3の状態で表示されたときは、当たり前ながらレイアウトは崩れない。
ボタンサイズがJTextFieldのheightより小さいから。
で、こっちの環境で、Motifでもボタンを正しく表示させようとしたときは、preferredSizeを指定しなければ良いらしい。
しかしボタンは表示されるが、デフォルトのボタンサイズが27*26くらいに設定されてしまう。
するとJTextFieldのheightを越えてしまうため、ボタンのある行は上下に隙間が空いてしまう。
0592デフォルトの名無しさん
2007/12/13(木) 14:56:010593デフォルトの名無しさん
2007/12/13(木) 15:04:420594デフォルトの名無しさん
2007/12/13(木) 16:03:04でどうよ?
0595デフォルトの名無しさん
2007/12/13(木) 16:32:49その手があったかw
0596デフォルトの名無しさん
2007/12/13(木) 17:18:470597デフォルトの名無しさん
2007/12/13(木) 19:13:03LAF別に癖があって共通の振る舞いをしないのはかわらない。
0598デフォルトの名無しさん
2007/12/13(木) 19:50:38レイアウト云々は関係ないと思うのだが
0599デフォルトの名無しさん
2007/12/13(木) 20:05:15普通にテキスト指定してJButton作っただけじゃ、OKとキャンセルボタンのサイズが違いすぎるから
キャンセルボタンにあわせるようにしてるんだけど、Motifはおかしいよ・・・
0600デフォルトの名無しさん
2007/12/13(木) 20:58:530601デフォルトの名無しさん
2007/12/13(木) 21:08:140602デフォルトの名無しさん
2007/12/13(木) 21:25:37そんな中途半端なのいれなきゃいいのに。
0603デフォルトの名無しさん
2007/12/13(木) 21:28:15Win, Mac以外はLAFは何でもいいと思ってるのでお勧め教えて。
0604デフォルトの名無しさん
2007/12/13(木) 21:35:080605デフォルトの名無しさん
2007/12/13(木) 21:36:120606デフォルトの名無しさん
2007/12/13(木) 21:39:41ことLAFに関しては>>597でFAだと思うが。
切り替えて不都合がでるLAFがある時点で不完全なシステムだな。
0607デフォルトの名無しさん
2007/12/13(木) 21:40:05APIのバランスがいいし、今更.NET覚えるのはしんどいって理由で。
*nixやmacの挙動を調べるにはどうしたらいいんだろう。
LinuxならcoLinuxとか?
0608デフォルトの名無しさん
2007/12/13(木) 21:45:530609デフォルトの名無しさん
2007/12/13(木) 21:46:510610デフォルトの名無しさん
2007/12/13(木) 21:50:450611デフォルトの名無しさん
2007/12/13(木) 21:54:180612デフォルトの名無しさん
2007/12/13(木) 22:01:26JavaクライアントでもMacは未対応ってことにしとけばいいか
0613デフォルトの名無しさん
2007/12/13(木) 22:22:42特に文字列処理。これはjavaに限った事じゃないけど。
0614デフォルトの名無しさん
2007/12/13(木) 22:34:260615デフォルトの名無しさん
2007/12/13(木) 22:45:060616デフォルトの名無しさん
2007/12/13(木) 23:38:24趣味ならそもそも動作保証なんてしないから問題ないだろ…
0617デフォルトの名無しさん
2007/12/14(金) 02:37:150618デフォルトの名無しさん
2007/12/14(金) 02:41:590619デフォルトの名無しさん
2007/12/14(金) 15:36:51キーバインディングがOS毎に違ったりする場合、
LAF変更毎にjavax.swing.InputMapとかも変更すべきでしょうか?
javax.swing.plaf配下のUI委譲を見ても、そんなコードは見あたりませんが。
0620デフォルトの名無しさん
2007/12/14(金) 18:21:15Unicode正規化まわりじゃないの?
0621デフォルトの名無しさん
2007/12/15(土) 12:54:25これからいくらでも増えてくるだろうし
0622デフォルトの名無しさん
2007/12/15(土) 16:35:41(Ctrl+Shift+zだったかな)ことを最近知って、
さらに「Motifだとマウスホイールも効かないよな」っていうのを見て、
ふと疑問に思った。
マルチプラットフォーム対応のソフト作ってる場合って、
やっぱり、そんなことも考慮する必要があるんだろうな。
LAF毎に固有の修正を施すなんてかなり馬鹿らしい話っていうのは同感なんですが。
ふだん当たり前にできてることができないって結構ストレスになるから。
0623デフォルトの名無しさん
2007/12/15(土) 16:44:56切り替わるようにするくらいは必須だろうねぇ。
うっかりMac環境でメニューバーにまでショートカット付けて怒られた俺。
(個別のメニューには付けてもいいが、根っこのバー上には付かないのがMac)
0624デフォルトの名無しさん
2007/12/15(土) 17:27:21>切り替わるようにするくらいは必須だろうねぇ。
やっぱり、サーバーサイドより面倒ですね。
>うっかりMac環境でメニューバーにまでショートカット付けて怒られた俺。
怒られるほどのことではない。
というか、個人的には、そのほうが便利になってる気さえしますが。
余計な文字列がデザイン的にウザイってことなんですかね。
よくそういうどーでもいいディテールに拘る人いますし。
特に官公庁に。
>(個別のメニューには付けてもいいが、根っこのバー上には付かないのがMac)
へー。Macさわったことないから、全然知らなかった。
エミュレータでも買って、ちょっと弄ってみようかな。
0625デフォルトの名無しさん
2007/12/15(土) 17:45:03Winでは右クリでポップアップメニューが出る操作がよくあるけど、あれMacではどうなるの?
0626デフォルトの名無しさん
2007/12/15(土) 17:57:07ポップアップメニュー出す操作か、だけなら、
java.awt.event.MouseEvent#isPopupTrigger() みればわかるはず。
0627デフォルトの名無しさん
2007/12/15(土) 17:58:320628デフォルトの名無しさん
2007/12/15(土) 18:14:39今のmacはマウスホイール付いてた気がする。
小さな玉が・・・。
0629デフォルトの名無しさん
2007/12/15(土) 18:22:212ボタンマウスを繋いだ場合は普通に右クリックできる。
Mighty Mouseも見た目はシングルだが、右よりの部分を押すと副ボタンと
して扱える(デフォルトだと両方主ボタンになってるのはAppleの意地か?)
0630デフォルトの名無しさん
2007/12/15(土) 18:24:04だな。指2本でパッド上を滑らせるとスクロールとかも面白い。
0631デフォルトの名無しさん
2007/12/15(土) 18:28:50まぁどうでもいいか。
0632デフォルトの名無しさん
2007/12/15(土) 18:41:56結局どこまでサポート範囲にするかってだけだとな気がする.
ぶっちゃけMotifとかは切り捨てても誰も困らないと思うぞ
0633デフォルトの名無しさん
2007/12/15(土) 18:45:57ちょっとした動作変更のHackのサンプルコードとかで、
よくMetalほげUI(MetalComboBoxUIとか)を継承したクラスを作って、
JComponent#setUI(作成したMetalほげUIのサブクラス)とかやってますよね。
ああいうのって、その後Synthでスキンを変更しようと思った場合、
動作するんですか?
Synth導入時はjavax.swing.plaf.synth配下のクラスを
使用しなければならないのかなと思っていて、
Synthパッケージのクラスの継承関係がBasicComponentUIのサブクラスだから、
MetalUIで作ったクラスは使用できないのかと漠然と考えているんですが。
0634デフォルトの名無しさん
2007/12/15(土) 18:52:14同感。Motifは単にSunの意地。
クライアントLinuxも趣味にはいいけど、
個人的にはサポートしたくない。
でも、数ヶ月前に21:00台のNHKのニュースで出てた、
どこか忘れたけど、ITじゃない大手企業の普通の職場で
SunのワークステーションでXが写ってた。
マジで使ってんの?って思ったけど。
0635デフォルトの名無しさん
2007/12/15(土) 19:19:05Winでみるとダサイ・・・ってまったく同じMotifというわけでもなくMotif風というべきか。
0636デフォルトの名無しさん
2007/12/15(土) 19:25:33Macでは困ったことになる・・・のだろうな・・・
0637デフォルトの名無しさん
2007/12/15(土) 19:28:20SolarisのMotifは、Sunのハードの色のグレーと紫と一緒になって、
初めて調和する感じがする。
だから、他のハードで単体でMotifのLAFだけを見るとかっこ悪さしか感じない。
0638デフォルトの名無しさん
2007/12/15(土) 19:43:523Dソフトも今はなき?シリコングラフィックのあの癖のある筐体でみるのと、
DOS/Vの筐体でみるのではやっぱ違ってみえるよねw
0639デフォルトの名無しさん
2007/12/15(土) 19:44:180640デフォルトの名無しさん
2007/12/15(土) 19:44:550641デフォルトの名無しさん
2007/12/15(土) 19:49:16>DOS/Vの筐体でみるのではやっぱ違ってみえるよねw
それはありますねー。
Sunのマシンにsunの4つつながったロゴがないだけでも、
Motifは別物に見えそうだし。
データセンターでMacのハードやUIがあったりしたら、
違和感ありそうだし。。。
0642デフォルトの名無しさん
2007/12/15(土) 23:39:08質問 ↓のコードでもmacとwindowsで兼用できなかったの??
KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
0643デフォルトの名無しさん
2007/12/16(日) 02:36:30>質問 ↓のコードでもmacとwindowsで兼用できなかったの??
>KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
Toolkit#getMenuShortcutKeyMask()メソッドは初めて知りました。
ありがとうございます。
興味本位で聞いただけです。
実際にやってみていない。というかmac環境がないので。試せません。。
http://tinyurl.com/3cbuj2のあたりをざっとみると、
Ctrl+Cとかコピペ、Ctrl+F(検索),Ctrl+S|Oあたりは同じようですが。
Ctrl+Y(やり直し(Windows))の記載が見あたりません。
ちょっと前に、どこかでWindowsのCtrl+YはmacでCtrl+Shift+Zと見たんですが、
記憶違いかガセだったのでしょうか。
でも、macにはUndoの反対のキーバインドがないとは思えませんけど。
でも仮にmacにCtrl+Shift+Zがあるとすると、
Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()だと、
引数と戻り値的に適切な値が取得できるとは考えられないですが。
それとgetMenuShortcutKeyMaskで適切な値が取得できるのであれば、
UIクラスのinstallUI()(すくなくともJTextComponentのサブクラスのUI)では、
InputMapにデフォルトで登録しておいて欲しいところです。
macをさわれる人にgetMenuShortcutKeyMask()の結果を聞きたいです。
いつになるか分かりませんが、私がmacを実行できる機会があれば、
結果を報告します。
0644デフォルトの名無しさん
2007/12/16(日) 03:30:19% uname -a
Darwin dorado.local 9.1.0 Darwin Kernel Version 9.1.0: Wed Oct 31 17:46:22 PDT 2007; root:xnu-1228.0.2~1/RELEASE_I386 i386 i386 MacBook2,1 Darwin
% java -version
java version "1.5.0_13"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05-237)
Java HotSpot(TM) Client VM (build 1.5.0_13-119, mixed mode, sharing)
System.out.println(Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
System.out.println(Event.ALT_MASK);
System.out.println(Event.CTRL_MASK);
System.out.println(Event.META_MASK);
System.out.println(Event.SHIFT_MASK);
結果は
4
8
2
4
1
Metaキーってことですかね。
0645デフォルトの名無しさん
2007/12/16(日) 03:36:27getMenuShortcutKeyMaskの戻り値はEvent.META_MASKになる。
CommandキーはWindowsだとWindowsキー。
0646デフォルトの名無しさん
2007/12/16(日) 17:50:37macの結果を教えてくださりありがとうございます。
macのショートカットキー一覧を見ると
「コマンド + C →「編集」メニュー コピー」と記載されているので、
つまり、getMenuShortcutKeyMask()を使用できそうということでしょうか。
ところで、macにはWindowsでいう「やり直し(Ctrl+Y)」
(元に戻すのを戻す?)は、ないのでしょうか。
私の言っている「Ctrl+Shift+Z」ショートカットキーは誤りですか?
たびたびすみませんが、時間がありましたら教えてください。
0647デフォルトの名無しさん
2007/12/16(日) 18:11:03http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGIntro/chapter_1_section_1.html
Keyboard Shortcuts
http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGUserInput/chapter_11_section_3.html#//apple_ref/doc/uid/TP30000361-CHDIGFBH
テキストエディット(メモ帳・ワードパッド)
GarageBand(作曲)
Pages(ワープロ)
Keynote(プレゼン)
Numbers(スプレッドシート)
BathyScaphe(2ちゃんねるブラウザ)
で見たら、「やり直す」はCommand+Shift+Zだった。
0648デフォルトの名無しさん
2007/12/16(日) 18:17:26ttp://developer.apple.com/jp/technotes/tn2042.html
やり直しはShift+Command+Zだね。
0649デフォルトの名無しさん
2007/12/16(日) 18:36:01プレビューではファイルメニューに、最後に保存した状態に戻す「元に戻す」があったりする。
0650デフォルトの名無しさん
2007/12/16(日) 20:20:32>648さん
>649さん
ありがとうございます。
http://developer.apple.com/documentation/UserExperience/Conceptual/OSXHIGuidelines/XHIGUserInput/chapter_11_section_3.html#//apple_ref/doc/uid/TP30000361-CHDIGFBH
のTable 7-5を見ると(Redo(やり直し))Command-Shift-Zってことですね。
頂いた情報を総合すると、getMenuShortcutKeyMask()の戻り値が
Event.META_MASK(Commandキー)である。
やり直しはCommand-Shift-Zということですので、
コピーのキーバインディングに
KeyStroke.getKeyStroke(KeyEvent.VK_C, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
は、良いけど
undo,redoに
KeyStroke.getKeyStroke(KeyEvent.VK_Y, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
KeyStroke.getKeyStroke(KeyEvent.VK_Z, Toolkit.getDefaultToolkit().getMenuShortcutKeyMask());
はNGということですね。
ということで、やはりプラットフォームごとにInputMapを用意する
必要があるということですね。
実装する予定はありませんが、勉強になりました。
面白かったです。
0651デフォルトの名無しさん
2007/12/16(日) 21:00:00あったらそれで良いと思う。
あれはLAFで決まるんだっけ?
0652デフォルトの名無しさん
2007/12/16(日) 21:36:45>Swing標準のキーバインドってなかったっけ?
swing.plaf配下のUI委譲のInputMap登録コードでは、
JListでの上下移動、JComboBox等の選択等の細かいものを除けば、
基本的に選択(JTableのセル選択,JTextComponentのテキスト選択)、
移動系(セルの選択位置移動、キャレットの移動)の
キーバインドしか登録されないのです。
undo,redoをはじめ、Ctrl+S,Ctrl+O等の、機能が実装されていないものに
関しては仕方がないにしても、JTable,JTextComponentでは、
printを実装しているにも関わらず、Ctrl+Pも登録されません。
ですから、標準のキーバインドはないのでは?と思っています。
まぁ、個別のOSのアプリケーションを熟知してませんが、
Gridやテキストエディタでの選択、移動のショートカットキーは、
各OSともほぼ共通なため、そのあたりは登録できるものの、
undo,redo等は、上記のような例があり、標準として登
録できないという事情があるのかもしれません。
でもSwing標準のキーバインドなんてあったとしても、
個人的には、ショートカットキーをバリバリ使う人にはストレスフルで
使いたくないし覚えたくないだろうと思いますが。
ちなみにLAF毎に、キーバインドを登録するようなコードが
それぞれのUIクラスのソースに無いのは先述のとおりです。
0653デフォルトの名無しさん
2007/12/16(日) 21:48:110654_
2007/12/19(水) 14:53:45・
・
・
private void Combo1ActionPerformed(java.awt.event.ActionEvent evt) {
if (Combo1.getSelectedItem().equals("a")||Combo1.getSelectedItem().equals("b")){
Combo2.setEnabled(true);
}
else{
Combo2.setEnabled(false);
}
}
Combo1でaかbが選択された場合はCombo2が有効で
Combo2でcかdが選択された場合はCombo2が無効になるようにしたいのですが
上のやり方だとaを選ぶとCombo2は有効になるんですがaを選んだ後にcに変更すると
Combo2は無効にならずに有効のままになってしまいます.
同じようにcを選ぶと無効になるんですがその後にaを選ぶと無効のままになってしまいます.
これを直す方法を教えていただけないでしょうか?お願いします.
0655デフォルトの名無しさん
2007/12/19(水) 15:17:460656デフォルトの名無しさん
2007/12/20(木) 03:59:56自分の言ってる矛盾に気付けるから。
0657デフォルトの名無しさん
2007/12/20(木) 08:13:43>Combo2でcかdが選択された場合はCombo2が無効になるようにしたいのですが
下のCombo2はCombo1の間違えだよね?
0658デフォルトの名無しさん
2007/12/20(木) 08:46:01Combo1の状態に応じてCombo2の有効,無効が変化する
物をつくりたいんですが教えていただけないでしょうか
0659デフォルトの名無しさん
2007/12/20(木) 09:23:02これでは駄目なの?
0660_
2007/12/20(木) 11:53:34Combo2は無効にならずに有効のままになってしまいます.
同じようにcを選ぶと無効になるんですがその後にaを選ぶと無効のままになってしまいます.
最初の選択では上手くいくんですが選択を変更すると変化してくれないんです。
0661デフォルトの名無しさん
2007/12/20(木) 12:45:54実行されてるなら、そのときCombo1.getSelectedItem()の値が実際は何になっているのかを確かめるんだ。
0662_
2007/12/20(木) 13:07:41aになっているんですがその後にCombo1でcを選んでもCombo1ActionPerformedメソッドが実行されてません
続けて選んだ場合にもCombo1ActionPerformedメソッドが実行されるようにするにはどうすればよいのでしょうか?
0663デフォルトの名無しさん
2007/12/20(木) 13:44:37実行されてないのをSystem.out.println文で確認した?
0664_
2007/12/20(木) 16:00:32コンボボックスを変更してもActionPerformedにいってくれないようです
0665デフォルトの名無しさん
2007/12/20(木) 17:13:440666デフォルトの名無しさん
2007/12/20(木) 19:48:40SwingApplicationFramework使ってますか?
0667デフォルトの名無しさん
2007/12/20(木) 19:57:08あれって便利なの?
0668デフォルトの名無しさん
2007/12/20(木) 20:00:15でも、どうするものかいまいちピンときていない。
Actionの管理をしてくれるのはいいんだけどちょっと縛りがきついなぁと感じた。
IDE無しでは複雑過ぎる気がする。
0669デフォルトの名無しさん
2007/12/20(木) 20:57:09アプリケーションの起動時と終了時に処理が書けるようになるとかはまぁあればあったでいいという程度
ただアノテーションつかってそれの名称を文字列で記述ってのは実行時エラーの可能性が増えるから
静的言語としてはどうかなぁというのが多い
Web方面のフレームワークもだけどね
Springとか最新版ですら1.4とか過去の互換性のために文字列を使うことが多すぎ
enumきっちりつかってくれよと思うことは多いかな
0670デフォルトの名無しさん
2007/12/21(金) 00:39:19本で紹介するサンプルコードならともかく、本格的なもの作るなら論外だと思えるけど。
0671デフォルトの名無しさん
2007/12/21(金) 00:42:070672デフォルトの名無しさん
2007/12/21(金) 00:42:420673デフォルトの名無しさん
2007/12/21(金) 00:47:110674デフォルトの名無しさん
2007/12/21(金) 00:58:40逆じゃないの?
0675デフォルトの名無しさん
2007/12/21(金) 01:00:160676デフォルトの名無しさん
2007/12/21(金) 01:02:26はいはいwノシ
0677デフォルトの名無しさん
2007/12/21(金) 01:04:17辛いと聞いたことがあるな。
0678デフォルトの名無しさん
2007/12/21(金) 07:36:04テキストフィールド2つにボタンひとつ。
0679デフォルトの名無しさん
2007/12/21(金) 08:34:450680デフォルトの名無しさん
2007/12/21(金) 11:03:390681デフォルトの名無しさん
2007/12/21(金) 11:05:03もっとまともな指摘があるのかと思った。
0682デフォルトの名無しさん
2007/12/21(金) 11:10:100683デフォルトの名無しさん
2007/12/21(金) 11:12:540684デフォルトの名無しさん
2007/12/21(金) 11:45:21絶対座標ばっかだ・・・
0685デフォルトの名無しさん
2007/12/21(金) 12:29:53効率よく出来るかどうかだから。
仕事ならDreamWeaverとか使わないでHTML生成してるアホはいらんね。
ペイントあればフォトショップ等いらないでしょ?とか
テキストエディタでPDF作れるでしょ?といってるのとかわらんな。
>>684
せめてNetBeansに付属の伝統のAbsoluteLayout使ってね。
Nullはだめだぞ。
0686デフォルトの名無しさん
2007/12/21(金) 12:52:28土を手で耕したいという土民なんかほっとけばいいのに。w
0687デフォルトの名無しさん
2007/12/21(金) 12:57:290688デフォルトの名無しさん
2007/12/21(金) 13:33:04NetbeansのGridBagLayoutのエディタが無いと仕事にならんね・・・・
もうちょっと進化してくれても恨まないけど・・・・
複数のレイアウトマネージャを組み合わせて、
がちっと作り込むのは実はむしろ趣味のほうだったりする。
それでも、GridBag,Groupを手で書くのは調整くらいはできても、まぁ正直無理。
0689デフォルトの名無しさん
2007/12/21(金) 13:37:50ただ、GropuLayoutがでてしまったおかげでほとんどそれ1本でいけるようになっちまった
0690デフォルトの名無しさん
2007/12/21(金) 13:47:57でもそのためにはJavaのバージョンを6にしないとだめなんだよなー
まだ1.4だしなー
先は長いな・・・
0691デフォルトの名無しさん
2007/12/21(金) 13:50:370692デフォルトの名無しさん
2007/12/21(金) 13:58:225.0からだったかな?
来年登場予定のJavaSE7がでると1.4は保守されなくなるから。
保守契約結んでいるなら5.0以上でも動くようにしていったほうがいいね。
0693デフォルトの名無しさん
2007/12/21(金) 16:55:490694デフォルトの名無しさん
2007/12/21(金) 19:39:20GroupLayoutが、考え方が非常に明快な上に
頭で考えたことを素直に反映できる優秀なレイアウトだったので、やめた
0695デフォルトの名無しさん
2007/12/21(金) 19:40:220696デフォルトの名無しさん
2007/12/21(金) 19:45:290697デフォルトの名無しさん
2007/12/21(金) 19:50:41JTableとかテキストフィールドで再現してそう
0698デフォルトの名無しさん
2007/12/21(金) 19:56:510699デフォルトの名無しさん
2007/12/21(金) 20:16:430700デフォルトの名無しさん
2007/12/21(金) 21:17:20GUIエディタは便利だけど、業務アプリでそういうのでサックリ作っちゃうと
後々火を吹くから俺のPjでは使わない。
>>685
イタイな
0701デフォルトの名無しさん
2007/12/21(金) 21:46:14なんか冗長な記述だよな。これは仕方ないのか?
0702デフォルトの名無しさん
2007/12/21(金) 21:46:20GUIに頼らずにどこまでできるかで、決定的な差が出る場面ってあるからね。
このスレではアマチュアが多いのか、あまり良く分かってない人が多いようだけど。
0703デフォルトの名無しさん
2007/12/21(金) 22:05:17えぢたを使って火を噴くって例えばどんなの?
0704デフォルトの名無しさん
2007/12/21(金) 22:21:03ウチではハンドラをあとからインジェクションする仕組みで使ってるが・・・
0705デフォルトの名無しさん
2007/12/21(金) 22:24:13確かにそうだね。
完全にGUI担当者がデザイナと化してくれれば問題はないよね。
あとは、GUI担当者が皆一様の作法を身につけてくれることが重要かな。
そのためにもGUIデザインのためのフレームワークみたいなものは欲しいね。
0706デフォルトの名無しさん
2007/12/21(金) 22:27:100707デフォルトの名無しさん
2007/12/21(金) 23:59:580708デフォルトの名無しさん
2007/12/22(土) 06:26:420709デフォルトの名無しさん
2007/12/22(土) 07:39:23おまえ程低くないと思うよ。
0710デフォルトの名無しさん
2007/12/22(土) 08:06:290711デフォルトの名無しさん
2007/12/22(土) 12:13:06それはどっちかというとGUIアプリの処理手順をフレームワーク化してるよね
ちょっとわかりにくいかもだけど、俺がいいたいのは、「GUIデザイン」部分のフレームワーク。
そういうのがあったらいいなぁなんてオモタわけ。
うーん伝わらないか。。。
0712デフォルトの名無しさん
2007/12/22(土) 12:45:000713デフォルトの名無しさん
2007/12/22(土) 15:44:410714デフォルトの名無しさん
2007/12/22(土) 16:01:580715デフォルトの名無しさん
2007/12/22(土) 16:22:380716デフォルトの名無しさん
2007/12/22(土) 16:26:243ペインアプリとかは手書きじゃないと満足いくものはできないだろ
0717デフォルトの名無しさん
2007/12/22(土) 16:32:420718デフォルトの名無しさん
2007/12/22(土) 18:37:380719デフォルトの名無しさん
2007/12/22(土) 18:39:31ツール使えばすぐできることを、なんだかんだいいながら手書きでやるんだけど、無駄に時間かかるし古い機能しか使ってなかったり。
0720デフォルトの名無しさん
2007/12/22(土) 18:46:41なるほどね。業務アプリって画面びっしりコントロールをつけるからなw
0721デフォルトの名無しさん
2007/12/22(土) 19:00:30まともなコードが書けるかどうかが重要であって、
IDEの使用経験の有無は大した問題じゃない気がする
IDE使ったことない奴には使い方を教えてやるだけで済むが、
プログラミングのセンスがない奴はいくら教えてもどうにもならん
0722デフォルトの名無しさん
2007/12/22(土) 19:10:380723デフォルトの名無しさん
2007/12/22(土) 19:11:510724デフォルトの名無しさん
2007/12/22(土) 19:15:21でもIDEの慣れの差はやはり大きい
NetBeansを長年使ってきた人はさくさくつくれるけど、
Eclipseしか触ってこなかった人は開発効率が悪い
1,2年たつと違うんだろうけどね
0725デフォルトの名無しさん
2007/12/22(土) 19:17:27結局それがいいたかっただけか。
マジレスしなくてよかった。
0726デフォルトの名無しさん
2007/12/22(土) 19:19:44俺今日はじめて書きこんだんけど
0727デフォルトの名無しさん
2007/12/22(土) 20:00:38http://www.epson.jp/products/oen/products/kyuyo_lite/img/img_kyuuyo02.gif
ツール使わずにやるのは非効率極まりない。
0728デフォルトの名無しさん
2007/12/22(土) 20:45:36俺が仕事で作ってる業務アプリは、こんなもんじゃねーぞ・・・
タブで分かれて細かい設定項目が山のようにある。
あんなの手書きしてたら気が狂うわ。
0729デフォルトの名無しさん
2007/12/22(土) 20:48:020730デフォルトの名無しさん
2007/12/22(土) 21:12:100731デフォルトの名無しさん
2007/12/22(土) 21:22:46そういう人らは使えばいいんじゃない?
0732デフォルトの名無しさん
2007/12/22(土) 21:24:250733デフォルトの名無しさん
2007/12/22(土) 21:32:13JTable使いまくりだけど・・・
検索結果を大量に表示したりせんの?
まあ、めったにJTreeは使わんけど。
0734デフォルトの名無しさん
2007/12/22(土) 22:44:43ツリーはあんまりないけど
0735デフォルトの名無しさん
2007/12/22(土) 22:53:200736デフォルトの名無しさん
2007/12/23(日) 01:19:09でも、部品の利用のされ方ってのは興味深いな。
アプリで使われてる場面がどれくらいあるのか、
JTableなんかのレンダラとかもどうされてるか気になる。
デフォルトで行ける場面ってどれくらいあるのかとか。
Swingのデフォルト部品って、あと一味足りないみたいなとこあるからなぁ。
というか、特にJTableに感じるんだけど。
(表の真ん中にスクロールバー付けたいなぁ、とか)
エクリプスとかで走らせてるとoutputに表示されるけど、コマンドプロンプトから走らせるとキャッチされない例外が起きてるのが分かりません。
これを知るにはどうしたらいいのですか?
検出してログをとるなり、メッセージダイアログを表示するなりしたいんです。
0738デフォルトの名無しさん
2007/12/23(日) 05:31:300739デフォルトの名無しさん
2007/12/23(日) 11:06:010740デフォルトの名無しさん
2007/12/23(日) 11:13:30> 表の真ん中にスクロールバー付けたいなぁ
それは一味も二味も違うだろ w
それができるテーブルコントロールなんて他の言語でも見たこと無いけど。
まあ、俺なら二つのテーブルを並べて、スクロールを同期させるかな。
0741デフォルトの名無しさん
2007/12/23(日) 11:42:12どうもありがとうございます!
>>739
jarにしてダブルクリックで起動したりもするので、windowsだと何も表示されないのです。
0742デフォルトの名無しさん
2007/12/23(日) 16:28:19java -jar file.jar
と「ファイル名を指定して実行(R)..」すれば
例外は全部コンソールに表示される
0743デフォルトの名無しさん
2007/12/23(日) 19:40:17ユーザーにGUIで見せて後は処理続けるかどうかは状況次第っていうように組むもんだが。
System.errにテキストコンポーネント突っ込んでやると楽。
0744デフォルトの名無しさん
2007/12/24(月) 00:02:41その、「アプリケーションのどっか」にこないから問題っていってるんじゃねぇの?
738で解決するようだけど。
0745デフォルトの名無しさん
2007/12/24(月) 01:58:17問題ない例外なのかそうでないのかは単純に判断できないし。
運用時ならテキストファイルにログを書き出しておいてそこをメールで添付させるように促すとか
画面のスナップショットを自動でとってdesktopに自動でbmp作ってそれを添付させるとか
まぁいろんな方法があるわな。
0746デフォルトの名無しさん
2007/12/24(月) 14:15:13新機能であまり取り上げられていないけどこれはすごいな。
0747デフォルトの名無しさん
2007/12/25(火) 14:46:260748デフォルトの名無しさん
2007/12/25(火) 15:34:33JDialogを普通に使うほうがいい場合もあると思うけど。
JPopupMenuは想定される素の状態だとメニューバーと同じくアクションボタンを並べるものだけど
例によって自由にカスタマイズできるので継承するといいかも。
0749デフォルトの名無しさん
2007/12/25(火) 15:41:53JFrameの上に出せるWindowなら何でも良いというくらいの意味だったんですが、Dialogでやろうと思います。
JPopupMenuがカスタマイズできるとは知りませんでした。ありがとうございます。
0750デフォルトの名無しさん
2007/12/26(水) 00:00:310751デフォルトの名無しさん
2007/12/26(水) 00:26:58NetBeansでデスクトップアプリケーションで作ると
メインフレームがメニューとか作られるから参考にするとよろし
0752デフォルトの名無しさん
2007/12/26(水) 00:29:32サンクス。
いつもEclipseばっかり使ってたもんで、NetBeansには疎いんですが、
機能的には遜色ないですかね?
Eclipseでいうところの「呼び出し階層を開く」とかそういうのはありますかね?よく使う機能なので。
0753デフォルトの名無しさん
2007/12/26(水) 01:25:27CTRL+クリックでとぶよ
キー操作だけだとどこだったかはわすれたけどEclipseと同じキー設定もあったような気がする
乗換えとかじゃなくて参考に出来ればよいと考えるといいかも
でも、GUIアプリ開発とWebアプリ開発が目的なら乗り換えるほうが楽だと思う
Swing Application Framework対応していて、@Actionとかぜんぶやってくれるよ
0754デフォルトの名無しさん
2007/12/26(水) 08:37:12そっちの機能じゃなくて、選択したメソッドがどこから呼び出されているかを一覧する機能。
かなり重宝してる機能なのであったらいいんだけど。
0755デフォルトの名無しさん
2007/12/26(水) 13:14:070756デフォルトの名無しさん
2007/12/27(木) 00:09:33オブジェクトのxとyを少しづつ変化させているんですけど、どうやるのがベターですかね?
オブジェクトはいろんな場所に発生するので、
if (x > 行き先X) {
0757デフォルトの名無しさん
2007/12/27(木) 00:10:11続き
if (x > 行き先X) {
0758デフォルトの名無しさん
2007/12/27(木) 00:13:28続き
if (x > 行き先X) {
x -= 5;
} else {
x += 5;
}
if (y > 行き先Y) {
y -= 5;
} else {
y += 5;
}
こうやってるんですけど、こうするとxかyのどちらかが行き先に到達した場合に、
ぷるぷる震えた感じになっちゃうんですけど、なにかうまい方法ありますかね?
0759デフォルトの名無しさん
2007/12/27(木) 00:13:370760デフォルトの名無しさん
2007/12/27(木) 00:15:210762デフォルトの名無しさん
2007/12/27(木) 00:34:37それぐらい、自分で考えろよ・・・・
つかスレ違い。
0763デフォルトの名無しさん
2007/12/27(木) 00:40:10差が5に満たない場合
差の分だけ移動
既に目的地に到達してたら チェックはしない。
移動距離の5は定数にしようかな
思った事を書いてみた。
俺は寝る、がんばれ。
0764758
2007/12/27(木) 00:41:06表示上の問題だと思ったんでここで聞いたんですが・・・
xflagとyflagを作って、&で到達チェックするとか考えたんですけど、
スマートじゃないんですよね
たとえばどんなのが考えられますかね?
0766デフォルトの名無しさん
2007/12/27(木) 00:45:01って自分で聞いてるぐらいだからSwingの問題じゃなくてアルゴリズムの問題だろ。
0767デフォルトの名無しさん
2007/12/27(木) 00:51:43javaのスレッドで聞いたほうが良かったですね
答えてくれた方ありがとうございました。
0768デフォルトの名無しさん
2007/12/27(木) 01:03:08問題の切り分けに注意しないと間違ったスレでは歓迎されないぞ
0769デフォルトの名無しさん
2007/12/27(木) 01:14:11初心者スレッドで聞けばよかったですか
いえばただの簡単なアルゴリズムの問題なのですが、
ここなら同じようなことをやっている人がいるかなと思ったんで、
ここで聞いたほうが早いかなと思ってしまいました。
0770デフォルトの名無しさん
2007/12/27(木) 01:17:26まあ、その前にこの程度のロジックは自分で考えられないと、
なにを作るにしても困ると思うぞ。
0771デフォルトの名無しさん
2007/12/27(木) 01:33:38そこまでのアルゴリズムじゃないけど。
0772デフォルトの名無しさん
2007/12/27(木) 01:36:47どう見ても小学生の算数レベルだろ。
0773758
2007/12/27(木) 01:39:19スマートにできないんですよね(馬鹿なんで)。
完璧を目指すのはキリがないと思うんですが、
ある程度きれいなコードが知りたいんですよ。
ttp://pc11.2ch.net/test/read.cgi/tech/1197710566/
ここに移動したんで良かったらいいサンプルコードお教えください。
0774デフォルトの名無しさん
2007/12/27(木) 01:43:05>ここで聞いたほうが早いかなと思ってしまいました。
こんなのを自分で考えられないとしたら先は長い気がするが…
まぁ地道にがんばれ!
0775デフォルトの名無しさん
2007/12/27(木) 02:06:16こういうの当時の小学生は普通に作ってたもんね
0776デフォルトの名無しさん
2007/12/27(木) 02:18:59というかゲームにSwing使ってるの?
0777デフォルトの名無しさん
2007/12/27(木) 02:20:55ただ、ここAWTと合流したからJava2D等も含むといえば含む
本気でやるならJOGLだろうけど
0778デフォルトの名無しさん
2007/12/27(木) 02:26:13いつの間にかスレタイにAWTが入ってた!!
0779デフォルトの名無しさん
2007/12/27(木) 02:32:45いまじゃJOGLはjava2Dとパイプラインが統合されてんだよね。
OpenGLの関数使いたいわけじゃないなら-DオプションでOpenGL使うようにした方が楽かね?
それならわざわざ2D描画に3Dtoolkit使う必要ないし。
バグさえ消えれば。
0780デフォルトの名無しさん
2007/12/27(木) 04:23:20↓の様にやること多いじゃないですか
このタイマーをストップさせることって可能ですか?
public void startTimer() {
int i = 0;
Timer timer = new Timer(20, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (i > 100) {
return;
}
i++;
});
timer.start();
}
いままで↑のような感じでiが100超えたらリターンするようにしてたんですが、
ずっとタイマーは動きっぱなしなんですよね。
timerはiが100を超えたらストップさせたいんですよ。
timer内から自分自身をstopさせることができればいいんですが...
0781デフォルトの名無しさん
2007/12/27(木) 07:13:18http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/Timer.html
0782780
2007/12/27(木) 07:55:23実際のコーディングを見てください
まずメインクラスでクラスAのインスタンスaを10個作る(略
pubilc void run { //メインループ
for(int i=0;i<10;i++){ //a[0]からa[9]のxを増やしていき、xが10になったらstartTimer()をplay
a[i].x++;
if(a[i].x >= 10) {
a.startTimer();
}
�@
}
}
pubilc class A {
int x = 0;
int size = 10;
public void startTimer() {
Timer timer = new Timer(20, new ActionListener() {
public void actionPerformed(ActionEvent e) {
if (size> 20) {
return;
}
size++;
});
timer.start();
}
}
実際はa[0]が増分し終わったらa[1]にいったり、同時に動いたりするんですが...
�@の部分で判定してtimer.stopさせようとしてもすぐストップしてしまうと困るし、
メインループからはtimerがいつ終わるのかわからないのでストップできないんですよね
なにか大きな間違いがあるんでしょうか?
0783デフォルトの名無しさん
2007/12/27(木) 08:37:43後は変数のスコープの問題。
ローカル変数timerをクラスAのインスタンス変数にして、
こんなメソッドを作って
public void stopTimer(){
timer.stop();
}
これをactionPerformed()内の適切な位置で呼べばいい。
ところでこのサンプルコード、Timerでやってる処理がi++だけなんだが、
これは単純化したサンプルコードなだけだよね?
ホントのコードでは、ちゃんとGUIスレッドですべき処理をしてるんだよね?
0784デフォルトの名無しさん
2007/12/27(木) 08:53:05GUIスレッドですべき処理というのがいまいちわかんないんですが、
ある条件でaのエフェクトを起こすみたいな感じなんですよ
とにかくこれで寝れます どうもありがとうございました
0785デフォルトの名無しさん
2007/12/27(木) 10:45:150786デフォルトの名無しさん
2007/12/27(木) 12:26:40swing.TimerはEDTでactionPerformed呼ぶからそのへんは大丈夫と思
0787デフォルトの名無しさん
2007/12/27(木) 13:29:19Java2Dだとαブレンディング/テストとか足りないものが多いから
2DであってもOpenGL使わざるを得ないのが現実
>>785が正解
あと注意すべきところはSwingTimerは定期処理にはいいけど、
長時間の流れがある処理には向かないというのもおぼえておくとよろし
あくまでも一定時間ごとにアクションイベントを発生させるだけ
詳しく見てないけどSwingFrameworkでjavax.swing.Timerも扱えるんかな?
0788デフォルトの名無しさん
2007/12/27(木) 22:23:18・JMFだとMacで再生出来ない。
・QuickTime for JavaだとLinuxで再生出来ない。
という認識はあっていますでしょうか?
0789デフォルトの名無しさん
2007/12/27(木) 22:41:37というかこれくらい人に聞かずとも分かるだろ。
0790デフォルトの名無しさん
2007/12/28(金) 00:08:21ttp://www.animoids.com/jmf_for_mac.html
「JMF_2_1_1_mac.zip」の部分から、
もしかしてMac用がどこかで配布されているのかと勘違いしてしまいました。
0791デフォルトの名無しさん
2007/12/28(金) 03:27:55JMFはjava動かすスペックと動画デコードするスペックを
ダブルで要求するからネイティブ版でもいろいろすると重いぞ。
単純なラッパーだからwin版はバグだらけだし。
0792デフォルトの名無しさん
2007/12/28(金) 08:46:22こんなの見つけたぞ
ttp://www.sra.co.jp/people/nisinaka/Jun4Java/index_ja.html
0793デフォルトの名無しさん
2007/12/28(金) 15:55:29なんでどこも投資して開発を続けないんだろう
0794デフォルトの名無しさん
2007/12/28(金) 16:06:510795デフォルトの名無しさん
2007/12/30(日) 16:40:200796デフォルトの名無しさん
2007/12/30(日) 16:55:090797デフォルトの名無しさん
2007/12/30(日) 16:57:490798デフォルトの名無しさん
2007/12/30(日) 17:14:410799デフォルトの名無しさん
2007/12/31(月) 00:16:16結局今はEclipseにもどりますた。
SwingアプリがSWTアプリみたいに比較的ストレスなく動いてくれる日はマダ来ないのかね。
0800デフォルトの名無しさん
2007/12/31(月) 00:25:30>>799の気分次第で明日にでも来るし、永遠に来ない事もありうる
0801デフォルトの名無しさん
2007/12/31(月) 00:57:01マシンのスペックはいかほどで?
0802デフォルトの名無しさん
2007/12/31(月) 00:58:07マイナーGPUにも冷たいのかもしれんね
0803デフォルトの名無しさん
2007/12/31(月) 01:02:440804デフォルトの名無しさん
2007/12/31(月) 01:16:32Java使ってるSWTもマイナーCPUやマイナーGPUに冷たいって事に?
0805デフォルトの名無しさん
2007/12/31(月) 01:17:10SPARCにも冷たいって事に?
0806デフォルトの名無しさん
2007/12/31(月) 01:20:050807デフォルトの名無しさん
2007/12/31(月) 01:42:320808デフォルトの名無しさん
2007/12/31(月) 14:16:140809デフォルトの名無しさん
2007/12/31(月) 15:29:100810デフォルトの名無しさん
2007/12/31(月) 15:33:56例えば、JTreeでCtrl+Fで検索のアクションをさせたい場合などです。
0811デフォルトの名無しさん
2007/12/31(月) 17:44:54適当なコンポーネントの ActionMap と InputMap に登録すればいいだろ。
0812デフォルトの名無しさん
2007/12/31(月) 18:07:490813デフォルトの名無しさん
2007/12/31(月) 18:15:440814>>810
2007/12/31(月) 18:36:09こんな簡単に実現できるなんてSwingは本当にすごいですね。
ありがとうございました。
0815デフォルトの名無しさん
2008/01/01(火) 02:16:39いつものネガティブキャンペーン乙
6.0だとEclipseのほうが軽いとかってありえんだろ
SWTはスレ違いだからそっちでやってくれ
0816デフォルトの名無しさん
2008/01/01(火) 02:28:130817デフォルトの名無しさん
2008/01/01(火) 08:17:290818デフォルトの名無しさん
2008/01/02(水) 02:11:590819デフォルトの名無しさん
2008/01/02(水) 02:17:51sysdeo の Tomcat プラグインと JSP, XML の構造化エディタ程度ならめちゃめちゃ軽い。
必要なものを選択できる人間だけが楽できる。
0820デフォルトの名無しさん
2008/01/02(水) 03:15:40インストールしてもプラグイン無効にすればいいんじゃね?
0821デフォルトの名無しさん
2008/01/02(水) 22:26:40CTRL+X -> CTRL+V で「切り取り -> 貼り付け」した時に、
貼り付け後に、余計なオブジェクトを削除するための後処理はexportDoneでいいんだろうか?
なぜか、CTRL+Xを押した瞬間に、exportDoneが実行されちゃうんだ。
exportDoneの説明には、
>データのエクスポート後に呼び出されます。このメソッドは、アクションが MOVE の場合に転送されたデータを削除します。
>MOVE はこの実装にサポートされるアクションでないため、このメソッドの実装では何も行われません。getSourceActions には MOVE が含まれません。
どっちやねんw
0822821
2008/01/02(水) 22:28:33importDoneの中で、貼り付け操作完了後に、
自分で削除操作を実行しようかなと思ってる。
0823821
2008/01/03(木) 00:34:28切り取りの標準的な操作は、切り取りと同時に削除だろうが!
エクスプローラの動作が特殊なんだ!
新年早々はずかしぃぃぃぃぃぃぃぃぃぃぃぃ!!!!!!!!!!
0824デフォルトの名無しさん
2008/01/03(木) 03:16:520825デフォルトの名無しさん
2008/01/05(土) 20:53:44終了はめっちゃ速いのだが。
0826デフォルトの名無しさん
2008/01/06(日) 23:23:28import java.awt.Frame;
これってバグなの?
0827デフォルトの名無しさん
2008/01/06(日) 23:33:55/ ―\ ┏┛
/ノ (●)\ ・
. | (●) ⌒)\
. | (__ノ ̄ |
\ /
\ _ノ
/´ `\
| |
| |
___ ━┓
/ ― \ ┏┛
/ (●) \ヽ ・
/ (⌒ (●) /
/  ̄ヽ__) /
. /´ ___/
| \
| |
0828デフォルトの名無しさん
2008/01/06(日) 23:49:08分かる人にはこれだけで分かる
0829デフォルトの名無しさん
2008/01/06(日) 23:53:32>>828
バグってたのは俺のほうだったw
*.class 削除したらコンパイル通ったよww
0830デフォルトの名無しさん
2008/01/07(月) 00:55:290831デフォルトの名無しさん
2008/01/07(月) 01:26:16http://pc11.2ch.net/test/read.cgi/tech/1197710566/646
だろう。
0832デフォルトの名無しさん
2008/01/07(月) 11:20:260833デフォルトの名無しさん
2008/01/07(月) 12:55:58よくみつけてきたな
0834デフォルトの名無しさん
2008/01/09(水) 03:57:380835デフォルトの名無しさん
2008/01/09(水) 17:58:19import javax.swing.*;
public class NewJFrame2 extends javax.swing.JFrame {
List<String> dummyList = new ArrayList<String>();
JList jList;
public NewJFrame2() {
setDefaultCloseOperation( WindowConstants.EXIT_ON_CLOSE);
JScrollPane jScrollPane = new JScrollPane();
jList = new JList();
jScrollPane.setViewportView(jList);
getContentPane().add(jScrollPane, java.awt.BorderLayout.CENTER);
for ( int i=0; i<300; i++ ) {
StringBuilder sb = new StringBuilder();
int max = (int)(Math.random() * 100 + 1);
//int max = 20;
for ( int j=0; j<max; j++ ) sb.append("A");
dummyList.add(sb.toString() + " " + i);
}
jList.setModel(new AbstractListModel() {
public int getSize() { return dummyList.size(); }
public Object getElementAt(int index) {
return dummyList.get(index);
}
});
pack();
}
public static void main(String args[]) {
new NewJFrame2().setVisible(true);
}
}
0836デフォルトの名無しさん
2008/01/09(水) 18:01:42>>835のプログラムなんだけど、単純にJListの中に300個のダミーデータを入れている。
カーソルキーで下にスクロールしていき、数十行進んだら、こんどは上に10行くらい
スクロール。
そしたらまたカーソルキーで下に移動。
すると、選択されてる項目が一瞬で画面の下までジャンプしてしまう。
このプログラムで、maxを20とか一定の値にした場合はジャンプしない。
JListの各セルの文字列長をランダムに変えたものを入れるとこの現象が起きる。
こういう仕様なのかもしれないけど、一瞬で選択位置が飛ぶと、
目線がそれてしまうので操作感がよくない。
maxを固定したときのように動作してほしい。
なんとかする方法ないかなぁ?
0837デフォルトの名無しさん
2008/01/09(水) 19:57:24解決法でないのだが、「ジャンプ」の条件について。
固定長かどうかではなく、Viewport の外に描画域があるかないか、ではないのか、と。
固定長で横スクロールが出るようにしたときは「ジャンプ」するし、
固定長でなくても、横スクロールが出ないときは「ジャンプ」しない。
JScrollPane で横スクロールを非表示にしても、見えない部分があるときは「ジャンプ」する。
0838デフォルトの名無しさん
2008/01/10(木) 16:05:46しかしちょっと設定をいじくったぐらいでは解決しそうない。
オーバーライドして一部の機能を殺すとか。
0839デフォルトの名無しさん
2008/01/10(木) 18:27:36http://bugs.sun.com/view_bug.do?bug_id=6568906
http://bugs.sun.com/view_bug.do?bug_id=6510999
0840デフォルトの名無しさん
2008/01/10(木) 18:57:440841デフォルトの名無しさん
2008/01/10(木) 19:27:170842デフォルトの名無しさん
2008/01/10(木) 21:33:46JListに512個要素突っ込むとバグるとか放置されてるし。
0843デフォルトの名無しさん
2008/01/10(木) 22:03:232000個いれてみたけど、なにかバグあんの?
0844デフォルトの名無しさん
2008/01/10(木) 22:52:30これで、すべてのアイテムが2個ずつになって1024個になるというステキなバグ
0845デフォルトの名無しさん
2008/01/10(木) 23:06:27末尾に並ぶ0の個数を求めるのをJavaでおながいします
0846デフォルトの名無しさん
2008/01/10(木) 23:10:360847デフォルトの名無しさん
2008/01/10(木) 23:16:39バグが出なかったんだけど
他になんか条件ないの?
0848デフォルトの名無しさん
2008/01/10(木) 23:17:55class Test{
static void main () {
cnt5 = 0;
for (int i = 1;i <= 10000; i++)
if(i % 5 == 0)
cnt5++;
System.out.println("count" + cnt5);
}
}
0849デフォルトの名無しさん
2008/01/10(木) 23:22:250850デフォルトの名無しさん
2008/01/10(木) 23:48:270851デフォルトの名無しさん
2008/01/10(木) 23:51:270852デフォルトの名無しさん
2008/01/11(金) 00:07:08i%25 とか i%125 も数えなきゃだめじゃね?
0853デフォルトの名無しさん
2008/01/11(金) 00:07:360854デフォルトの名無しさん
2008/01/11(金) 00:15:22つ ttp://deztec.jp/x/05/faireal/faireal-26-index.html
0855デフォルトの名無しさん
2008/01/11(金) 00:19:54実用に問題ないレベルならシンプル記述に徹するのも美学。
0856デフォルトの名無しさん
2008/01/11(金) 00:48:090857848
2008/01/11(金) 01:29:37class Test{
static void main () {
int cnt5 = 0, n;
for (int i = 5;i <= 10000; i += 5) {
n = i;
while (n % 5 == 0) {
cnt5++;
n /= 5;
}
}
System.out.println("count" + cnt5);
}
}
0858デフォルトの名無しさん
2008/01/11(金) 01:39:180859デフォルトの名無しさん
2008/01/11(金) 01:57:27>>有名なバグだぞ。
にしては、バグ登録日があまり昔ではないが?
>>842
>>844
そんなバグはありえない。
まず、JList、JListのsuperクラスにCTRL+Bなんてデフォルトのキーバインドはない。
さらに、ListModelへ項目の追加、削除が可能であることを
JListは知りようがないから、JListがListModelに項目を追加することはできない。
(ComboBoxModelのMutableComboBoxみたいなインタフェイスはない。)
そもそも、登録もされていないキーバインドが実行されるなら、
JListでなく、JComponentのバグだし。
JListがListModelに項目を追加する唯一の方法は、
ListModelをDefaultListModelへダウンキャストすることだけど、
Swingのソースコードにダウンキャストするような箇所はない。
さて、どうやったら、ソースに書かれていないことを
JListが実行するのだろう?
0860デフォルトの名無しさん
2008/01/11(金) 03:06:000861デフォルトの名無しさん
2008/01/11(金) 03:13:52断言できないんだけどな。実行時のリスナやら集約の親子まで調べてやらないと。
0862デフォルトの名無しさん
2008/01/11(金) 03:22:05JLabel クラスが無罪であることを得々と説いてもあんまし意味なくね? という話 (実装者乙、でなければ)。
0863デフォルトの名無しさん
2008/01/17(木) 15:17:13XSL で処理できるからデータを利用しやすいんじゃがのう。
0864デフォルトの名無しさん
2008/01/17(木) 18:20:010865デフォルトの名無しさん
2008/01/17(木) 18:50:170866デフォルトの名無しさん
2008/01/17(木) 19:01:08ブラウザを使うのがPCだけしかない考えてるなら、考え直した方がいい。
0867デフォルトの名無しさん
2008/01/17(木) 19:04:520868デフォルトの名無しさん
2008/01/17(木) 19:21:49一緒にしてるしwwwアホか?
0869デフォルトの名無しさん
2008/01/17(木) 19:27:010870デフォルトの名無しさん
2008/01/17(木) 19:30:49むしろあの HTMLEditorKit 系をおまいがどこで活用できてるのか知りたい。
0871デフォルトの名無しさん
2008/01/17(木) 19:31:390872デフォルトの名無しさん
2008/01/17(木) 19:42:23JDICだとXSS対策が必要だろうけど、こっちは不要。
0873デフォルトの名無しさん
2008/01/17(木) 19:56:220874デフォルトの名無しさん
2008/01/17(木) 20:06:380875デフォルトの名無しさん
2008/01/17(木) 20:09:36Rhinoにその手のインタフェースを与えなきゃいいだけだ。
0876デフォルトの名無しさん
2008/01/17(木) 20:22:150877デフォルトの名無しさん
2008/01/17(木) 20:25:260878デフォルトの名無しさん
2008/01/17(木) 20:30:43できるんでしょ?」 と言い出す事もあるが、あれを見せるとさすがに黙る。
0879デフォルトの名無しさん
2008/01/17(木) 20:34:02でも日本語とかIMEのこととか考えてないよな、あのHTMLEditorKitは。表示だけならいいけど。
0881デフォルトの名無しさん
2008/01/17(木) 20:46:380882デフォルトの名無しさん
2008/01/17(木) 23:57:24絶好の材料だと思うんだけどなあ<ブラウザ
0883デフォルトの名無しさん
2008/01/18(金) 00:15:590884デフォルトの名無しさん
2008/01/18(金) 00:23:11D言語1.0がまったく普及しない原因がそれと言われてるし。
0885デフォルトの名無しさん
2008/01/18(金) 00:29:11標準ライブラリがしっかりしてれば
Javaは生まれなかったかも知れない
0886デフォルトの名無しさん
2008/01/18(金) 00:30:48CPANのおかげと言っても過言ではない死ね
0887デフォルトの名無しさん
2008/01/18(金) 00:36:140888デフォルトの名無しさん
2008/01/18(金) 03:53:190889デフォルトの名無しさん
2008/01/18(金) 08:12:32人を否定するなら代替の主張を出してからにしたら?
0890デフォルトの名無しさん
2008/01/18(金) 14:17:410891デフォルトの名無しさん
2008/01/18(金) 19:29:510892デフォルトの名無しさん
2008/01/18(金) 19:37:12次の話題どうぞ
↓↓↓
0893デフォルトの名無しさん
2008/01/18(金) 19:38:570894デフォルトの名無しさん
2008/01/18(金) 19:55:060895デフォルトの名無しさん
2008/01/18(金) 20:11:160896デフォルトの名無しさん
2008/01/18(金) 20:52:290897デフォルトの名無しさん
2008/01/18(金) 21:04:190898デフォルトの名無しさん
2008/01/18(金) 21:36:21>>865の脳内ではメディア再生ライブラリがGUIツールキットなんだよ。
0899デフォルトの名無しさん
2008/01/18(金) 21:51:430900デフォルトの名無しさん
2008/01/18(金) 22:57:52http://pc11.2ch.net/test/read.cgi/tech/1033703640/
0901デフォルトの名無しさん
2008/01/18(金) 23:25:19むしろGLCanvasとかGLJPanelとかAWTとSwingの外部コンポーネントと考えれるからこっちだろと
シンプルに描画だけのOpenGLの実装だからユーザーに全ての描画を任せるタイプで
フルスタックで重いJava3Dとはかなり違う
0902デフォルトの名無しさん
2008/01/18(金) 23:44:310903デフォルトの名無しさん
2008/01/19(土) 00:32:48でもGLCanvasの挙動とかどうかんがえてもむこうの範疇ではないと思うんだが
0904デフォルトの名無しさん
2008/01/19(土) 00:49:500905デフォルトの名無しさん
2008/01/19(土) 02:38:130906デフォルトの名無しさん
2008/01/19(土) 14:52:450907デフォルトの名無しさん
2008/01/19(土) 14:57:230908デフォルトの名無しさん
2008/01/19(土) 14:58:040909デフォルトの名無しさん
2008/01/19(土) 15:00:190910デフォルトの名無しさん
2008/01/19(土) 15:06:22フヌケw
0911デフォルトの名無しさん
2008/01/19(土) 15:09:120912デフォルトの名無しさん
2008/01/19(土) 15:17:480913デフォルトの名無しさん
2008/01/19(土) 15:20:320914デフォルトの名無しさん
2008/01/19(土) 21:24:53ライセンス読むと良いよ。
たしかRuntimeと同じ特例が適用されてたと思う。
0915デフォルトの名無しさん
2008/01/25(金) 17:18:55JMFとJOGLは需要ありそうというか隔離しないと他で暴れるバカが出てきそうだけど。
JAIは実際に使ってるの見たことないな。
Java Media APIスレ立てたら誘導用くらいには機能するかね?
0916デフォルトの名無しさん
2008/01/25(金) 18:02:09JMFはあってもよさそうなもんだなぁ…
JOGLは…どの程度使われてるんだろ…?
0917デフォルトの名無しさん
2008/01/25(金) 18:18:28・Java Media Framework (JMF)
・Java Sound API
・Java 3D
・Java Binding for OpenGL(JOGL)
・Java Advanced Imaging(JAI)
・Java Image I/O
・Java 2D
・Java Speech API
・Java Telephony API(JTAPI)
JMFとJava Advanced Imaging、Java Image I/O
、Java 2DはAWT/Swingコンポーネント関係ないなら分けた方が良いと思うんだけどな。
0918デフォルトの名無しさん
2008/01/25(金) 18:23:03知名度JMF>JOGL
日本語リソースの多さJMF>JOGL
じゃない?
javaでゲームつくるとなるとJOGLは欠かせないけど、なきゃないでJava2Dで十分って感じ。
ゲ制のJavaでゲームつくるスレが落ちたからJOGL聞く場所がないんだよ。
0919デフォルトの名無しさん
2008/01/25(金) 18:31:48javaでゲームつくるとなるとJOGLがほしい、ってのはわかるんだけど…
そもそもPC向けゲームをつくるのにjavaを選ぶ理由がないよなぁとか思うわけですよ?
その手のゲームって結構あるものなの?
0920デフォルトの名無しさん
2008/01/25(金) 18:32:44まぁバグも多いけど。
0921デフォルトの名無しさん
2008/01/25(金) 18:32:58ところでJMFとJOGLって比較するもんなのか…?
0922デフォルトの名無しさん
2008/01/25(金) 18:42:12需要的に考えると全部まとめて Java Media API スレとかでもいい気がするな。
0923デフォルトの名無しさん
2008/01/25(金) 18:48:580924デフォルトの名無しさん
2008/01/25(金) 18:57:23あとjavaでゲームつくるってのはかなり居る。
日本でもググレば出てくるし、海外はJOGL,JInput,JOALはセットでゲームつくるときに使う。
ただ、リソースは海外の方が多い。
だから日本語のリソースがないから英語読めないと何も出来ネ!ってなる。
俺も需要的にJava Media APIsで統一してスレ立てても良いと思うんだが・・・誘導・隔離用にw
IIOとかJava soundはアプリケーションプログラマが直接いじる所って少ないしさ。
0925デフォルトの名無しさん
2008/01/25(金) 20:08:130926デフォルトの名無しさん
2008/01/25(金) 20:22:48根拠はJava 7に登場のJava Kernel、JAM、JavaFXあたり。これらは要チェック。
Java Sound本、最近でたね。つい衝動買いしたけど、まだ読んでなかったり。
0927デフォルトの名無しさん
2008/01/25(金) 20:29:260928デフォルトの名無しさん
2008/01/25(金) 23:12:41つまり人柱。日本語のページも全然ないし。
あまり勧めたくはないけど、もしゲームで、かつwindowsなら、C#じゃないか?
0929デフォルトの名無しさん
2008/01/25(金) 23:26:441コア丸々使ってる箱○なら別だが
0930デフォルトの名無しさん
2008/01/26(土) 22:12:41ttp://pc11.2ch.net/test/read.cgi/tech/1201346803/l50
スレ立てられなかったのでスレ立て依頼出してたのが立った。
今後はこちらでどうぞ。
スレタイには一番使われそうなJMFとJOGLを追加しといた。
ほかテンプレあれば書いて。
Java Media APIsはDesktop Javaの一部なんでJava SE以外のエディションやAndroidは関連スレから除外しといた。
ネイティブ依存なSWTも同様。
0931デフォルトの名無しさん
2008/02/06(水) 00:48:210932デフォルトの名無しさん
2008/02/07(木) 21:21:18親コンテナ.remove(comp) / 親コンテナ.add(comp, index) もしくは
getComponentZOrder(comp) / setComponentZOrder(comp, index)
の組み合わせしか方法はありませんか?
Component のほうが、自立的に一歩前進、とか、一歩後退、みたいな仕掛け、ありませんかね…?
たとえば、大、小の円がそれぞれ component だったとして、
それを、drag で、重ねたときに、◎になるようにするしたいんですが。
(2つに限らず、3つ、4つでもいけるように)
getComponents してループさせて入れ替え、しかないでしょうか。
0933デフォルトの名無しさん
2008/02/07(木) 21:49:590934932
2008/02/07(木) 22:13:16おぉ、JLayeredPane、忘れてましたw
duke 君のデモソースはチェックしたのに、なにしてんだ>自分
そういう Pane がある、ということは裏を返すと Container/Component
には、あまり気の利いた順序変更の手段はないんですかね。
ひきつづき、つっこみ・ご意見お待ちしております。
0935デフォルトの名無しさん
2008/02/07(木) 22:38:09それが必要なパターンが想像できないんだが。
0936デフォルトの名無しさん
2008/02/07(木) 22:52:220937932
2008/02/07(木) 23:03:27>>935
ビジネスアプリケーションじゃなくて、えと・・・
ゲームでキャラが重なる、みたいなヤツを思い浮かべてください。
>>936
CardLayoutは、ノーチェックでした。
リファレンスをチェックしてきますノシ
0938デフォルトの名無しさん
2008/02/07(木) 23:06:39ゲームのようなやつならSwingつかわずにJava2D等で描画したほうがいいよ
速度的にもメリットが薄い
0939デフォルトの名無しさん
2008/02/07(木) 23:41:33Java2DよりJOGLの方がry
0940デフォルトの名無しさん
2008/02/07(木) 23:43:460941932
2008/02/07(木) 23:46:41CardLayout、あとは自分で動作とか確認しますが、リファレンス曰く、
「コンテナ内の各コンポーネントをカードとして扱います。一度に 1 枚のカードだけを表示し…」
う、1枚では困るぅ〜。
>>938
Java2D にそんなに詳しくないのですが、
ゲームのキャラでなく、(バーチャル環境の)アバターみたいのヤツを
前後(奥行き)に操作する、といったような例だとどうでしょうか。
イメージのまま取り回すのは管理が大変かなぁ、とビビッているのですが…。
設計次第ですかねぇ。
速度の要望はそんなにシビアでないです。
0942デフォルトの名無しさん
2008/02/08(金) 00:11:39違うAWT、Swing,Java2Dは同じ層にあるUser InterFace Toolkits。
AWTはAWT,SwingはSwing,Java2DはJava MediaのAPI。
そもそもAWTは重量WindowToolkitでSwingはJava2Dを使った軽量WindowToolkitだろ。
Java2Dは2D描画ライブラリ。
javadoc嫁。
0943デフォルトの名無しさん
2008/02/08(金) 00:23:42JOGLいいけど、テクスチャを単純に表示するのが目的ならそこまで必要ないと思う
プラットフォームによってパッケージが違うのもやっかいだし、Line引くときたぶんはまる
Java2Dはαブレンディングがまともに実装されていないのがきついかな
おかげでゲームで使うときはJOGL必須だ
>>941
その動かすキャラクターの動く範囲は?
Window内をじゆうじざいにということでないのなら、
その描画はJava2Dによる重ね合わせのほうが難易度は低いと思う
0944デフォルトの名無しさん
2008/02/08(金) 00:38:19JOGL1.1ならcom.sun.opengl.util.j2dが追加されたから
BufferStrategyと同じ感覚で使えるんだけどcom.sunパッケージは嫌い?
0945デフォルトの名無しさん
2008/02/08(金) 02:07:081.JFrameのgetLayeredPane()に直接JLabelとか貼り付けて遊んでた。
2.この状態で、ポップアップメニュー出したら、表示されなかった。
3.マウスをずるずる動かして、見えないメニューの上を通過させるとメニューが表示された。
※メニューが「パッ」と全部表示されるんじゃなくて、
マウスが乗っかったメニューアイテムが1つずつ表示される。
4.JLabelを乗せるレイヤーを変えても問題は解決しなかった。
そもそも1.の使い方がナンセンスなのか。
レイヤードペインとポップアップは気をつける何かがあるのか。
誰か知ってる人がいたら教えてください。
0946デフォルトの名無しさん
2008/02/08(金) 04:07:330947デフォルトの名無しさん
2008/02/08(金) 08:21:43GlassPane?
0948デフォルトの名無しさん
2008/02/08(金) 09:58:10とりあえず、LayeredPane を導入してみますデス。
もう一個、教えてくんです・・・。
contains(int x, int y) メソッドって、
リスナーにしなくても mouseEntered なとき(Component 上に
マウスカーソルがあると)、勝手に呼ばれるようですが、
それでよいです??? Documented な仕様ですか?
override して使わないほうがよさそうですよね。override しちゃだめ?
だったら final にして〜〜。
0949デフォルトの名無しさん
2008/02/08(金) 18:15:56描画される順番の問題。
GlassPaneは自分で描画しない限り何もない。
GlassPaneでイベント握り潰せば結果的にGUIをブロックできる。
0950デフォルトの名無しさん
2008/02/08(金) 18:21:08layeredPane の POPUP_LAYER じゃない?
0951945
2008/02/09(土) 00:25:29JLabelにアニメーションGIFを表示させた場合、
絵が書き換わるたびに、マウスずらしで表示させた
ポップアップメニューが消されたw
・JLabelに文字を表示させた場合
・普通にコンテンツペインにJLabelを置いた場合
この状態での実験も。。。今度やってみる
0952デフォルトの名無しさん
2008/02/09(土) 11:06:140953デフォルトの名無しさん
2008/02/09(土) 11:47:180954デフォルトの名無しさん
2008/02/09(土) 11:59:19バグ-かろう
バグ-かった
バグ-くない
バグ-い
バグ-ければ
0955948
2008/02/09(土) 13:01:03気がついたのは、
より上位の Layer のコンポーネントが、より下位のコンポーネントを
完全に覆い隠すと(感覚的にいうと lower.getBounds() < upper.getBounds())
のとき下位のコンポーネントが描画されない(消える)
つーことがありました。
理屈としては、そのほうが、高速化が図れるのかもしれないけど、
上位の矩形のイメージが透明化されてるときちょっと困るんだけどなぁ。
0956デフォルトの名無しさん
2008/02/09(土) 13:38:19上位レイヤのコンポーネントでsetOpaque(false)でどう?
0957デフォルトの名無しさん
2008/02/09(土) 13:41:410958948
2008/02/09(土) 15:38:21レス、どうもです。
setOpaque() してると思うんですが、今日は、職場でないので
確認できないっす。火曜日にチェックします!
みなさんは休出っすか?
0959デフォルトの名無しさん
2008/02/09(土) 15:41:040960デフォルトの名無しさん
2008/02/09(土) 18:30:570961945
2008/02/10(日) 03:09:13それはともかく、>>952さんありがとうございます。
ポップアップでまくりですよ。
そして、実験の報告。
>・JLabelに文字を表示させた場合
結果:×
レイヤードペインに文字ばっかりのJLabelを乗せてみた。
文字の後ろにメニューがでた。文字の隙間からメニューが見えてるw
マウス動かすと文字の前に来るあたりの挙動は一緒。
>・普通にコンテンツペインにJLabelを置いた場合
結果:○
当たり前か。
0962デフォルトの名無しさん
2008/02/13(水) 19:28:37同様のアクションをJPopupMenuにも加えたいのですが、どのようにすればよいでしょうか?
CTRL C, CTRL Vではうまくいくのですが、JPopupMenuからアクションを行うと、ソースが変わってしまいだめなようなのです。
TransferHandlerのcopyのアクションのコードを見てみると、アクションソースがJComponentのインスタンスでなければ弾いているのが原因のようです。
そこで
// a:TransferHandlerのアクション
private Action createAnotherSourceAction(final Action a,final Object src){
return new AbstractAction(){
public void actionPerformed(ActionEvent e) {
e.setSource(src);
a.actionPerformed(e);
}
};
}
こんな感じで新たに生成してやるとうまくいくのですが、わざわざ作り直すのは抵抗があって・・・
何か打開策がありましたらご教授ください。
0963デフォルトの名無しさん
2008/02/13(水) 20:16:03アクションが操作対象となるJTreeのインスタンスを持てばいいだけじゃないのか?
0964962
2008/02/15(金) 09:33:09JComponentのインスタンスでなければ弾いているので、そもそもアクションまで起こっていないんです。
CopyActionくらい自分で実装して、>>963さんのおっしゃるように対応したコンポーネントのインスタンスを持たせていた方がいいかもしれないですね。
ありがとうございました。
0965デフォルトの名無しさん
2008/02/23(土) 11:27:45それを実装するコンポーネントでどのようなアクションを取ったかを調べられれば問題ないのですが、それがMouse系のリスナーではスマートに調べられなくて困っています。
教えください。
0966デフォルトの名無しさん
2008/02/23(土) 11:36:04何十回か氏んできます。
0967デフォルトの名無しさん
2008/02/24(日) 11:38:09メジャーどころだとNetbeans付属のものやVisual Editorがありますよね。
ほかにもJformDesignerや、jvilderなどがあるようです。
みなさん、GUI開発にはどんなツールをお使いですか?
0968デフォルトの名無しさん
2008/02/24(日) 11:48:000969デフォルトの名無しさん
2008/02/24(日) 11:51:42慣れないうちは思うようにデザインできないけど慣れたらかなり使いやすいかも
0970デフォルトの名無しさん
2008/02/24(日) 11:54:491000行ぐらいいっちゃうのがちょっとアレですが。
jiglooは冗長にならないように書けます?
0971デフォルトの名無しさん
2008/02/24(日) 12:28:06あれ使えばそんなに冗長にはならないですよ
個人的に一つ一つのコンポーネントのプロパティ設定で勝手にブロックで囲んでくれてるのが見やすくて好きです。
0972デフォルトの名無しさん
2008/02/24(日) 12:50:00他のデザイナを試してみることにしましょう。Jiglooか、もうNetbeansかな。
EclipseのプラグインでWindowBuilderというのもこれに対応しているようですが、
日本で使ってる人があまりいなさそう・・・
0973デフォルトの名無しさん
2008/02/24(日) 14:39:26書けるGUIデザイナが欲しすぎる。
0974デフォルトの名無しさん
2008/02/24(日) 15:14:140975デフォルトの名無しさん
2008/02/24(日) 15:54:12何かと合理的。
0976デフォルトの名無しさん
2008/02/24(日) 16:02:31細かいイベント等制御するためのSwingなんじゃねーか
HTMLベースでいいのならWEBアプリにするだろ
0977デフォルトの名無しさん
2008/02/24(日) 16:11:07Web 開発の資産やスキル転用できるし、単純にブラウザコンポーネントとしても転用も可能。
まじめに考えてるわけではないのでカスタムコンポーネントの追加方法なんか考慮する
必要はあるが、そんな頭から否定されるほど悪い話ではないと思うが。
0978デフォルトの名無しさん
2008/02/24(日) 16:27:11まぁ今の環境で満足だし、そこまで外部化してしまわなくてもいい気もするなぁー
0979デフォルトの名無しさん
2008/02/24(日) 17:43:06JavaFXがやろうとしてるんじゃないかな
ただXMLベースじゃないみたいだけど
0980デフォルトの名無しさん
2008/02/24(日) 17:49:05スタンドアロンアプリでTomcat動して、UIはブラウザ、ってすればいいんじゃね?
0981デフォルトの名無しさん
2008/02/24(日) 18:09:120982デフォルトの名無しさん
2008/02/24(日) 18:14:290983デフォルトの名無しさん
2008/02/24(日) 18:37:25別に XUL の Java 実装でも良いけど。
0984デフォルトの名無しさん
2008/02/24(日) 18:46:160985デフォルトの名無しさん
2008/02/24(日) 19:19:48scriptのIDEサポートとかJavaのほかに別言語を覚えないといけないとか
そもそもブラウザによって違いがあるというのに・・・
ボタンクリック等のイベント程度でいいのなら別にかまわんとおもうけど
0986デフォルトの名無しさん
2008/02/24(日) 21:36:38すっきりとロジックと融合したGUIが宣言ベースでかけるというのが
売りなのでしょう。
ただ、いまいち方向性が分からないというのは・・・。
0987デフォルトの名無しさん
2008/02/24(日) 21:57:42クライアント側のJavaで、RTF文章を何らかの形で表示(編集できなくてもOKです)させたいのですが、
JEditorPaneはあまりにも古すぎてJREに同梱されているLICENSE_ja.rtfすらマトモに読めない、という
情けないことになっています。他に何らかの代替/回避方法はないのでしょうか?
0988デフォルトの名無しさん
2008/02/25(月) 11:01:370989デフォルトの名無しさん
2008/02/25(月) 11:06:570990987
2008/02/26(火) 10:29:05>>989
いや、マジメな話、(ライブラリ等を使うかは別にして)今のところ、ググって引っかかるのはそのアプローチしかないみたい。
もう少し簡単な方法がないかと思って質問してみたのですがね(笑
0991デフォルトの名無しさん
2008/02/26(火) 10:43:020992デフォルトの名無しさん
2008/02/26(火) 10:48:040993デフォルトの名無しさん
2008/02/28(木) 01:57:15単純に実装してJScrollPaneにのっけてやるだけでは、実装したメソッドのうち、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の二つは呼び出されるのですが、肝心の
getPreferredScrollableViewportSize()
が呼び出されないのです。
どうしてでしょうか?
0994デフォルトの名無しさん
2008/02/28(木) 03:04:21ほとんどこれ1本でやってるんだけど。
0995デフォルトの名無しさん
2008/02/28(木) 03:21:59getPreferredSize()はどう実装している?
0996デフォルトの名無しさん
2008/02/28(木) 08:45:59すみません。寝ぼけてたようで、
getScrollableTracksViewportHeight()
getScrollableTracksViewportWidth()
の判定で必ずtrueがかえってしまうようになってしまってました。
というわけでスレ汚してしまったのでお詫びに次スレ建ててきました・・・が、タイトル間違えてしまいました。
本当にすみません。板まで汚してしまったみたいです。
http://pc11.2ch.net/test/read.cgi/tech/1204155623/
0997デフォルトの名無しさん
2008/03/01(土) 17:48:070998デフォルトの名無しさん
2008/03/01(土) 18:54:53せっかくスレタイ変えたのに
0999デフォルトの名無しさん
2008/03/01(土) 19:24:191000デフォルトの名無しさん
2008/03/01(土) 19:25:58細かいこと気にするなよ
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。