2

JavaのMacでNetbeansGUIビルダーを使用して構築されています。

これは、NetbeansでのGUIの外観です。

NetbeansGUI

プレビューをクリックすると、それほど悪くはありませんが、小さな変更があります。

GUIプレビュー

最後に、実行すると次のようになります。-ひどい

ルックアンドフィール

Javaの「ルックアンドフィール」と関係があると思います。これを削除しようとしましたが、GUIが混乱します。だから私のオプションは何ですか?Netbeansにすべてが並んでいることがわかるように、実行するとすべてが混乱します。

何か案は?これをいじって一日を過ごし、控えめに言ってもうんざりしている

4

3 に答える 3

5

コードのどこかで、Netbeans がメソッドを作成したはずです(mainこれは、Netbeans が実行するクラス内にあり、おそらくマスター フレームです。SPPMainGUI

これは次のようになります (「折りたたまれている」可能性があるため、最初のコメントとdecs2 番目のコメント ( Look and feel setting code (optional)) のみが表示されることに注意してください) 。

/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
 * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
 */
try {
    for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
        if ("Nimbus".equals(info.getName())) {
            javax.swing.UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (ClassNotFoundException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

余白の小さな + をクリックしてコード ブロックを展開しfor-loopUIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());以下のように置き換えます。

/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
 * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
 */
try {
    UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
} catch (ClassNotFoundException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
    java.util.logging.Logger.getLogger(NewJFrame.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
}
//</editor-fold>

アフサントスが問題を特定したので、彼の答えが正しいとして受け入れていただければ幸いです(代わりに私に賛成票を投じてください;)、ナッジ、ナッジ、ウィンク、ウィンク、これ以上は言わないでください)

于 2013-02-19T23:15:06.820 に答える
5

見た目からすると、Netbeans のプレビューは、アプリケーションの実行時に Java が使用するルック アンド フィールとは異なるルック アンド フィールを使用しています。
ただし、必要なルック アンド フィールを手動で設定することもできます。ルック アンド フィールを取得および設定する方法については、Oracleのチュートリアルがあります。

于 2013-02-19T22:38:03.927 に答える
1

あなたが言及したように、それはルック アンド フィールに関係しているため、実際には、L&F Netbeans がデフォルトで使用するものを見つける場合の唯一の問題です。Google がこのページを表示しました。引用します、

NetBeans 7 では、デフォルトのルック アンド フィールは自動的に Nimbus ルック アンド フィールに設定されます。

オラクルから:

Nimbus は、Java SE 6 Update 10 (6u10) リリースで導入された、洗練されたクロスプラットフォームのルック アンド フィールです。

Nimbus ルック アンド フィールを有効にするには、次のわかりやすい行をどこかに追加するだけです。

try {
    for (LookAndFeelInfo info : UIManager.getInstalledLookAndFeels()) {
        if ("Nimbus".equals(info.getName())) {
            UIManager.setLookAndFeel(info.getClassName());
            break;
        }
    }
} catch (Exception e) {
    // If Nimbus is not available, you can set the GUI to another look and feel.
}
于 2013-02-19T23:14:56.247 に答える