本题用复选框来控制字体的显示,窗口中有一个标签和两个复选按钮,这两个复选按钮分别对应的字体的两个特点:加粗和倾斜,任意选中一个按钮或两个都选中,标签上的字符串就显示对应的字体。 import java.awt.*; import java.awt.even

admin2012-12-02  83

问题 本题用复选框来控制字体的显示,窗口中有一个标签和两个复选按钮,这两个复选按钮分别对应的字体的两个特点:加粗和倾斜,任意选中一个按钮或两个都选中,标签上的字符串就显示对应的字体。
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
class CheckBoxFrame extends JFrame implements ActionListener{
public CheckBoxFrame(){
setTitle("CheckBoxTest");
setSize(300, 200);
addWindowListener(new WindowAdapter(){
  public void windowClosing(WindowEvent e){
   System.exit(0);
  }
   });
  JPanel p = new JPanel();
  bold = addCheckBox(p, "Bold");
  italic = addCheckBox(p, "Italic");
  getContentPane().add(p, "South");
  panel = new CheckBoxTestPanel();
  getContentPane().add(panel, "Center");
}
public JCheckBox addCheckBox(JPanel p, String name){
JCheckBox c = new JCheckBox(name);
c.addActionListener(______);
p.add(c);
return c;
}
public void ______{
int m = (bold.isSelected() ? Font.BOLD : 0) + (italic.isSelected() ? Font.ITALIC : 0);
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);
g.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();
}
}

选项

答案第1处:this第2处:actionPerformed(ActionEvent evt)

解析 第1处注册监听器进行授权,该方法的参数是事件处理者对象;第2处是actionPerformed方法通过读取ActionEvent对象的相关信息来得到事件发生时的情况。
转载请注明原文地址:https://jikaoti.com/ti/jbkiFFFM
0

相关试题推荐
最新回复(0)