本 题 的 要 求 是 : 在 JFrame 窗 口 中 , 显 示 出 红 色 的 2008 北 京 奥 运 主 题 口 号 " 同 一 个 世 界 , 同 一 个 梦 想 " , 同 时 在 窗 口 的 上 方 , 有 三 个 按 可 以 改 变 窗 口 的 背 景 色 。 该程序的运行结 果 如 下 ; 考生要求对 Java_3.java 文件进行完善并调试,使程序显示如上界面 。 由于 Java_3.java 是不完整的,请在注释行“ //******Found****** ”下一行语句的下划线地方填入正确内容,然后删除下划线,请勿注释行或其他己有语句内 容。 存盘时, 文件必须存放在考生文件夹下,不得改变有文件的文件名。 具体程序如下: import java.awt.event.*; import java.awt.*; import java.awt.font.*; import java.awt.geom.*; import javax.swing.*; public class Java_3 { public static void main(String[] args) { FontFrame frame = new FontFrame(); frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); frame.setVisible(true); } } //**********Found********** class FontFrame extends ________________ { public FontFrame() { setTitle("北京 2008"); setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); FontPanel panel = new FontPanel(); Container contentPane = getContentPane(); //**********Found********** contentPane._____________________; } public static final int DEFAULT_WIDTH = 400; public static final int DEFAULT_HEIGHT = 250; } class FontPanel extends JPanel { public FontPanel() { JButton yellowButton = new JButton("Yellow"); JButton blueButton = new JButton("Blue"); JButton redButton = new JButton("Green"); add(yellowButton); add(blueButton); add(redButton); ColorAction yellowAction = new ColorAction(Color.YELLOW); ColorAction blueAction = new ColorAction(Color.BLUE); ColorAction greenAction = new ColorAction(Color.GREEN); yellowButton.addActionListener(yellowAction); blueButton.addActionListener(blueAction); redButton.addActionListener(greenAction); } public void paintComponent(Graphics g) { super.paintComponent(g); Graphics2D g2 = (Graphics2D)g; String message = "同一个世界,同一个梦想!"; Font f = new Font("隶书", Font.BOLD, 27); g2.setFont(f); FontRenderContext context = g2.getFontRenderContext(); Rectangle2D bounds = f.getStringBounds(message, context); double x = (getWidth() - bounds.getWidth()) / 2; double y = (getHeight() - bounds.getHeight()) / 2; double ascent = -bounds.getY(); double baseY = y + ascent; g2.setPaint(Color.RED); //**********Found********** g2._____________________(message, (int)x, (int)(baseY)); } //**********Found********** private class ColorAction ____________________ ActionListener { public ColorAction(Color c) { BackgroundColor = c; } //**********Found********** public void _____________________(ActionEvent event) { setBackground(BackgroundColor); } private Color BackgroundColor; } }