欢迎来到牛牛题库网 牛牛题库官网
logo

未知题型

本题的功能是定义自已的组件类。窗口中排布着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.awt.*;
B.awt.event.*;
C.util.*;
D.exit(O);
E.charAt
F.addkeyListener(this);
G.setBackground(Color.pink);
H.setForeground(Color.black);
I.out.println(evt.getChar);
J.key=k;
K.width;
L.height;
M.getFontMetrics;
N.setColor(getBackground);
O.fillRoundRect(0,0,w-1,h-1,10,10);
P.setColor(getForeground);
Q.drawRoundRect(0,0,w-1,h-1,10,10);
R.drawString(s,(w-fm.stringWidth(s))/2,
S.getHeight)/2+fm.getAscent);
T.keyTyped(
U.this,KeyEvent.KEY_
V.currentTimeMillis,
W.VK_UNDEFINED,key));
X.add(key-
Y.remove
【参考答案】

第1处:int i=0;i第2处:kb.addKeyListener(new ......

(↓↓↓ 点击下方‘点击查看答案’看完整答案 ↓↓↓)

点击查看答案
微信小程序免费搜题
微信扫一扫,加关注免费搜题

微信扫一扫,加关注免费搜题