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


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

Java低速GUI Swing 5



1 名前:デフォルトの名無しさん mailto:sage [2006/10/18(水) 11:50:09 ]
ハードウェアの高スペック化、JavaVMのホットスポットの高速化に伴い、
パフォーマンスの問題は徐々にですが改善されつつあります。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。

Java低速GUI Swing 4 (前スレ)
pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
pc5.2ch.net/test/read.cgi/tech/1062271447/l50

477 名前:デフォルトの名無しさん mailto:sage [2007/06/02(土) 17:15:58 ]
Java2DのOpenGLアクセラレーションは有効にしても描画が崩れるだけなので使い道がねぇ

478 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 11:25:53 ]
JFileChooserでダイアログを出すと

ttp://2sen.dip.jp:81/cgi-bin/upgun/up1/source/up5993.jpg

のようにフォントの大部分が太字になってしまいます。

試しに
JFileChooser chooser = new JFileChooser();
chooser.setFont(new Font("Dialog", Font.PLAIN, 12));
のようにしてもダメでした。

どうすればこの太字をFont.PLAINにできるのでしょうか?
識者の方々、どうかアドバイスをお願いいたします。

OS:Windows2000、XP
JDK:1.6.0、1.6.0_01
でそれぞれ試してみました。

479 名前:デフォルトの名無しさん [2007/06/11(月) 12:05:15 ]
すみません、上げます

480 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:15:32 ]
e-class.center.yuge.ac.jp/jdk_docs/ja/api/java/awt/Font.html

481 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 13:16:55 ]
https://java.sun.com/javase/ja/6/docs/ja/api/java/awt/Font.html
java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Font.html


482 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 14:05:12 ]
>>478
UIManager.setLookAndFeel()


483 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 14:23:31 ]
>>478

amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=LookAndFeel

フォントを指定して起動する
SwingのデフォルトのLook & FeelであるMetalはメニュー等のフォントがBoldでいまいち見た目がよくありません(JDK1.3までは普通だったのですが…)。JavaVMに起動オプションを与えることで、このフォントを変更することができます。

java -Dswing.plaf.metal.controlFont=Dialog-12 alpha.AppMain

また、JDK1.5ではMetalLookAndFeelでPLAINなフォントを使用するために以下のオプションが利用可能です。

-Dswing.boldMetal=false

コマンドラインオプションではなく、Javaコード中で設定する場合には以下のようにします。

UIManager.put("swing.boldMetal", Boolean.FALSE);




484 名前:478 mailto:sage [2007/06/11(月) 15:58:38 ]
>>483
おおお、ベストアンサーでした。
ありがとうございます!
これで他のコンポーネントもsetFont(new Font("Dialog", Font.PLAIN, 12))をしなくて済みました。

他にもレスをくださった皆様方ありがとうございました。

485 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 16:16:40 ]
これって何でボールドに変更したのか謎だよなぁ…



486 名前:デフォルトの名無しさん [2007/06/11(月) 17:23:13 ]
MigLayout使ってる人って居る?
シンプルで結構良さげだったのだけど。

487 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 17:38:11 ]
まず>>486が使ってみてメリット、デメリットを押さえた感想を教えてくれ

488 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 21:52:58 ]
>>484
やってること同じかもしれないけど
terai.xrea.jp/Swing/FontChange.html

private void updateFont(final Font font) {
EventQueue.invokeLater(new Runnable() {
public void run() {
FontUIResource fontUIResource = new FontUIResource(font);
UIDefaults defaultTable = UIManager.getLookAndFeelDefaults();
for(Object o: defaultTable.keySet()) {
if(o.toString().toLowerCase().endsWith("font")) {
UIManager.put(o, fontUIResource);
}
}
//SwingUtilities.updateComponentTreeUI(MainPanel.this);
recursiveUpdateUI(MainPanel.this);
frame.pack();
}
});
}
private void recursiveUpdateUI(JComponent p) {
for(Component c: p.getComponents()) {
if(c instanceof JToolBar) {
continue;
}else if(c instanceof JComponent) {
JComponent jc = (JComponent)c;
jc.updateUI();
if(jc.getComponentCount()>0) recursiveUpdateUI(jc);
}
}
}


