简答题:本题的功能是定义自已的组件类。窗口中排布着12个按钮,鼠标移动按钮时,按钮背景颜色改变,用鼠标单击 按钮时,后台将显示该

  • 题目分类:Java
  • 题目类型:简答题
  • 号外号外:注册会员即送体验阅读点!
题目内容:
本题的功能是定义自已的组件类。窗口中排布着12个按钮,鼠标移动按钮时,按钮背景颜色改变,用鼠标单击 按钮时,后台将显示该按钮对应的字符。
import java.awt.*;
import java.awt.event.*;
import java.util.*;
class java3 extends Frame{
String keys="l23456789*0#";
java3(){
super("java3");
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e){
System.exit(O);
}
});
setLayout(new GridLayout(4,3,6,6));
for(int i=0;i<keyslength;i++)){
KeyButton kb=new KeyButton(keys.charAt
(i));
kb.addkeyListener(this)
kb.setBackground(Color.pink);
kb.setForeground(Color.black);
add(kb);
}
setSize(200,200);
show();
}
class KeyEventHandler extends KeyAdapter{
public void keyTyPed(KeyEvent evt){
System.out.println(evt.getChar())
}
}
public static void main(String[]args){
newjava3();
}
}
class KeyButton extends Component{
KeyListener keyListener;
boolean highlighted;
char key;
KeyButton(char k){
this.key=k;
addMouseListener(new MouseEventHandler()):
}
public void paint(Graphics g){
int W=getSize().width;
int h=getSize().height;
String s=""+key;
FontMetrics fm=g.getFontMetrics();
if(highlighted){
g.setColor(getBackground());
g.fillRoundRect(0,0,w-1,h-1,10,10);
}
g.setColor(getForeground());
g.drawRoundRect(0,0,w-1,h-1,10,10);
g.drawString(s,(w-fm.stringWidth(s))/2,
(h-fm.getHeight())/2+fm.getAscent());
}
class MouseEventHandler extends MouseAdapter{
public void mousePressed(MouseEvent evt){
if(keyListener!=null){
keyListener.keyTyped(
new KeyEvent(KeyButton.this,KeyEvent.KEY_
TYPED,
System.currentTimeMillis(),
0,KeyEvent.VK_UNDEFINED,key));
}
}
public void mouseEntered(MouseEvent evt){
highlighted=true;
repaint();
}
public void mouseExited(MouseEvent evt){
highlighted=false;
repaint();
}
}
public synchronized void addKeyListerner(KeyLis-
tener l){
keyListener=AWTEventMuhieaster.add(key-
Listener,1);
}
public synchronized void removeKeyListener(Key-
Listener l){
keyListener=AWTEventMuhicaster.remove
(keyListener,1);
}
}
参考答案:【答案仅供学习,请勿对照自行用药等】
答案解析:

关于线程的生命周期以下状态正确的是(  )。

关于线程的生命周期以下状态正确的是(  )。 A.新建状态、可运行状态、阻塞状态、恢复状态和终止状态 B.新建状态、运行状态、阻塞状态、恢复状态和终止状态 C.

查看答案

下列方法中,声明抛出InterruptedException类型异常的方法是(  )。

下列方法中,声明抛出InterruptedException类型异常的方法是(  )。 A.suspend() B.resume() C.sleep() D.s

查看答案

在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(  )。

在对象方法中,一个对象请求另一个对象为其服务的方式是通过发送(  )。 A.调用语句 B.命令 C.H令 D.消息

查看答案

点击开始播放听力mp3:{MP3:http://wximg.233.com/attached/media/2013081

点击开始播放听力mp3:{MP3:http://wximg.233.com/attached/media/20130819/201308191529752975

查看答案

程序设计语言的基本成分是数据成分、运算成分、控制成分和(  )。

程序设计语言的基本成分是数据成分、运算成分、控制成分和(  )。 A.对象成分 B.变量成分 C.语句成分 D.传输成分

查看答案