2013-04-20 21 views
0

我有以下給出的練習代碼,我嘗試找出爲什麼JPanel中的字體與Panel字體不同。我注意到,有改變幀的字體,但該框架還改變了內面板的字體,但在JPanel中沒有改變的字體的setfont程序的方法,這是爲什麼:更改幀的字體和框架中的所有組件的字體

import java.awt.*; 
import javax.swing.*; 
import java.awt.event.*; 
public class MyAppCheck extends Frame { 
public MyAppCheck (String title) { 
    super(title); 
    setFont(new Font("Verdana", Font.BOLD, 12)); 
    setLayout(new GridLayout(1,3)); 
    Panel cboxes = new Panel(); 
    cboxes.setLayout(new GridLayout(0,1)); 
    Color c = new Color(80,120,230); 
    cboxes.setBackground(c); 
    Checkbox c1 = new Checkbox("Windows"); Checkbox c2 = new Checkbox("Linux"); 
    Checkbox c3 = new Checkbox("IRIX"); 
    Checkbox c4 = new Checkbox("MacOS"); 

    cboxes.add(c1); 
    cboxes.add(c2); 
    cboxes.add(c3); 
    cboxes.add(c4); 
    c2.setState(true); 
    c4.setState(true); 
    JPanel cboxgrp = new JPanel(); 
    cboxgrp.setLayout(new GridLayout(0,1)); 
    cboxgrp.setBackground(Color.YELLOW); 
    cboxgrp.setBorder(BorderFactory.createTitledBorder("Languages")); 
    CheckboxGroup progLang = new CheckboxGroup(); 
    Checkbox cg1 = new Checkbox("Pascal", false, progLang); 
    Checkbox cg2 = new Checkbox("Java", false, progLang); 
    Checkbox cg3 = new Checkbox("Basic", false, progLang); 
    Checkbox cg4 = new Checkbox("C", false, progLang); 
    Checkbox cg5 = new Checkbox("C++", false, progLang); 

    cboxgrp.add(cg1); 
    cboxgrp.add(cg2); 
    cboxgrp.add(cg3); 
    cboxgrp.add(cg4); 
    cboxgrp.add(cg5); 
    cg3.setState(true); 
    add(cboxes); 
    add(cboxgrp); 
        System.out.println("Font_1:"+cboxes.getFont()); 
        System.out.println("Font_2:"+cboxgrp.getFont()); 
    addWindowListener(new WindowAdapter() { 
     public void windowClosing(WindowEvent evt) { 
      System.exit(0); 
     } 
    }); 
} 

public static void main(String[] args){ 
    MyAppCheck app2 = new MyAppCheck("Application Window"); 
    app2.setSize(200, 200); 
    app2.setVisible(true); 

} 
} 

對不起我的英文不好。 ..也只是爲了告訴你,我是awt/swing新手

回答