489 名前:デフォルトの名無しさん mailto:sage [2007/06/11(月) 22:22:00 ]
>>485
英字さえ見栄えがよけりゃいいって感じかと

490 名前:デフォルトの名無しさん [2007/06/12(火) 02:50:08 ]
スレ違いかもしれないが、質問。
Swingでアプリを作りたいんです、得意先台帳に送り状印刷機能がついたようなのなんですが。
Accessみたいにプリンタ(ドットインパクト)の指定と用紙サイズ(ヤマトだと15*4 1/2インチ)を指定して、
ボタン一発で印刷ってできるのでしょうか?
詳しい方教えてください。
よろしくお願いします。

491 名前:デフォルトの名無しさん [2007/06/12(火) 03:48:24 ]
それを自分で作るんだろうが。
javaでドラクエ作れますか?て聞いてるのとかわらんな。
最近javaスレでこの流れ多いな。

492 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 04:37:40 ]
POIでいけるんじゃね?

493 名前:デフォルトの名無しさん [2007/06/12(火) 08:47:19 ]
>>490
PrintRequestAttributeSet

494 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 10:26:53 ]
>>490
プリンタドライバ経由ならできるよ。
javax.printパッケージを見るといい。

495 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 11:38:35 ]
佐川やヤマトの送り状とか契約書とかドットインパクトでの印刷はよくやるな
業務系だと連帳は基本だしな

ただ、Swingとあまり関係のないところだな
ネイティブのプリンタのプロパティ使いたい場合awtのダイアログを使ったほうがいい場合もあったような

あとitextあたりでPDFを生成して印刷はAdobeReaderに任せるという方法もある

ヤマトならcsvとかXML作ってヤマトが無料配布している送り状印刷ソフト使う手もある
備考欄とかイマイチ文字数が足りないとかあるけど、細かいカスタマイズがしたいとかなら
予算次第(&個数)だがヤマトシステムに話をしたほうがいいかも



496 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 12:32:14 ]
毎月1000部くらい刷るって言ったらソフト作ってくれるのかな


497 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 12:54:31 ]
>>496
作ってくれるかどうかはお金次第でしょ。

498 名前:デフォルトの名無しさん mailto:sage [2007/06/12(火) 13:35:48 ]
あとはシステムだけじゃなくそこの担当地区の営業さんの力次第ってのもある
地区によっては厳しいところもあるからそういうところはプッシュしてくれる

でも1000部程度で乗せるものによっては自前で印刷したほうがいいかも
長期間にわたって定期的に発送などならちゃんと契約すれば自前で印刷とか梱包もやる必要はないよ
資材とか送るとヤマトのほうで全部やってくれる

1000枚の送り状番号の管理とか印s夏して箱詰めとかが面倒だと思ったら
まずは近くの営業の人(ドライバーとか)に話をしてみるといいかと

499 名前:デフォルトの名無しさん [2007/06/12(火) 13:36:03 ]
>>497
簡単なんだから自分で作れよ。

500 名前:デフォルトの名無しさん [2007/06/12(火) 23:59:02 ]
皆さん(>491除く)、色々と有難う。

PDFを使うやり方や、ダイアログを使うやり方だと、
ボタン一発ではないので面倒くさがられてしまいます。
現在の使いかただと、キー入力のスピードに画面の表示が追いつかないくらいなので。

>>493,494氏にお教え頂いたのを勉強してみようと思います。

501 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 00:25:39 ]
PDFを使う利点はプレビューできるってとこだな
Accessとかで手軽にプレビュー作れてたシステムの置き換えに使うといい
あとダイアログはだす、ださないだけの違いだからどうにでも

現在の使い方だとキー入力に画面が追いつかないってのが意味不明

502 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 00:31:46 ]
javax.printだと、Graphicsに書き込むことには違いないから、JComponentのpaintComponentsからも同じ処理呼び出せばプレビュー自体は比較的簡単だよ。
標準で持ってて欲しいとも思うが。

503 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 01:56:40 ]
PDFを使う利点は偽造されにくいっていうのも
どこかのサイトに書いてあったけど本当?

