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新手
好的,非常感謝你的回答 – user1809300 2013-04-20 16:00:48
@ user1809300不客氣,很高興幫助! :) – tenorsax 2013-04-20 16:02:04
另外'pack()'封閉的'Window'以利用新字體的指標。 +1進行審查。 – trashgod 2013-04-20 19:44:04