2011-03-22 5 views
1

Java GUIに関する議論をしたいと思っていますが、私はまだ学校に通っており、クラスのためのlight gui開発を行っています(簡単に説明しました)Java GUIの開発、JComponentsの管理と設定

私は何もできませんでした、私は素敵なクリーンなレイアウトを作りたいと思っていましたが、最大限に活用するとすべてが見えなくなり、悪化しました。 JButtonは、GridLayoutの中に入れたり、ボタンのサイズを明確に指定したりすると、行全体に広がっていました.Java GUIの開発では、頭がおかしくなりました。

Microsoft WPF/XAML UIの開発はより簡単ですが、HTML/CSSのように感じました。幅、高さ、マージン、およびパディングを設定することは素晴らしいことです。私のコンポーネントがどこに置かれているかを知っていれば、心が楽になります。また、カスタムルックアンドフィールをデザインすることもできます。

Java GUI開発を開始した人のためのヒントとリソースがあるかどうかを知りたいと思っていました。そして私が得られないことの1つは、JFrame、すなわちゲームで新しいアイテムを立ち上げることです。

あなたの4つのボタンであなたのパネルに向けてあなたの指示を開始します。

プレイゲーム - ゲームをプレイするための新しいパネルに移動します。 ロビー - インターフェイス などのチャットにあなたを連れて行きます

これらはパネルである必要がありますか?または、ユーザーがボタンをクリックしたときのように、JFrameをプレイゲームJFrameを起動し、メニューJFrameを閉じます。私は本当にJavaのguisのアイデアはありません。

答えて

2

まずはMig Layoutをご覧ください。これは本当のフル機能のレイアウトマネージャーであり、現在利用可能な最良のレイアウトマネージャーです。何らかの理由で外部依存関係を使用できない場合は、GridBagLayoutを調べることをお勧めします。 GridBagLayoutは必要なものすべてを実行するのに十分強力ですが、Mig Layoutのような使い方は簡単ではありません。

ビルドするアプリケーションの99%で、単一のJFrameがあり、JPanelsを移行して別の画面を表示するだけです。

+0

MigLayoutはすでにかなりのレイアウトになっているようです。 – Bombcode

3

適切なレイアウトマネージャを理解し、使用していることを確認してください。このSwingチュートリアルは、それぞれの動作の学習に非常に役立ちます。http://download.oracle.com/javase/tutorial/uiswing/layout/visual.html

また、別のレイヤー内にパネルを配置することでレイヤーレイアウトを行うこともできます。これは、物事を単純に保ちながら所望の効果を達成するために必要なことがあります。

最後の質問では、フレームの前に追加のパネルを追加することができるパネルにボタンを追加することができます。

2

最初に、UIパネルを構築する際の私の経験則の1つは、場所やサイズを直接設定しないことです。

次に、推奨される最小サイズまたは最大サイズを決してピクセル単位で設定しないようにします(DPI解像度を高くしたり低くしたりすると、モニタから別のモニタに切り替えるときに邪魔になります)。私のブログのthis postを見てください。かなり古いですが、今日もなお便利です。

第3に、パネルをパネルに埋め込むことを避けようとしています。これは、コンポーネントのアライメントの問題と一貫性のないコンポーネントのサイズにつながります。

最後にフォームのほとんどにDesignGridLayoutを使用しようとしましたが、UIレイアウトが複雑すぎる場合はGridBagLayoutに戻すこともあります(複雑なUIレイアウトはUIデザインの悪い兆候かもしれません)。(一般的には任意のUIツールキットではなく、特にスイングで)UIアプリケーションを構築する方法についての一般的な意見としては、そこに存在するseveral recommendations

があるが、具体的な実装を見つけるのは難しいです、あなたが読まなければなりませんこれらについて多くのことを学び、次にあなたのために最適な方法を見つけようとします。

0

はい、ようこそHTML/Javascript/CSSと比較すると、学習に費やされた時間と同等のレベルで洗練されたものを得ることができます。

(私はここでは何のためにあなたのためのすべてのファイルを調達していない - Googleと見上げ開始)。