504 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 02:52:14 ]
印刷の途中仮定という意味でなら、PDFなんて中間形式使わずに直接印刷したほうが偽造されにくい。

505 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 08:43:41 ]
xsl-foのこともたまにで良いので思い出してあげてください。
まさに組版並の印刷用途向け中間形式なんだが。
まあ、まともにサポートしてるライブラリは商用ライセンスだが。
xsl-foをjava2dにさえ描画できればあとはどうにでもなる。


てか、○○さん以外ありがとう
とか言ってる奴たまにいるけど馬鹿かこいつら?



506 名前:デフォルトの名無しさん mailto:sage [2007/06/13(水) 09:46:26 ]
かわいそうな人はスルーした方がお互いのため。

507 名前:デフォルトの名無しさん [2007/06/13(水) 10:04:45 ]
JPopupMenu#show を呼ぶと、デフォルトで、最初のメニュー項目が
選択されてしまうのですが、これを選択されないようにすることはできますか?

508 名前:478 mailto:sage [2007/06/13(水) 10:33:04 ]
>>488
おお、情報提供ありがとうございます。
再帰的にコンポーネントをゲットしてフォントを変えていくんですね。
参考になります。

509 名前:デフォルトの名無しさん [2007/06/17(日) 23:55:36 ]
すいません、swingで
javax.swing.JOptionPane.showMessageDialog(null, "hello");
で helloと表示されるダイアログが表示されるのですが、
このhelloのフォントってどうやって指定するのでしょうか?

リファレンスみたのですが、どうもそのような設定項目がなくて…



510 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:12:28 ]
一応出来るけど、OSがメッセージだすように環境依存ってことになるから
将来のバージョンで動作が保障されないとかそういうことになってもいいのかい?

カスタマイズしたダイアログがほしいなら自前で作成すべき

あと最初の引数をnullにする場合なんてありえんと思う

511 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 00:30:00 ]
>>510
コマンドラインから出したり。

512 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 10:05:59 ]
>>509
javax.swing.JOptionPane.showMessageDialog(null, "<html><font size=20 face=\"MS 明朝\">hello</font></html>");

513 名前:デフォルトの名無しさん [2007/06/18(月) 13:40:36 ]
>>509
LookAndFeel

514 名前:デフォルトの名無しさん [2007/06/18(月) 14:53:27 ]
VB.NET C# 使いなんだがマルチプラットフォームに興味があるのでJava使ってみたいんだけど・・・・気になる点が2つほど

1.
LinuxとWindowsで基本的なコントロール(テキストボックスとかリストビューとかグリッド)使ってDBのデータIOを行うアプリを作りたいんだけど
LinuxとWindowsは意識せずにまったく同じソースでいいの?
それともVMごとにコンパイルオプションを指定するような感じになるの?

2.
.NETと比べてUIのモッサリ感はどう?
.NETのモッサリ感は我慢できるレベルだという定義で
内部処理の高速性は気にしないものとします。

515 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 15:20:17 ]
>>514
1. 同じソースで同じバイナリ(クラスファイルだけど)でよい
2. 起動はモッサリだが動けばUIの速度は普通(昔はモッサリだったけど最近はよくなってきた)



516 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 15:23:55 ]
>>514
SwingはJava5 Java6 など新しいものの使用をすすめる。
WinFormとどっこいくらいには快適になってる。

517 名前:デフォルトの名無しさん [2007/06/18(月) 16:04:38 ]
>>515
>>516
レスサンクス

なるほど 話の通り完全に同じソースでいけるわけなんだ
やっぱ便利そうだなぁ
C++でマルチプラットフォーム用の書いてたときはDefine切りまくりで
頭弱いから途中で頭がこんがらがってたしw

モッサリ感は現状最新のものを使って進めていけば.NETと同じレベルになりそうだからその方向でやってみようかなと
本当ははドトネト選ぶ時にJAVAにしようかな?と迷ったんだけど重いって話を腐るほど聞いてたんでドトネトにした
実際使ってみたらドトネトも思ったよりもモッサリで・・・・新しいソフト作る時はJAVAも視野に入れてもいいかもと思いだした

どうもこのスレの感じからすると普通に問題なさそうだからちょっと簡単なソフトから使ってみることにするよ

