本题用复选框来控制字体的显示,窗口中有一个标签和两个复选按钮,这两个复选按钮分别对应的字体的两个特点:加粗和倾斜,任意选中一个按钮或两个都选中,标签上的字符串就显示对应的字体。 tmport.java.awt.*; import java.awt.event.*; import javax.swing.*; class CheckBoxFrame. extends JFrame. implements Ac- tionListener{ public CheckBoxFrame(){ setTitle('CheckBoxTest'); setSize(300,200); addWindowListener(new WindowAdapter(){ public void windowClosing(WindowEvent e)( System.exit(O); } }); JPanel P=new JPanel(); bold=addCheckBox(p,'Bold'); italic=addCheckBox(P,'Italic'); getContentPane().add(p,'South'); panel=new CheekBoxTestPanel(); getContentPane().add(panel,'Center'); } public JCheckBox addCheekBox(JPanel p,String name){ JCheckBox c=new JCheekBox(name): c.addActionListener( ); P.add(c); return C; } public void { int m=(bold.isSelected()?Font.BOLD:O)+ (italic.isSelected()?Font.ITALIC:O); panel.setFont(m); } private CheckBoxTestPanel panel; private JCheckBox bold; private JCheckBox italic; } class CheckBoxTestPanel extends JPanel{ public CheckBoxTestPanel(){ setFont(Font.PLAIN); } public void setFont(int m){ setFont(new Font('SansSerif',m,12)); repaint(); } public void paintComponent(Graphics g){ super.paintComponent(g); 9.drawstring('The quick brown fox jumps over the lazy dog.',0,50); } } public class java2{ public static void main(String[]args){ JFrame. frame=new CheckBoxFrame(); frame.show(); } }