Javaを使用してWindows上でネイティブに見えるアプリケーションを作成することは可能ですか?ソリューションが移植可能かどうかは気にしません。私はWindowsユーザーをターゲットにすることしか考えていないからです。 Scalaを使用しています。Windows上でJavaアプリケーションをネイティブに見せる方法 - 方法
申し訳ありませんが詳細が不明ですが、以前はJavaを使用していませんでしたので、これが可能かどうかはわかりません。
Javaを使用してWindows上でネイティブに見えるアプリケーションを作成することは可能ですか?ソリューションが移植可能かどうかは気にしません。私はWindowsユーザーをターゲットにすることしか考えていないからです。 Scalaを使用しています。Windows上でJavaアプリケーションをネイティブに見せる方法 - 方法
申し訳ありませんが詳細が不明ですが、以前はJavaを使用していませんでしたので、これが可能かどうかはわかりません。
try {
// Set the Look and Feel of the application to the operating
// system's look and feel.
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (ClassNotFoundException e) {
}
catch (InstantiationException e) {
}
catch (IllegalAccessException e) {
}
catch (UnsupportedLookAndFeelException e) {
}
これは、ルックアンドフィールをシステムのルックアンドフィールに設定する必要があります。これはあなたのGUIコードの前に行います。たとえば、main
の方法です。
ルックアンドフィールの詳細については、Java Tutorial on them,as suggested by carwashをご覧ください。
この答えには暗黙のうちに*制御用の*スイングが含まれています。これは、従来のJavaの知恵と公式のSunのパッケージであり、誰もそれを助言する責任がありません。しかし、あなたはネイティブのコントロールを取得しませんし、偽装されたものは誰をだますことはありません。 EclipseがEclipseに無料で提供したとき、SunはSWTを受け入れるべきだった。つまり、Sunはデスクトップクライアントアプリケーションには適していないウィジェット(SwingとAWT)しか提供していません。その結果、彼らはほとんど何も持ち合わせておらず、スイングを落としているようです。 – DigitalRoss
私はスイングを使用し、私は「偽装された」コントロールにだまされています。このコードを使用すると、Swingがどのように見えず、Windowsのように動作しないかを説明してください。 –
それは実際にはMac上で、非常にひどく、吸う。 – AlBlue
はい、JavaではWindows固有のルックアンドフィールをWindowsで利用できます。あなたのルック・アンド・フィールを変える方法を見てください。そうすれば正しい方向に向かうはずです。
あなたのような何かをしたい:(。もちろん、Windows上でのみ動作します)
UIManager.setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
を結果が見えると合理的にネイティブな感じ。例: here。
これはWindows上でのみ動作します。別のシステムにいた場合、 'UnsupportedLookAndFeelException'がスローされます。 –
OPには「私はWindowsユーザーをターゲットにする」と述べています。そして、ええ、私は主なポイントに集中するためにtry-catchを省略しました。 (これはチェック例外なので、コンパイラは実際のコードから忘れてしまった人に思い出させるでしょう:) – Jonik
はこちらをご覧ください:Java™ Tutorials: How to Set the Look and Feel
try {
// Set System L&F
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
}
catch (UnsupportedLookAndFeelException e) {
// handle exception
}
あなたは、Windowsのルックアンドフィールを使用する必要があります。
あなたは、コマンドラインでそれを指定することができます。ここでは
java -Dswing.defaultlaf=com.sun.java.swing.plaf.windows.WindowsLookAndFeel MyApp
またはコードで
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
は、詳細は以下のとおりです。How to set the look and feel
あなたはネイティブLook&Feel
みんなを使用する必要があります他にもSwingのものが掲載されているので、私はplaに行くつもりですy悪魔の主張者は、SWTと言います。
SWTはEclipse Foundationによって作成されたウィジェットツールキットです。 Windows、OSX、そして* nix(Linux、AIX、BSDなど)のさまざまな味のために、システムのネイティブGUIを覆う薄いラッパーです。
これは、SunのJFC/Swingが取った独自のコンポーネントを描画する反対のルートです。
Eclipse RCP開発の外でSWTをSwingに使用する利点は何か不思議です。私はほとんどのOSがUIManager.getSystemLookAndFeelClassName()によってカバーされていると思います。なぜこの目的のために外部ライブラリを持ち込みたいのですか? –
私は多くのデスクトップアプリケーション開発をしていませんが、主な利点は、Swingのような独自のコンポーネントを描画するのではなく、OSのネイティブレンダリングライブラリを使用することです。 – Powerlord
高レベルのSWTとスイングはここをクリック:http://www.developer.com/java/other/article.php/10936_2179061_2/Swing-and-SWT-A-Tale-of-Two-Java-GUI-Libraries.htm – Smalltown2k
.NETで開発しますか?申し訳ありませんが抵抗できませんでした。 ;) – dkackman
ネイティブコントロールが重要であることに同意します。すべての成功したメインストリームアプリは、ネイティブコントロールを使用しています。あなたは2つの選択肢があります。(1)Swingのようなウィジェットを使用して、ネイティブな外観を偽造しようとします。これは決して完全には機能しません。時にはそれは完全に恐ろしいものです。 (2)(ほとんど)ネイティブウィジェットの周りのJavaラッパーであるSWTのようなウィジェットセットを使用します。これは完全に機能します。コアディストリビューションにSWTのようなパッケージがないことは、クライアント上でJavaの運命を決めることです。 (はい、Javaはサーバーといくつかのエンタープライズデスクトップで大成功です。) – DigitalRoss