2017年全國計算機等級考試《二級JAVA》沖刺試題:綜合應(yīng)用

字號:


    [簡答題]
    本題的功能是用按鈕來控制文本框中文本的顏色。窗口中有兩個帶有文字標題的面板“Sample text”和“Text color control”,窗口的底部還有一個復(fù)選按鈕“Disable changes”。在“Sample text”面板中有一個帶有字符串的文本框,而在“Text color control”面板中有三個按鈕:“Black”、“Red”和“Green”,并且每個按鈕上都有一個對應(yīng)顏色的圓。單擊任意按鈕,文本框中的文本變成對應(yīng)的顏色,如果選中“Disable changes”復(fù)選項,則三個顏色按鈕變?yōu)椴豢捎?,如果取消選中復(fù)選項,則三個按鈕變?yōu)榭捎谩?BR>    import javax.swing.*;
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    public class java3 extends JFrame{
    private JPanel upper,middle,lower;
    private JTextField text;
    private JButton black,red,green;
    private JCheckBox disable;
    public java3(String titleText){
    super(titleText);
    addWindowListener(new WindowAdapter(){
    public void
    windowClosing(WindowEvent e){
    System.exit(0);
    }
    }
    );
    upper=new JPanel();
    upper.setBorder(BorderFactory.ereateTitledBor-
    der("Sample text"));
    upper.setlayout(new BorderLayout());
    text=new JTextField("Change the color of this
    text"):
    upper.a(chǎn)dd(text,BorderLayout.CENTER);
    middle=new JPanel();
    middle.setBorder(BorderFactory.createTitledBor-
    der("Text color control"));
    middle.setLayout(new FlowLayout(FlowLayout.
    CENTER)):
    black=new JButton("Black",new ColorIcon
    (Color.black));
    black.a(chǎn)ddActionListener( new ButtonListener
    (Color.black));
    middle.a(chǎn)dd(black);
    red=new JButton("Red",new ColorIcon(Col-
    or.red));
    red.a(chǎn)ddActionListener(new ButtonListener(Col-
    or.red));
    middle.a(chǎn)dd(red);
    green=new JButton("Green",new ColorIcon
    (Color.green));
    green.a(chǎn)ddActionListener(new ButtonListener
    (Color.green));
    middle.a(chǎn)dd(green);
    lower=new JPanel();
    lower.setLayout(new FlowLayout(FlowLayout.
    RIGHT));
    disable=new JCheckBox("Disable changes"):
    disable.a(chǎn)ddItemListener(new ItemListener()(
    public void itemStateChanged(ItemEvent e){
    boolean enabled
    =(e.getStateChange()
    = =ItemEvent.DESELECTED):
    black.setEnabled(enabled);
    red.setEnabled(enabled);
    green.setEnabled(enabled);
    }
    }
    );
    lower.a(chǎn)dd(disable);
    Container cp=getContentPane();
    cp.a(chǎn)dd(upper,BorderLayout.NORTH);
    cp.a(chǎn)dd(middle,BorderLayout.CENTER);
    cp.a(chǎn)dd(10wer,BorderLayout.SoUTH);
    pack();
    setVisible(true);
    }
    class ButtonListener extends ActionListener{
    private Color c;
    public ButtonListener(Color c){
    this.c=c;
    }
    public void actionPerformed(ActionEvent e){
    text.setForeground(c);
    }
    }
    class ColorIcon implements Icon{
    private Color c;
    private static final int DIAMETER=10;
    public ColorIcon(Color c){
    c=c;
    }
    public void paintlcon(Component cp,Graphics g,
    int x,int y){
    g.setColor(c);
    g.fillOval(X,y,DIAMETER,DIAMETER);
    g.setColor(Color.black);
    g.drawOval(x,y,DIAMETER,DIAMETER);
    }
    public int getlconHeight(){
    return DIAMETER;
    }
    public int getlconWidth(){
    return DIAMETER;
    }
    }
    public static void main(String[]args){
    new java3("advance");
    }
    }
    請在此輸入您的答案
    10[簡答題]
    本題的功能是用按鈕來控制文本框中文本的顏色。窗口中有兩個帶有文字標題的面板“Sample text”和“Text col—or control”,窗口的底部還有一個復(fù)選按鈕“Disable chan-ges”。在“Sample text”面板中有一個帶有宇符串的文本框,而在“Text color control”面板中有三個按鈕“Black”、“Red”和“Green”,并且每個按鈕上都有一個對應(yīng)顏色的圓。單擊任意按鈕,文本框的文本變成對應(yīng)的顏色,如果選中“Disa-ble changes”復(fù)選框,則三個顏色按鈕變?yōu)椴豢捎?,如果取消選中復(fù)選框,則三個按鈕變?yōu)榭捎谩?BR>    import javax.swing.*;
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    public class java3 extends JFrame{
    private JPanel upper,middle,lower;
    private JTextField text;
    private JButton black,red,green;
    private JCheckBox disable;
    public java3(String titleText){
    super(titleText);
    addWindowListener(new WindowAdapter(){
    public void
    windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    upper=new JPanel();
    upper.setBorder(BorderFactory.ereateTitledBor-
    der("Sample text")):
    Upper.setlayout(new BorderLayout());
    text=new JTextField("Change the color of this
    text");
    upper.a(chǎn)dd(text,BorderLayout.CENTER);
    middle=new JPanel();
    middle.setBorder(BorderFactory.createTitledBor-
    der("Text color control"));
    middle.setLayout(new FlowLayout(FlowLayout.
    CENTER)):
    black=new JButton("Black",new ColorIcon(
    Color.black));
    black.a(chǎn)ddActionListener(new ButtonListener(
    Color.black));
    middle.a(chǎn)dd(black);
    red=new JButton("Red",new ColorIeon(Col-
    or.red));
    red.a(chǎn)ddActionListener(new ButtonListener(Col-
    or.red));
    middle.a(chǎn)dd(red);
    green=new JButton("Green",new ColorIcon(
    Color.green));
    green.a(chǎn)ddActionListener(new ButtonListener(
    Color.green));
    middle.a(chǎn)dd(green);
    lower=new JPanel();
    lower.setLayout(new FlowLayout(FlowLayout.
    RIGHT));
    disable=new JCheckBox("Disable changes");
    disable.a(chǎn)ddhemListener(new hemListener(){
    public void itemStateChanged(hemEvent e){
    boolean enabled
    = (e.getStateChange()
    = =ItemEvent.DESELECTED);
    black.setEnabled(enabled);
    red.setEnabled(enabled);
    green.setEnabled(enabled);
    }
    }
    );
    lower.a(chǎn)dd(disable):
    Container cp=getContentPane();
    cp.a(chǎn)dd(upper,BorderLayout.NORTH);
    ep.a(chǎn)dd(middle,BorderLayout.CENTER);
    ep.a(chǎn)dd(10wer,BorderLayout.SOUTH);
    pack();
    setVisible(true);
    }
    class ButtonListener extends ActionListener{
    private Color c;
    public ButtonListener(Color c)f
    this.c=c;
    }
    public void aetionPerformed(ActionEvent e){
    text.setForeground(c);
    }
    }
    class ColorIcon implements Icon{
    private Color c;
    private static final int DIAMETER=10;
    public Colorlcon(Color c){
    c=c;
    }
    public void paintleon(Component cp,Graphics g,
    int X,int Y){
    g.setColor(e);
    g.fillOval(x,Y,DIAMETER,DIAMETER);
    g.setColor(Color.black);
    g.drawOval(x,y,DIAMETER,DIAMETER);
    }
    public int getIconHeight(){
    return DIAMETER:
    }
    public int getlconWidth(){
    return DIAMETER;
    }
    }
    public static void main(String[]args){
    new java3("java3");
    }
    }
    請在此輸入您的答案
    11[簡答題]
    下面程序中,在主窗口單擊鼠標后,就會生成一個新
    窗口。
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    public class java3 extends Frame{
    java3(){
    super("java3");
    addNotify();
    addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    Insets insets=getInsets();
    setSize(insets.left+insets.right+150,
    insets.top+insets.bottom+150);
    this.a(chǎn)ddMouseListener(MouseEventHandler());
    }
    class MouseEventHandler implements MouseAda-
    pter{
    public void mousePresse(MouseEvent evt){
    Rectangle bounds=getBounds();
    int x=evt.getX()+bounds.x;
    int y=evt.getY()十bounds.y;
    java3 m=newjava3();
    m.setLocation(x,y);
    m.show();
    }
    }
    static public void main(String[]args){
    (new java3()).show();
    }
    }
    請在此輸入您的答案
    12[簡答題]
    本題的功能是用文本框來設(shè)定表盤中指針的位置。窗口中有一個畫板和兩個文本框,畫板中繪制了一個表盤和時針、分針,通過文本框分別設(shè)定“時”和“分”,表盤中的時針和分針就會指到對應(yīng)的位置上。
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event*;
    import java.a(chǎn)wt.geom.*;
    import javax.swing.*;
    import javax.swing.event.*;
    public class java3
    {
    public static void main(String[]args)
    {
    TextTestFrame frame=new TextTestFrame():
    frame.setDefauhCloseOperation(JFrame.EXIT_
    0N_CLOSE);
    frame.show();
    }
    }
    class TextTestFrame extends JFrame
    {
    public TextTestFrame()
    {
    setTitle("java3"):
    setSize(DEFAULT_WIDTH,DEFAULT_
    HElGHT);
    Container contentPane=getContentPane();
    DocumentListener listener=new DoeumentListen-
    er();
    JPanel panel=new JPanel();
    hourField=new JTextField("12",3);
    panel.a(chǎn)dd(hourField);
    hourField.getDocument().a(chǎn)ddDocumentListener
    (this);
    minuteField=new JTextField("00",3):
    panel.a(chǎn)dd(minuteField);
    minuteField.getDocument().a(chǎn)ddDocumentListener
    (listener);
    contentPane.a(chǎn)dd(panel,BorderLayout.S()UTH);
    clock=new ClockPanel();
    contentPane.a(chǎn)dd(clock,BorderLayout.CEN-
    TER);
    }
    public void setClock()
    {
    try
    {
    int hours
    =Integer.parseInt(hourField.getText().trim
    ()):
    int minutes
    =Integer.parseInt(minuteField.getText().trim
    ());
    clock.setTime(hours,minutes);
    }
    catch(NumberFormatExcepfion e){}
    }
    public static final int DEFAULT_WIDTH=300;
    public static final int DEFAULT_HEIGHT
    =300;
    private J TextField hourField;
    private JTextField minuteField;
    private ClockPanel clock;
    private class clockFieldListener extends Docu-
    mentListener
    {
    public void insertUpdate(DocumentEvent e){ set-
    Clock();}
    public void removeUpdate(DocumentEvent e){
    setClock();}
    public void changedUpdate(DocumentEvent e){}
    }
    }
    class ClockPanel extends JPanel
    {
    pubhc void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    Graphies2D g2=(Graphics2D)g;
    Ellipse2D circle
    =new Ellipse2D.Double(0,0,2* RADIUS,2
    *RADIUS);
    g2.draw(circle);
    double hourAngle
    =Math.toRadians(90-360*minutes/(12
    *60));
    drawHand(92,hourAngle,HOUR_HAND_
    LENGTH);
    double minuteAngle
    =Math.toRadians(90-360*minutes/60);
    drawHand(g2,minuteAngle,MINUTE_HAND_
    LENGTH):
    }
    punic void drawHand(Graphics2D g2,
    double angle,double handLength)
    {
    Point2D end=new Point2D.Double(
    RADIUS+handLength*Math.cos(angle),
    RADIUS-handLength*Math.sin(angle));
    Point2D center=new Point2D.Double(RADIUS,
    RADIUS):
    g2.draw(new Line2D.Double(center,end));
    }
    public void setTime(int h,int m)
    {
    minutes=h*60+m;
    repaint();
    }
    private double minutes=0;
    private double RADIUS=100;
    private double MINUTE_HAND_LENGTH=
    0.8*RADIUS;
    private double HOUR_HAND_LENGTH=0.6
    *RADIUS:
    }