Java低速GUI Swing 2
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
NGNG前スレ
http://pc5.2ch.net/test/read.cgi/tech/1062271447/l50
参考スレ
Java 高速GUI SWT 2
http://pc5.2ch.net/test/read.cgi/tech/1068349883/l50
0286デフォルトの名無しさん
NGNG仕事なら、RAD環境のあるSwing。
手書きでGUI書くのは、むなしい。
0287デフォルトの名無しさん
NGNG0288デフォルトの名無しさん
NGNG手討ち??
0289デフォルトの名無しさん
NGNG> インターフェイス=見た目 だと思ってるバカ
271がいってるインターフェースは話の流れから察するにLook&Feelの
ことみたいだから見た目であってると思う。
んで、272のいってるUIマネージャ変えるってのはUIManager使って
Look&Feelを変更しろってことだと思う。たぶん。
自作のアプリじゃない場合は、オプションなどでデフォルトのLook&Feel
を指定すればいい。
> java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp
0290デフォルトの名無しさん
NGNG仕組ってないのかしらん?
今自前のAbstractTableModelとTableModelListenerを使ってやってるんだけど、
セルにデータを保存するとき、選択行が変わろうとするとき
で別々のリスナーを作らないと共通に使える仕組が作れないっぽい
0291デフォルトの名無しさん
NGNGNetBeansで。
0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNGVisual Editorはeclipseプロジェクト内の発足だし、Version1.0もリリースされたから、結構使えるんじゃないかと思ってたんだが。
0294デフォルトの名無しさん
NGNG1.0になったというのはSwingを改良したというよりはSWT対応という意味が大きい
0295デフォルトの名無しさん
NGNGなんで使い物にならないんだ?
逆に、SWTなら、使い物になるのか・・・?
0296デフォルトの名無しさん
NGNG0297デフォルトの名無しさん
NGNG使用者の感想はどうですか。
0298デフォルトの名無しさん
NGNGちょっと品質悪いよね。1.1の計画からもSpring layout
対応とか外れるみたいだし、Swingに力が入ってるとは
思えないな。かといってSWT対応も主担当はIBMじゃなくて
ISCらしいし、どっちもIBMがまじめにやってる感じじゃなかったな。
まあVE1.0の見所を強いていうならEclipse3.0に対応し
ましたってとこじゃないの? 来週RAD6発売だけどVE1.0
からどこまで枯れたか見もの。
0299デフォルトの名無しさん
NGNGでもGUIエディタとしてNetBeansが細かいことができすぎる
ウィザードやら親切なものがJBuilderのほうが満載なので
最初にIDEにふれるならEclipseやNetBenasよりは先にさわらせたいかなぁ
地味にDB管理ツールがらくだったり
0300デフォルトの名無しさん
NGNGSWTスレのぞいてみなされとしか
0301デフォルトの名無しさん
NGNG作るみたいだし、貧弱な実行環境向けでは残るんじゃないかな。
SwingもJ2ME向けにProfile作ればいいのにな。最近のPDAならそろそろ
いい気がする。
0302デフォルトの名無しさん
NGNG0303デフォルトの名無しさん
NGNG0304デフォルトの名無しさん
NGNG0305デフォルトの名無しさん
NGNGおかしいとはいわないけど、量産にはむかない。
0306デフォルトの名無しさん
NGNGツールの場合はRADのうまみがあまりないので、問題ないと思う。
業務システムで年端もいかないプログラマにコーディングさせると問題。
0307デフォルトの名無しさん
NGNG0308デフォルトの名無しさん
NGNGそれと、ツールの場合、画面の動的な制御が多いから、RADであらかじめ画面を作れてもおいしくない。
0309デフォルトの名無しさん
NGNGhttp://www.swixml.org/samples/index.html
SwiXml, is a small GUI generating engine for Java applications and applets. Graphical User Interfaces are described in XML documents that are parsed at runtime and rendered into javax.swing objects.
…いや、ThinletとかSwingMLでもいいかもしれないんだけどね
0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNGすごいネーミングのセンスだな。
Xwingじゃだめだったのか?
0312デフォルトの名無しさん
NGNGXwingは商標的な面倒に巻きこまれそうだ。
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNGそれだ!
っていうか「NetBeansのフォーム定義XML」ってどういうの?
どっかに仕様書とかある?
.formファイルの例ってない?
ttp://jp.sun.com/software/sundev/ffj30/faq/GUI.html
とか見つけたけど、詳しく書いてないし。
当方eclipseユーザなもので…。
0317310
NGNG本気では探してないけど。
NetBeansのXML定義からSpringやSeasarのBean定義に変換するのもおいしそう。
そんなアイデアも、form定義の仕様を探さないことには。
実際には、イベントまわりの実装に腐心しそうだ。
0318デフォルトの名無しさん
NGNG0319309,316
NGNGSwiXmlの場合、
SwingEngine#render("コンポーネントのViewの定義.xml")で、
コンポーネントのツリーを組み立ててから、
SwingEngine#find("コンポーネントの名前")で、
該当するオブジェクトの参照を取り出して、
そこにイベントハンドラをaddしてゆく、
…というのが基本的な使い方になります。
>>317
このSwiXmlみたいに、
「XMLはViewを定義するだけ。Model や Controller は、Javaでソースを書け!」
ってことにして、とりあえず切り放して考える、というのもアリだと思うよ。
0320デフォルトの名無しさん
NGNGうん、おれは話題からして、UIをXMLからロードして作れる程度のものを想像していた。
SwingUIMgr mgr = new SwingUIMgr( hoge.xml);
JFrame frame = mgr.getJFrame( "hoge");
てな感じで。あとはframeつかって好きにしろや、ってことでよろしく。
0321デフォルトの名無しさん
NGNGイベントとかの嵐だしプロパティをガンガンいじるからなぁ
0322デフォルトの名無しさん
NGNGXSLTでSwiXmlに変換して使えるとしたら、
実装はわりと簡単になるよな。
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNGどんな書き方になるの?
0325デフォルトの名無しさん
NGNGttp://groovy.codehaus.org/GroovyMarkup
0326デフォルトの名無しさん
NGNG現実的な話をすると、OGNLとか式言語を使えるようにして、リスナーを追加できるようにするのがいいのかと。
0327デフォルトの名無しさん
NGNG0328デフォルトの名無しさん
NGNGできれば無料ので
0329デフォルトの名無しさん
NGNG0330!= 328
NGNG何を勉強すればいいんですか?
0331デフォルトの名無しさん
NGNG0332名無し
NGNG0333デフォルトの名無しさん
NGNGLinuxでは駄目なのね
悪いのは俺なのかJavaなのかLinuxなのか…
0334デフォルトの名無しさん
NGNGなんの話?
0336デフォルトの名無しさん
NGNGどっちかというと、「Linux」の名のもとにクリップボードの仕組みを統一できてないLinuxが悪いね。
0337デフォルトの名無しさん
NGNGGUIを実装したいのですが何を使ったらよいでしょうか?
javaでswingを使うなど考えたんですが、CUIとのデータのやり取り
が大変そう(自分の実力のなさから、、、)でどうしたものか悩んでるところです。
CUI側プログラムにwebサーバを実装して、GUI(javaが適当?)プログラムでは、
local接続して値をやりとりするってのはどうなんでしょか?
0338デフォルトの名無しさん
NGNG0339デフォルトの名無しさん
NGNGCUI側のプログラムを別のマシンで動かそうという考えがなければ別にソケット使う必要はないよ
(別のマシンで動かす場合でもwebサーバー実装は大げさというか無意味)
0340デフォルトの名無しさん
NGNGそこでjettyですよ
http://jetty.mortbay.org/jetty/
0341デフォルトの名無しさん
NGNGRMIが楽じゃないの?
0342デフォルトの名無しさん
NGNGSwingってべつにそんなにたいへんなものではないし、レイアウトマネージャ理解してくれば別に問題なし
とりあえずNetBeansいれてぺたぺた貼り付けてみて問題があったらまた質問するがよろし
0343デフォルトの名無しさん
NGNG0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGunameが「Darwin」だったら、てなところがあるんだよな。
で試しにMac OS X独自のプロパティ「apple.laf.useScreenMenuBar」を追加して、trueに
してみた。起動してみたらちゃんとMacのメニューバーになってやがる。
これNetbeans 3.6のころはちゃんと動かなかったんだよ。しかしDarwinだったら特殊な
プロパティを設定するような起動ロジックを入れるんなら、はじめからこのプロパティも
設定しときゃいいのに....
0346345
NGNGNetbeansスレに逝ってくる...orz
0347デフォルトの名無しさん
NGNGする方法ってありますか?
0348デフォルトの名無しさん
NGNGスクロールバーの値を取得して
JTableのrowAtPointを使えばいいんじゃない?
0349デフォルトの名無しさん
NGNGにはどうすればよいですか?
0350デフォルトの名無しさん
NGNGJTable自身はスクロールバーを持たない。
持つのは、JTableをviewに設定したJViewport。
あとはJViewportの持つJScrollBarを拾ってきてあれこれする。
0351デフォルトの名無しさん
NGNGatmarkit にも ほとんど同じ質問が出てるな。
そーいや Eclipse スレだったか SWT スレだったかで
JTable 使えねーとかわめいてる奴もいたな。
0352デフォルトの名無しさん
NGNG0354デフォルトの名無しさん
NGNGそれと起動時からルックフィールをWindowモードにするのも教えてください。
0355デフォルトの名無しさん
NGNGframe.setExtendedState(Frame.MAXIMIZED);
setStateというメソッドもあるが、アイコン化と通常状態への戻ししかできない。
・起動時にL&FをWindowsに。
ウィンドウを1つでも開く前に
UIManager.setDefaultLookAndFeel(クラス名);
クラス名は
XP風なら
"com.sun.java.swing.plaf.windows.WindowsLookAndFeel"
それ以前の(95以降XPより前)なら
"com.sun.java.swing.plaf.windows.WindowsClassicLookAndFeel"
作ってしまったウィンドウのL&Fを変えるには、
そのあとで
SwingUtilities.updateComponentTreeUI(最上位のComponent);
する。invokeLaterから呼ばないとダメかも。
0356デフォルトの名無しさん
NGNG0357355
NGNG御意。
もとの質問者の意図が、
「どんなプラットフォームで動かされたときでもWindows L&Fにしたい」
なら355の方法、354がたまたまWindowsを使っていて、
「動いているプラットフォームの標準L&Fにしたい」なら、クラス名の所は
UIManager.getSystemLookAndFeelClassName()
の返値を使ってくれ。
0358デフォルトの名無しさん
NGNG>>355 は Windows 以外じゃ動かないんじゃない?
0359デフォルトの名無しさん
NGNGsunのWindowsLAFが用意されてる環境なら、どんなプラットフォームでも動くけど、デフォルトやライセンス的にはWindowsだけだな。
厳密にいえば、355は特別なことをしてなければWindows上のSunのVMでしか動かないね。
0360デフォルトの名無しさん
NGNG0361デフォルトの名無しさん
NGNGSwing部品で、手入力可能な部品があるぢゃないですか?
(例えば、JTextFieldやJComboBox)
その部品で以下の現象が発生します。
IMEを起動し、よみ入力状態(未確定)中に
Ctrl+V(ペースト)を押下するとExceptionが発生する。
※JDK1.3でも1.4でも発生するようです。
この問題の回避方法を検討しているのですが、
良い方法が思いつきません。
過去に解決した方いらっしゃいましたらアドバイスおながいします。
あと、この問題を解決する上で一つ試してみたい方法があります。
「現在読み入力中である。」というのが分かれば
その時だけCtrl+Vをconsumeしてやれば
回避できそうな気がしているのですが、
Javaで「現在読み入力中である。」というのは
判断可能なんでしたっけ???
教えてくんですんませんが、よろしくです。
0362361
NGNG読み入力中かどうか判断できたので、
コピペのキーイベントを消費すれば
回避はできますたー。
でも、これってswingの
障害に見えるのですけど
どーなんですかねぇ???(*´д`*)
0363デフォルトの名無しさん
NGNGWindows2000SP4 & j2sdk-1.4.2_06 の環境では発生しないんだけど、
そちらの環境はどんな?
0364デフォルトの名無しさん
NGNGあと、IME に何をつかってるかにもよるのかも?
WindowsXP + MS-IME
java version "1.5.0_01"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_01-b08)
Java HotSpot(TM) Client VM (build 1.5.0_01-b08, mixed mode, sharing)
だと例外は出ない。
0365デフォルトの名無しさん
NGNG0366デフォルトの名無しさん
NGNG0367デフォルトの名無しさん
NGNG0368デフォルトの名無しさん
NGNG0369デフォルトの名無しさん
NGNG0370361
NGNG1.3.1_01は、以下のVMです。
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_01a)
Java HotSpot(TM) Client VM (build 1.3.1_01, mixed mode)
1.4.1_03は失念です。。。…(;´Д`)
発生Exceptionはこんな感じ。
java.lang.IllegalArgumentException: Invalid substring range
at java.text.AttributedString$AttributedStringIterator.<init>(Unknown Source)
at java.text.AttributedString.getIterator(Unknown Source)
at javax.swing.text.Utilities.drawComposedText(Unknown Source)
at javax.swing.text.PlainView.drawElement(Unknown Source)
at javax.swing.text.PlainView.drawLine(Unknown Source)
at javax.swing.text.PlainView.paint(Unknown Source)
at javax.swing.text.FieldView.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI$RootView.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.paintSafely(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.paint(Unknown Source)
at javax.swing.plaf.basic.BasicTextUI.update(Unknown Source)
at javax.swing.JComponent.paintComponent(Unknown Source)
at javax.swing.JComponent.paint(Unknown Source)
at javax.swing.JComponent.paintWithBuffer(Unknown Source)
at javax.swing.JComponent._paintImmediately(Unknown Source)
at javax.swing.JComponent.paintImmediately(Unknown Source)
at javax.swing.RepaintManager.paintDirtyRegions(Unknown Source)
at javax.swing.SystemEventQueueUtilities$ComponentWorkRequest.run(Unknown Source)
at java.awt.event.InvocationEvent.dispatch(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
0371361
NGNGWindowsXP SP1 + MS-IME
ですた。
0372デフォルトの名無しさん
NGNG0373デフォルトの名無しさん
NGNG1.4.1だけみても_07までいってるわけだしな
1.3.1なんて_14だ
0374デフォルトの名無しさん
NGNG1.3.1の最新と1.4.1の最新で試してみたら?
0375デフォルトの名無しさん
NGNG1.3.1 も 1.4.1 も例外吐くね。素直に 1.4.2 を使えって事か。
java version "1.3.1_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.3.1_15-b01)
Java HotSpot(TM) Client VM (build 1.3.1_15-b01, mixed mode)
java version "1.4.1_07"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.1_07-b02)
Java HotSpot(TM) Client VM (build 1.4.1_07-b02, mixed mode)
0376デフォルトの名無しさん
NGNG1.3.1は1.3系最終だからきっついな
どっちにしろ移行フェーズにはいってるVMだからなんとも
0377デフォルトの名無しさん
NGNG0378デフォルトの名無しさん
NGNG1.3 で Swing 使うならその程度の不具合があっても我慢しろ、でなくて?
0379デフォルトの名無しさん
NGNG0380デフォルトの名無しさん
NGNGSwing が重いのは 1.3 に限った事ではない。
スレタイにも低速って書いてあるしな。
0381デフォルトの名無しさん
NGNG0382361
NGNGま、みなさんのご意見は
ごもっともですわぁ。
ただ、いろいろ事情があって
そう簡単にバージョンも
上げられんのですよ。
swingの障害だということが
分かったことだけでも
ちょっとスッキリ?です。
http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=4686956
0383デフォルトの名無しさん
NGNG0384デフォルトの名無しさん
NGNGUIManager.put("OptionPane.okButtonText", "表示させたい文字列");
0385デフォルトの名無しさん
NGNGありがとうございます。
もひとつ、ウィンドウの大きさを固定するには(ウィンドウの角にマウスを合せても何もできない)
どうしたらいいでしょうか?
■ このスレッドは過去ログ倉庫に格納されています