2016年全國計算機等級考試《二級JAVA》簡答應用試題

字號:

6[簡答題]
    本題是一個表格式的成績單,其中包括“姓名”、“英語成績”、“數(shù)學成績”和“總成績”,姓名和成績都可以進行修改,單擊按鈕“計算每人總成績”,則可以統(tǒng)計出每個人的總成績并顯示在總成績欄中。 import javax.swing.*;
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    public class java2 extends JFrame implements ActionL-
    istener
    {JTable table;Object a[][];
    Object name[]={"姓名","英語成績","數(shù)學成 績","總成績"};
    JButton button;
    java2()
    {setTitle("java2");
    a=new Object[8][4]:
    for(int i=0;i<8;i++)
    {for(int j=0;j<4;j++)
    {if(j!=0)
    a[i][j]="";
    else
    a[i][j]="';
    }
    }
    button=new JButton("計算每人總成績");
    table=
    button.a(chǎn)ddActionListener(this);
    getContentPane().a(chǎn)dd(new JScrollPane(table),
    BorderLayout.CENTER);
    getContentPane().a(chǎn)dd(button,BorderLayout.
    SOUTH):
    setSize(400,200);
    setVisible(true):
    validate();
    addWindowListener(new WindowAdapter()
    {public void windowClosing(WindowEvent e)
    {System.exit(O);
    }
    });
    }
    public void actionPerformed(ActionEvent e)
    {for(int i=0;i<8;i++)
    {double sum=0;
    boolean boo=true;
    for(int J=1;j<=2;j++)
    {try{
    sum=sum+Double.parseDouble( );
    }
    catch(Exception ee)
    {
    boo=false;
    table.repaint();
    }
    if(boo= =true)
    {
    a[i][3]=""+sum:
    table.repaint();
    }
    }
    }
    }
    public static void main(String args[-])
    {java2 Win=new java2();
    }
    }
    7[簡答題]
    本題用復選框來控制字體的顯示,窗口中有一個標簽和兩個復選按鈕,這兩個復選按鈕分別對應的字體的兩個特點:加粗和傾斜,任意選中一個按鈕或兩個都選中,標簽上的字符串就顯示對應的字體。
    tmport.java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    import javax.swing.*;
    class CheckBoxFrame extends JFrame implements Ac-
    tionListener{
    public CheckBoxFrame(){
    setTitle("CheckBoxTest");
    setSize(300,200);
    addWindowListener(new WindowAdapter(){
    public void windowClosing(WindowEvent e)(
    System.exit(O);
    }
    });
    JPanel P=new JPanel();
    bold=addCheckBox(p,"Bold");
    italic=addCheckBox(P,"Italic");
    getContentPane().a(chǎn)dd(p,"South");
    panel=new CheekBoxTestPanel();
    getContentPane().a(chǎn)dd(panel,"Center");
    }
    public JCheckBox addCheekBox(JPanel p,String
    name){
    JCheckBox c=new JCheekBox(name):
    c.a(chǎn)ddActionListener( );
    P.a(chǎn)dd(c);
    return C;
    }
    public void {
    int m=(bold.isSelected()?Font.BOLD:O)+
    (italic.isSelected()?Font.ITALIC:O);
    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);
    9.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();
    }
    }
    8[簡答題]
    本題是一個Applet,它顯示了一個樹型結構。單擊樹結點的時候,就能將其子結點展開,同時下面的文本框可以顯示出所單擊的結點的路徑,比如單擊了根結點下B結點下B2結點,則文本框顯示為"[,B,B2]"。
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    import javax.swing.*;
    import javax.swing.tree.*;
    public class java2 extends JApplet
    {
    JTree tree;
    JTextField jtf;
    public void init()
    {
    Container cp=getContentPane();
    cp.setLayout(new BorderLayout());
    top=new DefaultMutableTreeNode("
    "):
    DefaultMutableTreeNode a=new Default-
    MutableTreeNode("A");
    DefaultMutableTreeNode al = new Default-
    MutableTreeNode("Al");
    a.a(chǎn)dd(a1);
    DefatIltMutableTreeNode a2=new Default-
    MutableTreeNode("A2");
    a.a(chǎn)dd(a2);
    DefaultMutableTreeNode a3=new Default-
    MutableTreeNode("A3");
    a.a(chǎn)dd(a3);
    DefaultMutableTreeNode b=new Default-
    MutableTreeNode("B");
    DefaultMutableTreeNode bl=new Default-
    MutableTreeNode("Bl");
    b.a(chǎn)dd(b1);
    DefaultMutableTreeNode b2=new Default-
    MutableTreeNode("B2");
    b.a(chǎn)dd(b2);
    DefaultMutableTreeNode b3=new Default-
    MutableTreeNode("B3"): b.a(chǎn)dd(b3); top.a(chǎn)dd(a); top.a(chǎn)dd(b); tree=new JTree(top); int v=ScrollPaneConstants.VERTICAL_ SCROLLBAR_AS_NEEDED; int h=ScrollPaneConstants.HORIZONTAL_ SCRoLLBAR_AS_NEEDED; JScrollPane jsp=new JScrollPane(tree,V,h); cp.a(chǎn)dd(jsp,BorderLayout.CENTER); jtf=new JTextField(20); cp.a(chǎn)dd(jtf,BorderLayout.SOUTH); tree.a(chǎn)ddMouseListener(new MouseAdapter() { public void mouseClicked(MouseEvent me) { doMouseClicked(me); } }); } void doMouseClicked(MouseEvent me) { tp=tree.getPathForLocation(me.getX (),me.getY()); if(tp!=null) jtf.setText(tp.toString()); else jtf.setText("");
    }
    }
    9[簡答題] 本題的功能是通過鼠標確定兩個點,然后畫兩點間的直線。窗口中有一個按鈕“Draw line”,單擊該按鈕后,它就處于按下狀態(tài),然后用鼠標在窗口中單擊一下,在單擊的地方就會出現(xiàn)一個坐標圓點,用鼠標在另外一個地方單擊一下又會出現(xiàn)另外一個圓點,并且此時在兩個坐標圓點間畫出一條直線,且“Draw line”處于可用狀態(tài),再單擊這個按鈕就可以畫另外一條直線。
    Import java.a(chǎn)wt.* ;
    import java.a(chǎn)wt.event.*;
    import javax.swing.*;
    class EventQueuePanel extends JPanel implements Ac-
    tionListener
    {EventQueuePanel()
    {JButton button=new JButton("Draw line");
    add(button); button.a(chǎn)ddActionListener(this); } public void actionPerformed(ActionEvent evt) (Graphics g=getGraphics(); P=getClick(); g.drawOval(P.x-2,P.Y-2,4,4); Point q=getClick(); g.drawOval(q.x-2,q.y-2,4,4); g.drawLine(P.X,P.Y,q.x,q.y); g.dispose(); } public Point getClick() {EventQueue eq=Toolkit.getDefaultToolkit(). getSystemEventQueue(); while(true) {try {AWTEvent evt=eq.getNextEvent(); if(evt.getID()= =MouseEvent.MOUSE. PRESSED) {MouseEvent mevt=(MouseEvent)evt; Point P= (); Point top=getRootPane().getLocation(); P.X-=top.x; P.Y-=top.Y; return P; } } catch(InterruptedException e) {} } } private int Y=60; } class EventQueueFrame extends JFrame {public EventQueueFrame() {setTitle("java2"); setSize(300,200); addWindowListener(new WindowAdapter() {public void windowClosing(WindowEvent e) {System.exit(0); } }); Container contentPane=getContentPane(); contentPane.a(chǎn)dd(new EventQueuePanel()); } } public class java2 {public static void main(String[]args) {Frame frame=new EventQueueFrame(); frame.show(); } }
    10[簡答題]
    本題是一個Applet,頁面中有10個按鈕,名稱從“0~ 9”,用鼠標任意單擊其中一個按鈕后,通過鍵盤上的上下左右鍵可以控制按鈕在窗口中移動。
    import java.a(chǎn)pplet.*;
    import java.a(chǎn)wt.*;
    import java.a(chǎn)wt.event.*;
    public class java2 extends Applet
    {Button b[]=new Button[10];
    int x,Y;
    public void init() {for(int i=0;i<=9;i++) {b[i]=new Button(""+i); b[i].a(chǎn)ddKeyListener(this); addCb[i]); } } public void {Button button=(Button)e.getSource(); x=button.getBounds().x; y—button.getBounds().y; if(e,getKeyCode()= =KeyEvent.VK_UP) {y=y-2; if(y<=O)y=0; button.setLocation(x,y); } else if(e.getKeyCode()= =KeyEvent.VK_ DOWN) {y=y+2; if(y>=300)y=300; button,.setLocation(X,y); } else if(e.getKeyCode()= =KeyEvent.VK_ LEFT) {x=x-2; if(x<=0)x=0; button.setLocation(x,y); } else if(e.getKeyCode()= =KeyEvent.VK_ RIGHT) (x=X+2; if(x>=300)x=300; button.setLoeation(X,y); } } public void keyTyped(KeyEvent e){} public void keyReleased(KeyEvent e){} }