518 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 16:24:28 ]
もっさり具合はアプリによるのでは?
.NETでもそうだけど、メモリは食うね。HDDとメモリが速ければ大丈夫。キャッシュの量にも大きく左右される。
Pentium4系だとJavaの速度は遅めでAthlon64やPentiumM系列はあからさまに速い。

1.4.1以降はGUIの描画にたとえばWindowsだとDirectDrawを使ったりハードウェアアクセラレーションを利用している。
6.0でVMの大幅に速度向上してるのでクライアントサイドなら6.0以上をすすめる。便利なAPIも多いし。
jdkに付属のswingsetデモを見てみるといいかも。

519 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 16:41:29 ]
あとは jar 一個ってわけにいかないアプリだと
起動スクリプトを環境毎に書く必要有り。

つっても path や classpath の指定方法が違うだけなんだけど。

520 名前:デフォルトの名無しさん [2007/06/18(月) 16:58:09 ]
>>518-519

まぁアプリによるといえばよるんだけどUI描画全般は遅いと感じてしまう・・・

いい情報サンクス!
クライアントAPPなので とりあえずそのバージョンを最低レベルとして環境整えてみるわ

>起動スクリプトを環境毎に書く必要有り
まぁそれくらいなら別に問題ないとおもうさ

521 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 17:17:22 ]
>>519
MANIFEST.MFのClass-Pathエントリにjarファイル名を並べれば
パス通るよ。

522 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 17:34:19 ]
IDEがマニフェストファイルにクラスパス通してくれるから
ほとんどの場合何もする必要はないと思うが

523 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 17:37:35 ]
とはいえ快適に動かす場合、アプリごとにVMオプションを変えるのが普通だから
フック用のexeとかスクリプトおいておいたほうがいいけどな
マニフェストファイル内に参考VM設定入れれるようにしてほしいな

webstartは多少入れれるようになったし、アプリケーションの塚と削除、
プログラムやデスクトップアイコン登録やってくれるのはいいが、
肝心のスタンドアロンアプリで出来ないのが納得いかねー

524 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 18:00:08 ]
まあ、File f = new File("."); hogehogeとかやってはまるなよ。

525 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 18:18:13 ]
>>524
Swingとどういう関係が?



526 名前:デフォルトの名無しさん mailto:sage [2007/06/18(月) 19:22:25 ]
そもそも>>514がswing関係ないだろ

527 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 09:32:28 ]
>>519
fatjarでまとめてやれば、1個でおk。
ただ、LGPLなライブラリをfatjar化したときのライセンスが気になる。
動的リンクとみなしてくれるのか、静的リンクとみなされるのか。

528 名前:デフォルトの名無しさん mailto:sage [2007/06/19(火) 11:43:12 ]
いや、普通にLGPLのライセンスに従うだけ

静的なのか動的なのかでは動きは変わらない

LGPLはライブラリのバージョンアップなどが合った場合差し替える権利を保証するだけ
だからアーカイブ方法を提示してあげるだけだよ

静的だとオブジェクトファイルやコンパイル時のバージョンなどを明記すればよかったが
動的だと差し替えが容易なのでその記述が簡略化されるだけ

529 名前:デフォルトの名無しさん [2007/06/25(月) 23:13:07 ]
Java5でUTF-8の濁点入りの文字列をJTextFieldで編集するとカーソルがずれて、
Java6で濁点入り文字列をJLabelで表示すると濁点が1文字として表示されるんですが、
普通に1文字で表示してしかもカーソルがずれない方法ないもんでしょうか?

530 名前:デフォルトの名無しさん mailto:sage [2007/06/25(月) 23:28:09 ]
環境は?
俺はずれたことないのだけれども、そのずれる文字コードはなに?

531 名前:デフォルトの名無しさん [2007/06/26(火) 02:08:43 ]
フォントに問題あるんじゃないの

532 名前:529 mailto:sage [2007/06/26(火) 02:34:40 ]
ごめん、スレまちがえた。
MacのSwingの話です・・・
Mac板逝ってきます。


533 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 10:51:45 ]
環境によって違うとしても
その違いは仕様で片付けるにはあんまりだな。

