本题中.主窗口中有两个下拉菜单.一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。 importjava.awt.*; importj8va.awt.event.*; classjava3e

admin2013-12-02  18

问题 本题中.主窗口中有两个下拉菜单.一个控制绘制图形的颜色,另一个控制绘制的图形,在画板中单击鼠标,则以单击的位置为左上角、以选定的颜色绘制选定的图形。
importjava.awt.*;
importj8va.awt.event.*;
classjava3extendsFrame{
String[]figureNames一{“圆形”,“椭圆形”,-
正方形”,“长方形”);
String[]colorNames={“红色”,“绿色”,“蓝
色”,“黄色”};
Color[]colorValues=fColor.red.Color.green,
Color.blue,Color.yellow);
ChoicechFigure=newChoice(    );
ChoicechColor=newChoice(    );
intcurX,curY;
java3(    ){
super(”java3”);
addWindowListener(newWindowAdapter(    ){
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
}};
PanelP=newPanel(newGridLayout(1,0));
for(inti=0;ichFigure.addhem(figureNames);
}
for(inti=0;i~colorNames.1ength;i++){
chColor.addltem(colorNames);
}
P.add(ehColor);
P.add(chFigure);
add(P,BorderLayout.NORTH);
addMouseListener(this);
setSize(300,300);
show();
}
publicvoidupdate(Graphicsg){
g.getColor(colorValues[chColor.getselectedIndex
()]);

switch(chFigure.getSelectedlndex()){
case0;
g.fillOval(curX,curY.30,30);
break;
caseI:
g.fillOval(curX.curY,30,50);
break;
case2:
g.fillReet(curX,curY-30.30);
break~
case3:
g.fillRect(curX,curY.30.50);
break;
}
}
clasMouseEventListenerimplementsMouseAda-
pter{

publicvoidmousePressed(MouseEventevt){
curX=evt.getX();
curY=evt.getY();
repaint();
}
)
staticpublicvoidmain(String[]args){
newjava3();
}
}

选项

答案第1处:addMouseListener。(newMouseEventListener( ))第2处:g.set(30lor(colorValues[chColor.getSelectedIn—dex()])第3处:classMouseEventListenerextendsMouseAda—pter

解析 第1处是注册鼠标监听器,主要是单击动作I第2处是设置Graphics类对象g的颜色通过将从chColor中选中的字符串转换成colorValues类型来实现}第3处定义一个MouseEventListener类来继承MouseAdapter鼠标事件适配器。
转载请注明原文地址:https://jikaoti.com/ti/QJkiFFFM
0

最新回复(0)