私の経験では、1000万のドキュメントを読んだりデモで遊んだり、毎晩3〜4か月間2〜3時間過ごしていて、あなたはいくつかのアイデアを持っています。なぜそうでないのか分かりません。それは素晴らしい。あなたは働くことを望んで、それを実装し、あなたのGUIの残りの部分をf * ckに進めます。

Javaのスイングは、私の意見では、必死に自分のJComponentのをアニメーション化し、あなたが好きな方法でそれらをレンダリングしますオープンソースjQueryのタイプのプラグインライブラリのために泣いています。そのデスクトップ上の明確な第二種市民、特にCSS/HTMLブラウザのレンダリングの洗練はここ数年で改善されています。

光背の外観とスタイルは間違いなく正しい方向への改善であると感じています。

また、JavaFxに移動することもできます。がんばろう。どうやらそれはかなり良い。私はまだ時間も忍耐も持っていません。

thirdpartyライブラリを使用することが許可されている場合:JAXXをオプションで試してください。アイデアはCSSスタイルの実装を作成することでした。ここでは、スタイリング要素はファイルに分割され、すぐに設定とテストを行うことができます。

は良い導入のために、ここで読む:

JavaCSSがJAXXプロジェクトで発見されtoday.java.net/pub/a/today/2006/03/30/introducing-jaxx.html。 JAXXは、スイングGUIインターフェイスのXML形式のスタイル実装です。 XML文書とCSSスタイル文書を作成し、GUIの入力と出力をJava実装エンジンにバインドすることができます。 CSSスタイルの文書は、素早く洗練されたGUI開発を可能にします。 jaxx jarエンジンを使用すると、xmlコードがjavaコードに変換され、.javaクラスファイルにデプロイされた場合と同じ速度で実行されます。

プロジェクトは、プログラマのフランスのグループが継続し、ここで見つけることが今であるされていますhttp://www.nuiton.org/projects/jaxx/files

デモは、少なくともかなりあるとほとんどのものが動作するように見えます。

最新のリリースはJAXX 2.4.2です。最新の更新は2011年5月または6月でした。フランス語では、ドキュメントはまだ英語で理解可能です。ちょうど翻訳する。

JAXXの元イーサンニコラスファイルは17-07-2009

http://sourceforge.net/projects/jaxx/

に最後に更新されましたのでご注意ください。www.jaxxframework.org/wiki/Main_Pageは死んでリンクされ、サイトが中止されます。代わりにミラーが作成されており、buix.labs.libre-entreprise.org/original-jaxx/www.jaxxframework.org/wiki/Main_Pageにあります。html

この文書は、jaxxの意味と目的とその使用方法を理解する上で不可欠です。あなたが患者であれば


、またあなたのコンポーネントをアニメーション化するために、チェットハーゼによるタイミングのフレームワークを見て、多くの時間を持っている、と興味を持っている、洗練されたエフェクトを作成することが可能です。学習の時間と時間が必要です。

また、プロのサードパーティ製のライブラリによって処理されるguiコンポーネントを取得するのに費用がかかりますか? (ええと、明白な答えは、誰もが時間を過ごしてきたし、かなりのGUIを作成することを学ぶ努力は、それを手渡すつもりです)。

3年間学習してから、他の人たちからmoolaを求めてください。

もう1つのアイデア - 私は非常に探求していますが、誰もが簡単に言っているにもかかわらず、実装するのは悪夢かもしれないようですが、オープンソースのWebブラウザhtml/csssレンダラーを埋め込み、 CSS/JQuery/HTML

しかし、まずソースからWebブラウザ(mozilla)をコンパイルしてから別のプログラム(JRexなど)にラップして、Jettyのようなミニクライアントサーバーにすべてを置く必要があるようですあなたは途中で好きなフロントエンドの実装を持っています。

これは、ブラウザが実際にCSS2標準とHTML4に準拠している場合のみです。 HTML5については忘れてください。それは未来のためです。

今日、私はうんざりしていますが、私はグリップが完全に正当化されていないとは思わない。

関連する問題