2016年計算機等級考試《二級JAVA》綜合應用模擬試題

字號:

11[簡答題]
    本題的功能是定義圖形按鈕。窗口中有兩個圖形按鈕,當鼠標移上去時,圖形按鈕的圖形將改變,用鼠標單擊按鈕時圖形按鈕的圖形又發(fā)生改變,當鼠標左鍵松開或者移開鼠標后,圖形按鈕的圖形又恢復原樣。
    import javax.swing.*;
    import java.a(chǎn)wt.*;
    public class java3 extend Jbutton{
    public java3(Icon icon,Icon pressed,Icon rollover){
    this(icon);
    setFocusPainted(false);
    setRolloverEnabled(true);
    setRolloverlcon(rollover);
    setPressedIcon(pressed);
    setBorderPainted(false);
    setContentAreaFilled(false);
    }
    public static void main(String[]args){
    java3 b1=new java3(
    new ImageIcon("java3-redcube.gif"),
    new ImageIcon("java3-redpaw.gif"),
    new ImageIcon("java3-reddiamond.gif"));
    java3 b2一new java3(
    new ImageIcon("java3-bluecube.gif")。
    new ImageIcon("java3-bluepaw.gif"),
    new ImageIcon("java3-bluediamond.gif"));
    JFrame f=new JFrame();
    f.setTitle("java3");
    f.setDefauhCloseOperation(JFrame.EXIT_ON_
    CLOSE);
    c=f.getContentpane();
    c.setLayout(new FlowLayout());
    c.a(chǎn)dd(b1);
    c.a(chǎn)dd(b2);
    f.pack();
    f.setVisible(true);
    12[簡答題]
    本題的功能是監(jiān)聽對于列表項的操作。窗口中有一個列表和三個按鈕“添加”、“刪除”和“關(guān)閉”。單擊“添加”按鈕,則會在當前所選列表項后添加一個名為“新增表項”的列表項,同時后臺輸入列表中的表項數(shù)量。單擊“刪除”按鈕后,如果未選中表項,則彈出提示消息框“請選擇表項”。否則將選中的表項刪除,同時后臺輸出刪除表項的內(nèi)容和列表中的表項數(shù)量。單擊“關(guān)閉”按鈕退出程序。
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    import javax.swing.JOptionPane;
    public class java3
    {
    public static void main(String args[])
    {
    final Frame frmFrame=new Frame();
    Panel pnlPanell=new Panel();
    Panel pnlPanel2=new Panel();
    final List lstList=new List(8):
    for(int i=0;i<10;i++)
    {
    String strName="表項"+(new Integer(i+
    1)).toString():
    lstList.a(chǎn)dd(strName);
    }
    Button btnButtonl=new Button("添加");
    Button btnButton2=new Button("刪除");
    Button btnButton3=new Button("關(guān)閉");
    btnButtonl.a(chǎn)ddActionListener(new AetionListen-
    er()
    {
    public void actionPerformed(ActionEvent e)
    {
    lstList.a(chǎn)dd("新增表項",lstList.getSelected()+
    1);
    System.out.println("列表中的表項數(shù)量:"+
    lstList.getItemCount());
    }
    });
    btnButton2.a(chǎn)ddActionListener(new ActionListen-
    er()
    {
    public void aetionPerformed(ActionEvent e)
    {
    if(lstList.getSelected()= =null)
    {
    JOptionPane.showMessageDialog(frmFrame,"請
    選擇表項");
    return;
    }
    System.out.println("刪除表項的內(nèi)容:"+
    IstList.getSelectedItem());
    lstList.delete(lstList,getSelectedIndex());
    System.out.println("列表中的表項數(shù)量:"+
    lstList.getltemCount()):
    }
    });
    btnButton3.a(chǎn)ddActionListener(new ActionListen-
    er()
    {
    public void actionPerformed(ActionEvent e)
    {
    System.exit(O);
    }
    });
    pnlPanell.a(chǎn)dd(lstList);
    pnlPanel2.a(chǎn)dd(btnButtonl);
    pnlPanel2.a(chǎn)dd(btnButton2);
    pnlPanel2.a(chǎn)dd(btnButton3);
    frmFrame.a(chǎn)dd("North",pnlPanell);
    frmFrame.a(chǎn)dd("South",pnlPanel2);
    frmFrame.setTitle("java3");
    frmFrame.pack();
    frmFrame.show();
    }
    }
    13[簡答題]
    本題的功能是用復選按鈕來控制鼠標右鍵的彈出菜單是否彈出。窗口中有一個復選按鈕“彈出菜單”,如果選中該復選按鈕后,鼠標置于窗口上,單擊鼠標右鍵會彈出一個菜單,單擊菜單項中的選項后,后臺會輸出單擊的菜單項,如果取消該復選按鈕的選擇,單擊鼠標右鍵則不能彈出菜單。
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    class CanvasWithPopup extends Canvas{
    Popupmenu popup;
    CanvasWithPopup(PopupMenu popup){
    enableEvents(AWTEvent.MOUSE EVENT
    MASK):
    this.popup=popup;
    }
    void addPopup(){
    add(popup);
    }
    void removePopup(){
    remove(popup);
    }
    protected void processMouseEvent(MouseEvent
    evt){
    if(popup.getParent()!=null&&evt.isPop-
    upTrigger()){
    popup.show(evt.getComponent(),evt.getX(),
    evt.getY());
    }
    super.processMouseEvent(evt);
    }
    }
    public class java3 extends Frame implements Item-
    Listener,ActionListener{
    Checkbox cb=new Checkbox("彈出菜單",
    false);
    CanvasWithPopup canvas;
    java3(){
    super("java3");
    addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e){
    System.exit(0);
    }
    });
    add(cb,BorderLayout.NORTH);
    cb.a(chǎn)ddhemListener(this);
    PopupMenu popup=new PopupMenu("Button
    Control"):
    popup.a(chǎn)dd("iteml");
    popup.a(chǎn)dd("item2");
    popup.a(chǎn)ddActionListener(this);
    canvas=new CanvasWithPopup(popup);
    add(canvas,BorderLayout.CENTER);
    setSize(100,200);
    show();
    }
    14[簡答題]
    本題的功能是求兩個交叉圖形的并、減、交和異或。窗口中有4個單選按鈕和一個圖形面板,面板中有兩個交叉的圖形,選中其中一個單選按鈕,圖形面板中以黑色填充的方式顯示運算結(jié)果。
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event*+;
    import java.a(chǎn)wt.geom.*;
    import java.util.*;
    import javax.swing.*;
    public class java3
    {
    public static void main(String[]args)
    {
    JFrame frame=new AreaTestFrame();
    frame.setDefaultCloseOperation(JFrame.EXIT_
    ON_CLOSE);
    frame.show();
    }
    }
    class AreaTestFrame extends JFrame
    {
    public AreaTestFrame()
    {
    setTitle("java3");
    setSize(WIDTH,HEIGHT);
    areal
    =new Area(new Ellipse2D.Double(100,100,
    150,100));
    area2
    =new Area(new Rectangle2D.Double(150,150,
    150,100));
    Container confentPane=getContentpane();
    panel=new
    JPanel()
    {
    public void paintComponent(Graphics g)
    {
    super.paintComponent(g);
    Graphics2D g2=(Graphics2D)g;
    g2.draw(areal);
    g2.draw(area2);
    if(area!=null)g2.fill(area);
    }
    };
    contentPane. add(panel,BorderLayout. CEN-
    TER);
    JPanel buttonPanel=new JPanel();
    ButtonGroup group=new ButtonGroup();
    JRadioButton addButton=new JRadioButton("
    并",false);
    buttonPanel.a(chǎn)dd(addButton);
    group.a(chǎn)dd(addButton);
    addButton.a(chǎn)ddActionListener(new
    ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    area=new Area();
    area.a(chǎn)dd(areal);
    area.a(chǎn)dd(area2);
    panel.repaint();
    }
    });
    JRadioButton subtractButton
    =new JRadioButton("減",false);
    buttonPanel.a(chǎn)dd(subtractButton);
    group.a(chǎn)dd(subtractButton);
    subtractButton.a(chǎn)ddActionListener(new
    ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    area=new Area();
    area.a(chǎn)dd(areal);
    area.subTract(area2);
    panel.repaint();
    }
    });
    JRadioButton intersectButton
    =new JRadioButton("交",false);
    buttonPanel.a(chǎn)dd(intersectButton);
    group.a(chǎn)dd(intersectButton);
    intersectButton.a(chǎn)ddActionListener(new
    ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    area=new Area():
    area.a(chǎn)dd(areal);
    area.intersect(area2);
    panel.repaint();
    }
    });
    JRadioButton exclusiveCIrButton
    =new JRadioButton(“異或”,false);
    buttonPanel.a(chǎn)dd(exelusiveOrButton);
    group.a(chǎn)dd(exclusiveOrButton);
    exclusiveOrButton.a(chǎn)ddActionListener(new
    ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    area=new Area();
    area.a(chǎn)dd(areal);
    area.exclusiveor(area2);
    panel.repaint();
    }
    });
    contentPane.a(chǎn)dd(buttonPanel,BorderLayout.
    NORTH);
    }
    private JPanel panel;
    private Area area;
    private Area areal;
    private Area area2;
    private static final int WIDTH=400;
    private static final int HEIGHT=400;
    }
    15[簡答題]
    本題的功能是監(jiān)聽對于顏色的復制和粘貼。程序窗l(fā):1中,有一個顏色設(shè)置框和兩個按鈕,名為“復制”和“粘貼”,在顏色設(shè)置框中設(shè)置顏色后,下面的預覽面板將顯示選中的顏色,單擊“復制”按鈕后,將設(shè)置的顏色復制到系統(tǒng)的剪貼板上,然后繼續(xù)選擇其他顏色,當單擊按鈕“粘貼”后預覽面板的顏色將設(shè)置為剛才復制的顏色。
    importjava.io.*;
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.datatransfer.*;
    import java.a(chǎn)wt.event.*;
    import java.a(chǎn)wt.image.*;
    import javax.swing.*;
    public class java3
    {
    public static void main(String[]args)
    {
    JFrame frame=new SerialTransferFrame():
    frame.setDefaultCloseoperation(JFrame.EXIT
    ON_CLOSE);
    frame.show();
    }
    }
    class SerialTransferFrame extends JFrame
    {
    public SerialTransferFrame()
    {
    setTitle("java3"):
    Container contentPane = getContentPane();
    chooser=new JColorChooser();
    contentPane.a(chǎn)dd(chooser,BorderLayout.CEN-
    TER);
    JPanel panel=new JPanel();
    JButton copyButton=new JButton("復制");
    panel.a(chǎn)dd(copyButton);
    copyButton.a(chǎn)ddActionListener(new
    ActionListener()
    {
    public void actionPerformed(ActionEvent event)
    {
    copy();
    }
    });
    JButton pasteButton=new JButton("粘貼");
    panel.a(chǎn)dd(pasteButton);
    pasteButton.a(chǎn)ddAetionListener(new
    ActionListener()
    {
    public void aetionPerformed(AetionEvent event)
    {
    paste();
    }
    });
    contentPane.a(chǎn)dd(panel,BorderLayout.SOUTH);
    pack();
    }
    private void copy()
    {
    Clipboard clipboard
    =Toolkit.getDefaultToolkit().getSystemClip-
    board();
    int color=chooser.getColor();
    SerialSeleetion selection=new SerialSelection
    (color);
    clipboard.setContents(selection,null);
    }
    private void paste()
    {
    Clipboard clipboard
    =Toolkit.getDefaultToolkit().getSystemClip-
    board();
    Transferable contents=clipboard.getContents
    (null);
    if(contents= =null)return;
    try
    {
    DataFlavor flavor=new DataFlavor(
    "application/x-java-serialized-object;class=
    java.a(chǎn)wt.Color");
    if(contents.isDataFlavorSupported(flavor))
    {
    Color color
    =(Color)contents.getTransferData(flavor);
    ;
    }
    }
    catch(ClassNotFoundException exception)
    {
    JOptionPane.showMessageDialog(this,excep-
    tion);
    }
    catch(UnsupportedFlavorException exception)
    {
    JOptionPane.showMessageDialog(this,excep-
    tion);
    }
    catch(IOException exception)
    {
    JOptionPane.showMessageDialog(this,excep-
    tion);
    }
    }
    private JColorChooser chooser;
    }
    class SerialSelection implements Transferable
    {
    SerialSelection(Serializable o)
    {
    obj=o:
    }
    public DataFlavor[]getTransferDataFlavors()
    {
    DataFlavor[]flavors=new DataFlavor[2];
    Class type=obj.getClass();
    String mimeType
    ="application/x-java-serialized-object;class
    ="
    +type.getName();
    try
    {
    flavors[0]=new DataFlavor(mimeType);
    flavors[1]=DataFlavor.stringFlavor;
    return flavors;
    }
    catch(ClassNotFoundExeeption exception)
    {
    return new DataFlavor[O];
    }
    }
    public boolean isDataFlavorSupported(DataFlavor
    flavor)
    {
    Return
    DataFlavor.stringFlavor.equals(flavor)‖"appli-
    cation".equals(flavor.getPrimaryType())
    &&"x-iava-serialized-object".equals(flavor.
    getSubType())
    &&flavor.getRepresentationClass().isAssign-
    ableFrom(obj.getClass());
    }
    public void getTransferData(DataFlavor flavor)
    throws UnsupportedFlavorException
    {
    if(! isDataFlavorSupported(flavor))
    throw new UnsupportedFlavorException(flaVor);
    if(DataFlavor.stringFlavor.equals(flavor))
    return obj.toString();
    return obj;
    }
    private Serializable obj;
    }