2017-06-23 9 views
0

スイングでjlabelのフォントを手動で設定しましたが、実行するとfontがdefault.Soに変更され、stackOverflowで検索されてコードが変更されました。スイングプログラムを実行すると、フォントがデフォルトに変更されます

import java.util.Calendar; 
import java.util.GregorianCalendar; 
import javax.swing.UIManager; 


public class Alarms extends javax.swing.JFrame { 

public Alarms() { 
    initComponents(); 
    this.setLocation(200, 400); 
    new Thread() { 
     public void run() { 
      while (true) { 
       Calendar cal = new GregorianCalendar(); 
       int hour = cal.get(Calendar.HOUR); 
       int min = cal.get(Calendar.MINUTE); 
       int sec = cal.get(Calendar.SECOND); 
       int am_pm = cal.get(Calendar.AM_PM); 
       String day; 
       if (am_pm == 1) { 
        day = "P.M"; 
       } else { 
        day = "A.M"; 
       } 
       String text = hour + " : " + min + " : " + sec + " " + day; 
       Clock.setText(text); 
      } 
     } 
    }.start(); 
} 

@SuppressWarnings("unchecked") 
    private void initComponents() { 

    Clock = new java.awt.Label(); 

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); 
    setAutoRequestFocus(false); 
    setBackground(new java.awt.Color(0, 0, 0)); 
    setFocusableWindowState(false); 
    setFont(new java.awt.Font("DS-Digital", 1, 64)); // NOI18N 
    setForeground(new java.awt.Color(51, 51, 55)); 
    setUndecorated(true); 
    setPreferredSize(new java.awt.Dimension(400, 250)); 
    getContentPane().setLayout(new org.netbeans.lib.awtextra.AbsoluteLayout()); 

    Clock.setAlignment(java.awt.Label.CENTER); 
    Clock.setFont(new java.awt.Font("DS-Digital", 1, 48)); // NOI18N 
    Clock.setForeground(new java.awt.Color(0, 165, 255)); 
    Clock.setText("7:45:30 P.M"); 
    getContentPane().add(Clock, new org.netbeans.lib.awtextra.AbsoluteConstraints(8, 50, 380, 150)); 

    pack(); 
}      

public static void main(String args[]) { 

    UIManager.put("Label.font", "DS-DIGITAL"); 
    try { 
     for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) { 
      if ("Nimbus".equals(info.getName())) { 
       javax.swing.UIManager.setLookAndFeel(info.getClassName()); 
       UIManager.put("Label.font", "DS-DIGITAL"); 
       break; 
      } 
     } 
    } catch (ClassNotFoundException ex) { 
     java.util.logging.Logger.getLogger(Alarms.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (InstantiationException ex) { 
     java.util.logging.Logger.getLogger(Alarms.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (IllegalAccessException ex) { 
     java.util.logging.Logger.getLogger(Alarms.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } catch (javax.swing.UnsupportedLookAndFeelException ex) { 
     java.util.logging.Logger.getLogger(Alarms.class.getName()).log(java.util.logging.Level.SEVERE, null, ex); 
    } 
    java.awt.EventQueue.invokeLater(new Runnable() { 
     public void run() { 
      new Alarms().setVisible(true); 

     } 
    }); 
}     
private java.awt.Label Clock;     

} これは、それは私が実際にプログラムを実行すると、私はフォントの変更をit.Butを実行したときのように見えているはずですか。ここに私のコードです。 enter image description here

私は何をしているのか教えていただけますか?

+0

フォントがインストールされていますか? – byxor

+0

はい...私は手動で設定しているとき、そのフォントをオプションとして取得していて、プレビューでそのフォントが機能しています – ani

+0

netbeans IDEのようなものからプレビューを意味すると仮定しています。私はあなたの問題が何であるか分かりません。 – byxor

答えて

0

私は(あなたがいない質問、解答へのリンクポイント)

Java: Altering UI fonts (Nimbus) doesn't work!

簡単に言うが、それはあなたが望むフォントを設定するために最初にしてgetDefaults()ニンバスLAFを設定することを提案、この答えを発見しました。また、new FontUIResource(font)でフォントを折り返してみてください。

関連する問題