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){} }
本題是一個表格式的成績單,其中包括“姓名”、“英語成績”、“數(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){} }