534 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 12:43:31 ]
Macでも日本語がおかしいとはきいた事がないな

535 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:51:27 ]
macのネイティブLaFにはバグがあるけどな。



536 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:53:31 ]
Macじゃなくて、Windowsでも再現するかはチェックしたいな・・・
再現コードがほしい

|-`).。oO(・・・・・・MacのMustangの日本語に関する問題としては、
 レンダリングエンジンの問題の件、直るのか?
 QuartzというMac固有のレンダリングエンジンからSunのレンダリングエンジンに変更されて
 フォントの種類によってベース位置がずれる問題・・・。
 半年以上前から、MacのJavaスレで報告されていたのに、新しい開発版Javaが出てこないから
 直してるのかわからねえ・・・)

537 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 14:57:24 ]
>>529
Mac OS Xって NFD じゃなかったっけ?

1.6以降なら java.text.Normalizer あるから簡単に NFC に変換できる。
1.5以前は知らん。あと NFC に変換してもフォントが対応してるか俺は知らん。

538 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 17:41:34 ]
そもそも"UTF-8の濁点入りの文字列"ってUnicodeでいったらどこの番地?
charsetとencoding混同してる時点で伝わってないかと。

539 名前:デフォルトの名無しさん [2007/06/26(火) 18:26:19 ]
むずかしいことはわからないが、リッチクライアントが待望される現在、
Swingがいまひとつ冴えないのは何でだろう。素人的に考えるに、次の
2点だと思う。
(@)開発ツールあまりに貧弱
VisualEditorというものを使ったが、遅くて快適に使えない。
ちなみにメモリ1G。かつてのVisualBasicとどうしてもくらべて
しまうが、なぜこれほどの差があり、差がちじまないのか。

(U)見栄えが今ひとつ
フォントなど見栄えが悪い。アンチエイリアス「java -Dswing.aatext=true」
なども使ってみたが今ひとつ。
(いちいち引き合いにして悪いが、従来のVBでつくった画面にくらべると
そう感じざるをえない)

それ以外にも少し機能が貧弱な面があるが、少なくともこの2点が
改善されたら、俺は積極的に使いたいと思う。
フリーソフトニいろいろケチをつけて申し訳ないが・・

540 名前:気まぐれアナスイ mailto:!(ΦyΦ+){秘密です。} [2007/06/26(火) 18:43:35 ]
>>539
開発し易いsoft.と云うのは構成配置を覚えるにはいいですが?
そのsoft.を使用し作成されたapplication.と云う物は、
必ずsoft.に依存します… 当たり前に規約にも影響する物です。

541 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:49:31 ]
>>539
何故Netbeansを使わない。
そして、aatext=trueは、・・・・

まずは、>>539の知識を広げるところから始めた方が有用そうだ。
Swingの表現力を見るために、V2Cを見てみることをおすすめします。

542 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 18:57:12 ]
フォーカスの順序とかもっと簡単に指定できないかなあ。
結構お客さん、こだわるんだよなあ。

543 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:02:59 ]
aatext=trueはsunの5.0しか効かない。それに今はデフォで有効だろう。
さらに引数与えても捨ててるはずだけど。

LCDテキスト用AAアルゴリズムが追加されたけど実行後にプログラマが
最適なアルゴリズム選ぶ手段がjavaには無い事ない?

javaらしいって言ったらSwingの描画は全てJava2DだからJava2Dでできることは全て
GUIへフィードバックできるよね。

544 名前:デフォルトの名無しさん [2007/06/26(火) 19:05:59 ]
>>541

V2Cを見ました。
すばらしい!
たぶんソースコードは公開されてないんでしょうね



545 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:06:08 ]
Swingが流行らないのは、単に作るのが面倒だからじゃね?
プラットフォーム互換性を持つ反面、使いづらいレイアウトマネージャ、
デザパタの教科書に使えるくらい美しい(と言われる)が、取っつき悪いクラス設計、
そして優れたGUIデザイナといわれるNetBeansがマイナー扱い。

業務でJava GUIクライアント作ったんだが、
他の連中がメンテできない。正直公開している。
ま、他の連中のスキル不足とかノウハウ共有が悪いとか、
他に理由はあるんだけどさ。



546 名前:545 mailto:sage [2007/06/26(火) 19:07:09 ]
公開じゃねえ後悔だ。orz

547 名前:デフォルトの名無しさん [2007/06/26(火) 19:09:55 ]
>>541

VisualEditorを使った理由。
 Eclipseを使っていたから。
 たまたま市販の参考書が多かったから

今後はNetbeanにシフトしたいな
SUN純正だし


548 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:17:57 ]
>デザパタの教科書に使えるくらい美しい(と言われる)が、取っつき悪いクラス設計
GUIは中途半端なMVCだけどな

549 名前:デフォルトの名無しさん [2007/06/26(火) 19:28:17 ]
>>540
ユーザインタフェース(要は画面)をつくる場合コードからガリガリ書く
のはばかばかしいので、マウスのドラッグ&ドロップで簡単に画面アプリを
作成できる開発支援ツールがあれば大変重宝します。
特にエンドユーザーに見せるため一度しか使わないプロトタイプ画面
などはそうやって即効で作成したいところです。
当然本開発になっても仕様変更など生産性は著しく向上します。
ところがツールで生成したコードが著しく汚くて冗長だと、コード
のメンテナンス性が低くなり、ツール使用によるメリットが半減して
しまいます。ツールに依存していても、コードを判読するケースは
あるからです。
つまりツールが自動生成するコードは、まるで有能なプログラマーが
一から開発したかのように合理的で明快なコードである必要があります。
そうでないとツールは普及しないでしょう

550 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 19:53:05 ]
レイアウトマネージャが使いにくいって・・・
VBとかのほうが苦労するだろ
絶対座標マンセーならかまわんが、ウインドウリサイズとか対応するのきついぞ

そもそもJavaでGUI作るのにVEって・・・
あれはSwingやJavaのGUIを陥れるために作られたものと考えるくらいがちょうどいい

551 名前:デフォルトの名無しさん [2007/06/26(火) 20:33:31 ]
仕事でNetBeans使ってる人って結構いる?

552 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 20:39:46 ]
結構いると思う
5.0からは複数のプロダクトで使われてるのみてる

大手はRSAとかだけど重すぎてきつい

553 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:32:39 ]
>>551
うちの奴らはGUIの作成のみに使ってる。他はEclipse使ってるみたいだが。。。

Swing流行らせるためには、まずはNetBeansが機能も知名度もEclipse並に
なってもらわないとだめだね。

554 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:40:43 ]
日本だとNetBeansの動きがやや鈍いね
海外は動きが速い

555 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:49:24 ]
本屋にくだらないEclipse本があふれてるからねー

海外だとそこらへんの事情も違うのかな・・・



556 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 21:56:01 ]
まずはJREをどう抵抗少なく配布するかじゃないか?
結局ここが一番のネックに感じる。

launch4j に JRE 同梱して、
「exe 叩けばOK」な形で配布すると
割と抵抗なく受け入れてもらえるんだが、
人としてこのファイルサイズはどうなのって感じが。

557 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:14:40 ]
gcj使ってるひといる?

558 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:22:23 ]
>>556
アプリとして有用であればランタイムが大きくても気にしない

のが正解かと

559 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:49:47 ]
>>556
Consumer JREがどうなるか気になるね。
軽量化してくれればJRE同梱も納得できるサイズになるかも。

560 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 22:56:28 ]
>>558
Delphiも結構デカくなってたしなあ・・・。

561 名前:529 mailto:sage [2007/06/26(火) 23:16:16 ]
Mac板から帰ってきました。
NFCとNFDについて勉強してきたんで、なんでこんなことになるか
理解できました。
ファイル名を扱うツールを作ってるんですが、ファイル名を取得して
テキストエリアに表示するサンプルを作って試したら問題が再現しました。
以下、サンプルコードです。


562 名前:529 mailto:sage [2007/06/26(火) 23:16:56 ]
package test;

import java.io.File;

import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;

public class DakuonTest {
public static void main(String[] args) {
try {
JFrame frame = new JFrame();
JTextArea text = new JTextArea();
frame.getContentPane().add(new JScrollPane(text));

File[] files = new File(args[0]).listFiles();
for(int i=0; i<files.length; i++) {
text.append(files[i].getName() + "\n");
}

frame.pack();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
}


563 名前:529 mailto:sage [2007/06/26(火) 23:22:03 ]
第一引数のパスのディレクトリのファイル一覧を取得し、
1行に1ファイル、テキストエリアに表示しています。
「ピクチャ.png」があった場合、
Java 5の場合、ピは1文字で表示されますが、カーソルはずれてます。
Java 6の場合、ヒ゜と表示されます。


564 名前:529 mailto:sage [2007/06/26(火) 23:34:10 ]
ついでですが、濁点の入る文字が三つ以上続くファイル名でJava6の場合、
濁点がずれて表示されます。
「ががが.txt」
の場合、
「か゛かか゛゛.txt」
と見えます。
Appleのバグレポートにあげようかと思ったんですが、こんなもんどうやって
英語で説明したものか・・・

565 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:35:58 ]
>>563
>>536 が言ってるフォントレンダラの問題なんじゃないかと推測。

1.5 -> Quartz という Mac 本来のエンジン使ってるので、NFD でも 一文字として表示する、
    けど Java と Quartz の連携が中途半端で文字の大きさとかの情報が渡ってなくって
    カーソル位置がずれる。

1.6 -> Sun のエンジンは NFD は 別々の文字として表示する。

あくまで推測だから本当のところはわからんけど。



566 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:40:06 ]
1.5までは合成文字未対応だから、1.6でjava.text.Normalizerを
通すのがまっとうな解決法だろうなぁ。


567 名前:566 mailto:sage [2007/06/26(火) 23:41:05 ]
いや、比較する訳じゃないし、これはあくまで描画上の問題ですね……


568 名前:デフォルトの名無しさん mailto:sage [2007/06/26(火) 23:56:10 ]
比較する訳じゃないのに、Normalizeされた文字列を
表示しようとするのが間違い。
MacのFSのUTF-8はNormalizeされてるので、取ってきた後
deNormalizeしてから表示するべき、ってことなのかなー。

569 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:00:03 ]
macオワタ


570 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 00:03:58 ]
macは知らんがレンダラのフォントの扱いの問題?
appleこういうの多いよね。

571 名前:529 mailto:sage [2007/06/27(水) 00:29:08 ]
とりあえずAppleに「直せや」ってねじ込んで、駄目なら568さんの方法で
自分のコードを改修しようと思います。
その場合Java5については諦めるしかなさそうですね。

ついでなんでさらにMacのSwingについてぼやきます。
日本語キーボードを使っていると、KeyEventのgetKeyChar()とgetKeyCode()の
戻り値が矛盾します。
英語と日本語キーボードで配置が変わらない数字やアルファベットのキーなら
問題ないですが、記号だとgetKeyCode()の値がおかしいです。
たとえば@キーの場合、getKeyChar()は'@'を返しますが、
getKeyCode()はKeyEvent.VK_OPEN_BRACKET(0x5B)を返しました。
キー操作の多いアプリで、キーコードとアクションを関連づけてるんで
しゃれになりません。
バグレポートは投げておきましたが、なんでこんな基本的なバグが
何年も放置されてるんだと・・・


572 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 01:52:29 ]
おんなじ現象で困ってる人
ttp://www.starseed.ne.jp/ikemen/diary/tdiary/?date=20070622#p02

573 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 02:08:00 ]
mac版はアップルが実装してるからなぁ・・・
VMが昔はたくさんあったが今は淘汰されてSunのばかりになったことも移植性があがった原因なんだよな
しかしLinuxとWindowsは問題ないというのが歯がゆい

574 名前:デフォルトの名無しさん [2007/06/27(水) 08:54:46 ]
VEでjspinnerって入力できるの?

575 名前:529 [2007/06/27(水) 09:21:07 ]
>>572
すんません、それ僕です。





576 名前:デフォルトの名無しさん mailto:sage [2007/06/27(水) 09:37:18 ]
>>574
Choose Beanすれば何でも可

577 名前:574 [2007/06/27(水) 09:43:30 ]
>>576
なるほど、ありがとうございます。






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

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

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