单项选择题

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

A.新建状态、可运行状态、阻塞状态、恢复状态和终止状态
B.新建状态、运行状态、阻塞状态、恢复状态和终止状态
C.新建状态、可运行状态、运行状态、阻塞状态和终止状态
D.新建状态、可运行状态、运行状态、恢复状态和终止状态
热门 试题

问答题
本题的功能是定义自已的组件类。窗口中排布着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 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); } }