Java低速GUI Swing 5
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2006/10/18(水) 11:50:09パフォーマンスの問題は徐々にですが改善されつつあります。
しかしながら、"Java"というだけで未だに敬遠されるのが現状。
そんなSwingと引き続き付き合っていくみんなのスレッドです。
Java低速GUI Swing 4 (前スレ)
http://pc8.2ch.net/test/read.cgi/tech/1140533866/
Java低速GUI Swing 3
http://pc8.2ch.net/test/read.cgi/tech/1121700954/
Java低速GUI Swing 2
http://pc8.2ch.net/test/read.cgi/tech/1095398949/
Java低速GUI Swing
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
0448デフォルトの名無しさん
2007/05/30(水) 03:30:010449デフォルトの名無しさん
2007/05/30(水) 11:23:390450デフォルトの名無しさん
2007/05/30(水) 12:24:33そのための名前をどうするか。
0451デフォルトの名無しさん
2007/05/30(水) 12:34:39もちろん変数はJTextFieldのままでいい
0452デフォルトの名無しさん
2007/05/30(水) 12:47:07間にJPanel1枚挟んでレイアウトするケースもあるし、
そう単純には行かないんじゃない?
0453デフォルトの名無しさん
2007/05/30(水) 13:44:12ララァは賢いな。
0454デフォルトの名無しさん
2007/05/30(水) 15:49:120455デフォルトの名無しさん
2007/05/30(水) 18:08:480456デフォルトの名無しさん
2007/05/31(木) 03:29:09じゃまです。
0457デフォルトの名無しさん
2007/05/31(木) 04:30:18わざわざ継承使ってコンポーネント作るなら、他に特別な仕組みがいらないリフレクションの方がいいと思うよ。
普通にGUIエディタが使えるし。
順番の指定とかはどうすんの?
0458457
2007/05/31(木) 04:36:09単にコンポーネント配列のために継承使うのはあまりいいとは思えんのだが。
GUIエディタ使いたい場合だと、「変数名を適切に指定して、あるメソッドに食わせたら配列ができる」ってのが一番手軽で影響範囲が少ないと思うのだが。
ここでのリフレクション否定の意見って、「リフレクションだからリフレクションはダメ」という理由ばかりな気がする。
0459デフォルトの名無しさん
2007/05/31(木) 04:38:04そういうセリフあったっけ?
0460デフォルトの名無しさん
2007/05/31(木) 05:35:580461デフォルトの名無しさん
2007/05/31(木) 09:38:42シーンは違うがこれだな
ttp://www.geocities.co.jp/AnimeComic-Pastel/3829/words40_Gundam.html
0462デフォルトの名無しさん
2007/05/31(木) 10:02:260463デフォルトの名無しさん
2007/05/31(木) 11:43:19GUIエディタってのがNetBeansなら継承やマーカーインターフェースは普通につけれるし
順番の制御をしたいのならなおさらかと
0464デフォルトの名無しさん
2007/06/01(金) 11:37:19順番制御とか考えなきゃならんなら
最初から手で書けよ感がするけど。
0465デフォルトの名無しさん
2007/06/01(金) 21:38:57JMenuBar で作成したメニューが Canvas3D の背後に隠れてしまうんですが、
解決できないものでしょうか。
0466デフォルトの名無しさん
2007/06/01(金) 21:45:350467465
2007/06/01(金) 21:48:55java.lang.Object
extended by java.awt.Component
extended by java.awt.Canvas
extended by javax.media.j3d.Canvas3D
0468デフォルトの名無しさん
2007/06/01(金) 21:49:57JPopupMenu#setLightWeightPopupEnabled(boolean) に false渡してもだめ?
0469465
2007/06/01(金) 21:53:180470デフォルトの名無しさん
2007/06/01(金) 21:58:08http://java.sun.com/javase/ja/6/docs/ja/api/javax/swing/JMenu.html
> メニューというのは実質的には JPopupMenu が割り当てられたボタンのことです。
JMenu#getPopupMenu()
0471465
2007/06/01(金) 21:58:37JMenu fileMenu = new JMenu("ファイル");
fileMenu.getPopupMenu().setLightWeightPopupEnabled(false);
0472デフォルトの名無しさん
2007/06/01(金) 22:40:36JOGLだったらGLJPanelで問題なしだが
0473デフォルトの名無しさん
2007/06/02(土) 10:24:380474デフォルトの名無しさん
2007/06/02(土) 10:59:080475デフォルトの名無しさん
2007/06/02(土) 11:08:550476デフォルトの名無しさん
2007/06/02(土) 14:40:13Intelのドライバの問題で対応できないのか、対応しないだけなのか分からないけど。。。
0477デフォルトの名無しさん
2007/06/02(土) 17:15:580478デフォルトの名無しさん
2007/06/11(月) 11:25:53ttp://2sen.dip.jp:81/cgi-bin/upgun/up1/source/up5993.jpg
のようにフォントの大部分が太字になってしまいます。
試しに
JFileChooser chooser = new JFileChooser();
chooser.setFont(new Font("Dialog", Font.PLAIN, 12));
のようにしてもダメでした。
どうすればこの太字をFont.PLAINにできるのでしょうか?
識者の方々、どうかアドバイスをお願いいたします。
OS:Windows2000、XP
JDK:1.6.0、1.6.0_01
でそれぞれ試してみました。
0479デフォルトの名無しさん
2007/06/11(月) 12:05:150480デフォルトの名無しさん
2007/06/11(月) 13:15:320481デフォルトの名無しさん
2007/06/11(月) 13:16:55http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/awt/Font.html
0482デフォルトの名無しさん
2007/06/11(月) 14:05:12UIManager.setLookAndFeel()
0483デフォルトの名無しさん
2007/06/11(月) 14:23:31http://amateras.sourceforge.jp/cgi-bin/fswiki/wiki.cgi/free?page=LookAndFeel
フォントを指定して起動する
SwingのデフォルトのLook & FeelであるMetalはメニュー等のフォントがBoldでいまいち見た目がよくありません(JDK1.3までは普通だったのですが…)。JavaVMに起動オプションを与えることで、このフォントを変更することができます。
java -Dswing.plaf.metal.controlFont=Dialog-12 alpha.AppMain
また、JDK1.5ではMetalLookAndFeelでPLAINなフォントを使用するために以下のオプションが利用可能です。
-Dswing.boldMetal=false
コマンドラインオプションではなく、Javaコード中で設定する場合には以下のようにします。
UIManager.put("swing.boldMetal", Boolean.FALSE);
0484478
2007/06/11(月) 15:58:38おおお、ベストアンサーでした。
ありがとうございます!
これで他のコンポーネントもsetFont(new Font("Dialog", Font.PLAIN, 12))をしなくて済みました。
他にもレスをくださった皆様方ありがとうございました。
0485デフォルトの名無しさん
2007/06/11(月) 16:16:400486デフォルトの名無しさん
2007/06/11(月) 17:23:13シンプルで結構良さげだったのだけど。
0487デフォルトの名無しさん
2007/06/11(月) 17:38:110488デフォルトの名無しさん
2007/06/11(月) 21:52:58やってること同じかもしれないけど
http://terai.xrea.jp/Swing/FontChange.html
private void updateFont(final Font font) {
EventQueue.invokeLater(new Runnable() {
public void run() {
FontUIResource fontUIResource = new FontUIResource(font);
UIDefaults defaultTable = UIManager.getLookAndFeelDefaults();
for(Object o: defaultTable.keySet()) {
if(o.toString().toLowerCase().endsWith("font")) {
UIManager.put(o, fontUIResource);
}
}
//SwingUtilities.updateComponentTreeUI(MainPanel.this);
recursiveUpdateUI(MainPanel.this);
frame.pack();
}
});
}
private void recursiveUpdateUI(JComponent p) {
for(Component c: p.getComponents()) {
if(c instanceof JToolBar) {
continue;
}else if(c instanceof JComponent) {
JComponent jc = (JComponent)c;
jc.updateUI();
if(jc.getComponentCount()>0) recursiveUpdateUI(jc);
}
}
}
0489デフォルトの名無しさん
2007/06/11(月) 22:22:00英字さえ見栄えがよけりゃいいって感じかと
0490デフォルトの名無しさん
2007/06/12(火) 02:50:08Swingでアプリを作りたいんです、得意先台帳に送り状印刷機能がついたようなのなんですが。
Accessみたいにプリンタ(ドットインパクト)の指定と用紙サイズ(ヤマトだと15*4 1/2インチ)を指定して、
ボタン一発で印刷ってできるのでしょうか?
詳しい方教えてください。
よろしくお願いします。
0491デフォルトの名無しさん
2007/06/12(火) 03:48:24javaでドラクエ作れますか?て聞いてるのとかわらんな。
最近javaスレでこの流れ多いな。
0492デフォルトの名無しさん
2007/06/12(火) 04:37:400493デフォルトの名無しさん
2007/06/12(火) 08:47:19PrintRequestAttributeSet
0494デフォルトの名無しさん
2007/06/12(火) 10:26:53プリンタドライバ経由ならできるよ。
javax.printパッケージを見るといい。
0495デフォルトの名無しさん
2007/06/12(火) 11:38:35業務系だと連帳は基本だしな
ただ、Swingとあまり関係のないところだな
ネイティブのプリンタのプロパティ使いたい場合awtのダイアログを使ったほうがいい場合もあったような
あとitextあたりでPDFを生成して印刷はAdobeReaderに任せるという方法もある
ヤマトならcsvとかXML作ってヤマトが無料配布している送り状印刷ソフト使う手もある
備考欄とかイマイチ文字数が足りないとかあるけど、細かいカスタマイズがしたいとかなら
予算次第(&個数)だがヤマトシステムに話をしたほうがいいかも
0496デフォルトの名無しさん
2007/06/12(火) 12:32:140497デフォルトの名無しさん
2007/06/12(火) 12:54:31作ってくれるかどうかはお金次第でしょ。
0498デフォルトの名無しさん
2007/06/12(火) 13:35:48地区によっては厳しいところもあるからそういうところはプッシュしてくれる
でも1000部程度で乗せるものによっては自前で印刷したほうがいいかも
長期間にわたって定期的に発送などならちゃんと契約すれば自前で印刷とか梱包もやる必要はないよ
資材とか送るとヤマトのほうで全部やってくれる
1000枚の送り状番号の管理とか印s夏して箱詰めとかが面倒だと思ったら
まずは近くの営業の人(ドライバーとか)に話をしてみるといいかと
0499デフォルトの名無しさん
2007/06/12(火) 13:36:03簡単なんだから自分で作れよ。
0500デフォルトの名無しさん
2007/06/12(火) 23:59:02PDFを使うやり方や、ダイアログを使うやり方だと、
ボタン一発ではないので面倒くさがられてしまいます。
現在の使いかただと、キー入力のスピードに画面の表示が追いつかないくらいなので。
>>493,494氏にお教え頂いたのを勉強してみようと思います。
0501デフォルトの名無しさん
2007/06/13(水) 00:25:39Accessとかで手軽にプレビュー作れてたシステムの置き換えに使うといい
あとダイアログはだす、ださないだけの違いだからどうにでも
現在の使い方だとキー入力に画面が追いつかないってのが意味不明
0502デフォルトの名無しさん
2007/06/13(水) 00:31:46標準で持ってて欲しいとも思うが。
0503デフォルトの名無しさん
2007/06/13(水) 01:56:40どこかのサイトに書いてあったけど本当?
0504デフォルトの名無しさん
2007/06/13(水) 02:52:140505デフォルトの名無しさん
2007/06/13(水) 08:43:41まさに組版並の印刷用途向け中間形式なんだが。
まあ、まともにサポートしてるライブラリは商用ライセンスだが。
xsl-foをjava2dにさえ描画できればあとはどうにでもなる。
てか、○○さん以外ありがとう
とか言ってる奴たまにいるけど馬鹿かこいつら?
0506デフォルトの名無しさん
2007/06/13(水) 09:46:260507デフォルトの名無しさん
2007/06/13(水) 10:04:45選択されてしまうのですが、これを選択されないようにすることはできますか?
0509デフォルトの名無しさん
2007/06/17(日) 23:55:36javax.swing.JOptionPane.showMessageDialog(null, "hello");
で helloと表示されるダイアログが表示されるのですが、
このhelloのフォントってどうやって指定するのでしょうか?
リファレンスみたのですが、どうもそのような設定項目がなくて…
0510デフォルトの名無しさん
2007/06/18(月) 00:12:28将来のバージョンで動作が保障されないとかそういうことになってもいいのかい?
カスタマイズしたダイアログがほしいなら自前で作成すべき
あと最初の引数をnullにする場合なんてありえんと思う
0511デフォルトの名無しさん
2007/06/18(月) 00:30:00コマンドラインから出したり。
0512デフォルトの名無しさん
2007/06/18(月) 10:05:59javax.swing.JOptionPane.showMessageDialog(null, "<html><font size=20 face=\"MS 明朝\">hello</font></html>");
0513デフォルトの名無しさん
2007/06/18(月) 13:40:36LookAndFeel
0514デフォルトの名無しさん
2007/06/18(月) 14:53:271.
LinuxとWindowsで基本的なコントロール(テキストボックスとかリストビューとかグリッド)使ってDBのデータIOを行うアプリを作りたいんだけど
LinuxとWindowsは意識せずにまったく同じソースでいいの?
それともVMごとにコンパイルオプションを指定するような感じになるの?
2.
.NETと比べてUIのモッサリ感はどう?
.NETのモッサリ感は我慢できるレベルだという定義で
内部処理の高速性は気にしないものとします。
0515デフォルトの名無しさん
2007/06/18(月) 15:20:171. 同じソースで同じバイナリ(クラスファイルだけど)でよい
2. 起動はモッサリだが動けばUIの速度は普通(昔はモッサリだったけど最近はよくなってきた)
0516デフォルトの名無しさん
2007/06/18(月) 15:23:55SwingはJava5 Java6 など新しいものの使用をすすめる。
WinFormとどっこいくらいには快適になってる。
0517デフォルトの名無しさん
2007/06/18(月) 16:04:38>>516
レスサンクス
なるほど 話の通り完全に同じソースでいけるわけなんだ
やっぱ便利そうだなぁ
C++でマルチプラットフォーム用の書いてたときはDefine切りまくりで
頭弱いから途中で頭がこんがらがってたしw
モッサリ感は現状最新のものを使って進めていけば.NETと同じレベルになりそうだからその方向でやってみようかなと
本当ははドトネト選ぶ時にJAVAにしようかな?と迷ったんだけど重いって話を腐るほど聞いてたんでドトネトにした
実際使ってみたらドトネトも思ったよりもモッサリで・・・・新しいソフト作る時はJAVAも視野に入れてもいいかもと思いだした
どうもこのスレの感じからすると普通に問題なさそうだからちょっと簡単なソフトから使ってみることにするよ
0518デフォルトの名無しさん
2007/06/18(月) 16:24:28.NETでもそうだけど、メモリは食うね。HDDとメモリが速ければ大丈夫。キャッシュの量にも大きく左右される。
Pentium4系だとJavaの速度は遅めでAthlon64やPentiumM系列はあからさまに速い。
1.4.1以降はGUIの描画にたとえばWindowsだとDirectDrawを使ったりハードウェアアクセラレーションを利用している。
6.0でVMの大幅に速度向上してるのでクライアントサイドなら6.0以上をすすめる。便利なAPIも多いし。
jdkに付属のswingsetデモを見てみるといいかも。
0519デフォルトの名無しさん
2007/06/18(月) 16:41:29起動スクリプトを環境毎に書く必要有り。
つっても path や classpath の指定方法が違うだけなんだけど。
0520デフォルトの名無しさん
2007/06/18(月) 16:58:09まぁアプリによるといえばよるんだけどUI描画全般は遅いと感じてしまう・・・
いい情報サンクス!
クライアントAPPなので とりあえずそのバージョンを最低レベルとして環境整えてみるわ
>起動スクリプトを環境毎に書く必要有り
まぁそれくらいなら別に問題ないとおもうさ
0521デフォルトの名無しさん
2007/06/18(月) 17:17:22MANIFEST.MFのClass-Pathエントリにjarファイル名を並べれば
パス通るよ。
0522デフォルトの名無しさん
2007/06/18(月) 17:34:19ほとんどの場合何もする必要はないと思うが
0523デフォルトの名無しさん
2007/06/18(月) 17:37:35フック用のexeとかスクリプトおいておいたほうがいいけどな
マニフェストファイル内に参考VM設定入れれるようにしてほしいな
webstartは多少入れれるようになったし、アプリケーションの塚と削除、
プログラムやデスクトップアイコン登録やってくれるのはいいが、
肝心のスタンドアロンアプリで出来ないのが納得いかねー
0524デフォルトの名無しさん
2007/06/18(月) 18:00:080525デフォルトの名無しさん
2007/06/18(月) 18:18:13Swingとどういう関係が?
0526デフォルトの名無しさん
2007/06/18(月) 19:22:250527デフォルトの名無しさん
2007/06/19(火) 09:32:28fatjarでまとめてやれば、1個でおk。
ただ、LGPLなライブラリをfatjar化したときのライセンスが気になる。
動的リンクとみなしてくれるのか、静的リンクとみなされるのか。
0528デフォルトの名無しさん
2007/06/19(火) 11:43:12静的なのか動的なのかでは動きは変わらない
LGPLはライブラリのバージョンアップなどが合った場合差し替える権利を保証するだけ
だからアーカイブ方法を提示してあげるだけだよ
静的だとオブジェクトファイルやコンパイル時のバージョンなどを明記すればよかったが
動的だと差し替えが容易なのでその記述が簡略化されるだけ
0529デフォルトの名無しさん
2007/06/25(月) 23:13:07Java6で濁点入り文字列をJLabelで表示すると濁点が1文字として表示されるんですが、
普通に1文字で表示してしかもカーソルがずれない方法ないもんでしょうか?
0530デフォルトの名無しさん
2007/06/25(月) 23:28:09俺はずれたことないのだけれども、そのずれる文字コードはなに?
0531デフォルトの名無しさん
2007/06/26(火) 02:08:430532529
2007/06/26(火) 02:34:40MacのSwingの話です・・・
Mac板逝ってきます。
0533デフォルトの名無しさん
2007/06/26(火) 10:51:45その違いは仕様で片付けるにはあんまりだな。
0534デフォルトの名無しさん
2007/06/26(火) 12:43:310535デフォルトの名無しさん
2007/06/26(火) 14:51:270536デフォルトの名無しさん
2007/06/26(火) 14:53:31再現コードがほしい
|-`).。oO(・・・・・・MacのMustangの日本語に関する問題としては、
レンダリングエンジンの問題の件、直るのか?
QuartzというMac固有のレンダリングエンジンからSunのレンダリングエンジンに変更されて
フォントの種類によってベース位置がずれる問題・・・。
半年以上前から、MacのJavaスレで報告されていたのに、新しい開発版Javaが出てこないから
直してるのかわからねえ・・・)
0537デフォルトの名無しさん
2007/06/26(火) 14:57:24Mac OS Xって NFD じゃなかったっけ?
1.6以降なら java.text.Normalizer あるから簡単に NFC に変換できる。
1.5以前は知らん。あと NFC に変換してもフォントが対応してるか俺は知らん。
0538デフォルトの名無しさん
2007/06/26(火) 17:41:34charsetとencoding混同してる時点で伝わってないかと。
0539デフォルトの名無しさん
2007/06/26(火) 18:26:19Swingがいまひとつ冴えないのは何でだろう。素人的に考えるに、次の
2点だと思う。
(�@)開発ツールあまりに貧弱
VisualEditorというものを使ったが、遅くて快適に使えない。
ちなみにメモリ1G。かつてのVisualBasicとどうしてもくらべて
しまうが、なぜこれほどの差があり、差がちじまないのか。
(�U)見栄えが今ひとつ
フォントなど見栄えが悪い。アンチエイリアス「java -Dswing.aatext=true」
なども使ってみたが今ひとつ。
(いちいち引き合いにして悪いが、従来のVBでつくった画面にくらべると
そう感じざるをえない)
それ以外にも少し機能が貧弱な面があるが、少なくともこの2点が
改善されたら、俺は積極的に使いたいと思う。
フリーソフトニいろいろケチをつけて申し訳ないが・・
0540気まぐれアナスイ
2007/06/26(火) 18:43:35開発し易いsoft.と云うのは構成配置を覚えるにはいいですが?
そのsoft.を使用し作成されたapplication.と云う物は、
必ずsoft.に依存します… 当たり前に規約にも影響する物です。
0541デフォルトの名無しさん
2007/06/26(火) 18:49:31何故Netbeansを使わない。
そして、aatext=trueは、・・・・
まずは、>>539の知識を広げるところから始めた方が有用そうだ。
Swingの表現力を見るために、V2Cを見てみることをおすすめします。
0542デフォルトの名無しさん
2007/06/26(火) 18:57:12結構お客さん、こだわるんだよなあ。
0543デフォルトの名無しさん
2007/06/26(火) 19:02:59さらに引数与えても捨ててるはずだけど。
LCDテキスト用AAアルゴリズムが追加されたけど実行後にプログラマが
最適なアルゴリズム選ぶ手段がjavaには無い事ない?
javaらしいって言ったらSwingの描画は全てJava2DだからJava2Dでできることは全て
GUIへフィードバックできるよね。
0544デフォルトの名無しさん
2007/06/26(火) 19:05:59V2Cを見ました。
すばらしい!
たぶんソースコードは公開されてないんでしょうね
0545デフォルトの名無しさん
2007/06/26(火) 19:06:08プラットフォーム互換性を持つ反面、使いづらいレイアウトマネージャ、
デザパタの教科書に使えるくらい美しい(と言われる)が、取っつき悪いクラス設計、
そして優れたGUIデザイナといわれるNetBeansがマイナー扱い。
業務でJava GUIクライアント作ったんだが、
他の連中がメンテできない。正直公開している。
ま、他の連中のスキル不足とかノウハウ共有が悪いとか、
他に理由はあるんだけどさ。
0546545
2007/06/26(火) 19:07:090547デフォルトの名無しさん
2007/06/26(火) 19:09:55VisualEditorを使った理由。
Eclipseを使っていたから。
たまたま市販の参考書が多かったから
今後はNetbeanにシフトしたいな
SUN純正だし
0548デフォルトの名無しさん
2007/06/26(火) 19:17:57GUIは中途半端なMVCだけどな
■ このスレッドは過去ログ倉庫に格納されています