四、綜合應(yīng)用題(共18分)
本題中,主窗口中有兩個下拉菜單,一個控制繪制圖形的顏色,另一個控制繪制的圖形,在畫板中單擊鼠標(biāo),則以單擊的位置為左上角、以選定的顏色繪制選定的圖形。
import java.a(chǎn)wt.*;
import java.a(chǎn)wt.event.*;
class java3 extends Frame {
String[]figureNames={"圓形","橢圓形","正
方形","長方形");
String[]colorNames={"紅色","綠色","藍
色","黃色"};
Color[]colorValues={Color.red,Color.green,
Color.blue,Color.yellow);
Choice chFigure=new Choice();
Choice chColor=new Choice();
int curX,curY;
java3(){
super("java3");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(O);
}
});
Panel P=new Panel(new GridLayout(1,O));
for(int i=0;i ehFigure.a(chǎn)ddhem(figureNames[i]);
}
for(int i=0;i chColor.a(chǎn)ddhem(eolorNames[i]);
}
P.a(chǎn)dd(chColor);
P.a(chǎn)dd(chFigure);
add(p,BorderLayout.NORTH);
addMouseListener(this);
setSize(300,300);
show();
}
public void update(Graphics g){
g.getColor(colorValues[chColor,getSelectedIndex
()]);
switch(chFigure.getSelectedlndex()){
case 0;
g.fillOval(curX,curY,30,30);
break;
case l:
g.fillOval(curX,curY,30,50);
break;
case 2:
g.fillRect(curX,curY,30,30);
break;
case 3:
g.fillRect(curX,curY,30,50);
break;
}
}
class MouseEventListener implements MouseAda-
pter{
public void mousePressed(MouseEvent evt){
curX=evt.getX();
curY=evt.getY();
repaint();
}
}
static public void main(String[]args){
new java3();
}
)
四、綜合應(yīng)用題
第1處:addMouseListener(new MouseEventListener())
第2處:g.setcolor(colorValues[chcolor.getselectedIn-
dex()])
第3處:class MouseEventListener extends MouseAda-
pter
【解析】第1處是注冊鼠標(biāo)監(jiān)聽器,主要是單擊動作;第2處是設(shè)置Graphics類對象g的顏色通過將從chColor中選中的字符串轉(zhuǎn)換成colorValues類型來實現(xiàn);第3處定義一個MouseEventListener類來繼承MouseAdapter鼠標(biāo)事件適配器。
本題中,主窗口中有兩個下拉菜單,一個控制繪制圖形的顏色,另一個控制繪制的圖形,在畫板中單擊鼠標(biāo),則以單擊的位置為左上角、以選定的顏色繪制選定的圖形。
import java.a(chǎn)wt.*;
import java.a(chǎn)wt.event.*;
class java3 extends Frame {
String[]figureNames={"圓形","橢圓形","正
方形","長方形");
String[]colorNames={"紅色","綠色","藍
色","黃色"};
Color[]colorValues={Color.red,Color.green,
Color.blue,Color.yellow);
Choice chFigure=new Choice();
Choice chColor=new Choice();
int curX,curY;
java3(){
super("java3");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(O);
}
});
Panel P=new Panel(new GridLayout(1,O));
for(int i=0;i ehFigure.a(chǎn)ddhem(figureNames[i]);
}
for(int i=0;i chColor.a(chǎn)ddhem(eolorNames[i]);
}
P.a(chǎn)dd(chColor);
P.a(chǎn)dd(chFigure);
add(p,BorderLayout.NORTH);
addMouseListener(this);
setSize(300,300);
show();
}
public void update(Graphics g){
g.getColor(colorValues[chColor,getSelectedIndex
()]);
switch(chFigure.getSelectedlndex()){
case 0;
g.fillOval(curX,curY,30,30);
break;
case l:
g.fillOval(curX,curY,30,50);
break;
case 2:
g.fillRect(curX,curY,30,30);
break;
case 3:
g.fillRect(curX,curY,30,50);
break;
}
}
class MouseEventListener implements MouseAda-
pter{
public void mousePressed(MouseEvent evt){
curX=evt.getX();
curY=evt.getY();
repaint();
}
}
static public void main(String[]args){
new java3();
}
)
四、綜合應(yīng)用題
第1處:addMouseListener(new MouseEventListener())
第2處:g.setcolor(colorValues[chcolor.getselectedIn-
dex()])
第3處:class MouseEventListener extends MouseAda-
pter
【解析】第1處是注冊鼠標(biāo)監(jiān)聽器,主要是單擊動作;第2處是設(shè)置Graphics類對象g的顏色通過將從chColor中選中的字符串轉(zhuǎn)換成colorValues類型來實現(xiàn);第3處定義一個MouseEventListener類來繼承MouseAdapter鼠標(biāo)事件適配器。