2016年計(jì)算機(jī)等級(jí)考試《二級(jí)JAVA》綜合應(yīng)用模擬試題

字號(hào):

11[簡(jiǎn)答題]
    本題的功能是定義圖形按鈕。窗口中有兩個(gè)圖形按鈕,當(dāng)鼠標(biāo)移上去時(shí),圖形按鈕的圖形將改變,用鼠標(biāo)單擊按鈕時(shí)圖形按鈕的圖形又發(fā)生改變,當(dāng)鼠標(biāo)左鍵松開或者移開鼠標(biāo)后,圖形按鈕的圖形又恢復(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)答題]
    本題的功能是監(jiān)聽對(duì)于列表項(xiàng)的操作。窗口中有一個(gè)列表和三個(gè)按鈕“添加”、“刪除”和“關(guān)閉”。單擊“添加”按鈕,則會(huì)在當(dāng)前所選列表項(xiàng)后添加一個(gè)名為“新增表項(xiàng)”的列表項(xiàng),同時(shí)后臺(tái)輸入列表中的表項(xiàng)數(shù)量。單擊“刪除”按鈕后,如果未選中表項(xiàng),則彈出提示消息框“請(qǐng)選擇表項(xiàng)”。否則將選中的表項(xiàng)刪除,同時(shí)后臺(tái)輸出刪除表項(xiàng)的內(nèi)容和列表中的表項(xiàng)數(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="表項(xiàng)"+(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("新增表項(xiàng)",lstList.getSelected()+
    1);
    System.out.println("列表中的表項(xiàng)數(shù)量:"+
    lstList.getItemCount());
    }
    });
    btnButton2.a(chǎn)ddActionListener(new ActionListen-
    er()
    {
    public void aetionPerformed(ActionEvent e)
    {
    if(lstList.getSelected()= =null)
    {
    JOptionPane.showMessageDialog(frmFrame,"請(qǐng)
    選擇表項(xiàng)");
    return;
    }
    System.out.println("刪除表項(xiàng)的內(nèi)容:"+
    IstList.getSelectedItem());
    lstList.delete(lstList,getSelectedIndex());
    System.out.println("列表中的表項(xiàng)數(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[簡(jiǎn)答題]
    本題的功能是用復(fù)選按鈕來控制鼠標(biāo)右鍵的彈出菜單是否彈出。窗口中有一個(gè)復(fù)選按鈕“彈出菜單”,如果選中該復(fù)選按鈕后,鼠標(biāo)置于窗口上,單擊鼠標(biāo)右鍵會(huì)彈出一個(gè)菜單,單擊菜單項(xiàng)中的選項(xiàng)后,后臺(tái)會(huì)輸出單擊的菜單項(xiàng),如果取消該復(fù)選按鈕的選擇,單擊鼠標(biāo)右鍵則不能彈出菜單。
    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[簡(jiǎn)答題]
    本題的功能是求兩個(gè)交叉圖形的并、減、交和異或。窗口中有4個(gè)單選按鈕和一個(gè)圖形面板,面板中有兩個(gè)交叉的圖形,選中其中一個(gè)單選按鈕,圖形面板中以黑色填充的方式顯示運(yùn)算結(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)答題]
    本題的功能是監(jiān)聽對(duì)于顏色的復(fù)制和粘貼。程序窗l(fā):1中,有一個(gè)顏色設(shè)置框和兩個(gè)按鈕,名為“復(fù)制”和“粘貼”,在顏色設(shè)置框中設(shè)置顏色后,下面的預(yù)覽面板將顯示選中的顏色,單擊“復(fù)制”按鈕后,將設(shè)置的顏色復(fù)制到系統(tǒng)的剪貼板上,然后繼續(xù)選擇其他顏色,當(dāng)單擊按鈕“粘貼”后預(yù)覽面板的顏色將設(shè)置為剛才復(fù)制的顏色。
    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("復(fù)制");
    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;
    }