<TABLE> <S> <C>
<PAGE>
<ARTICLE> 5
<MULTIPLIER> 1,000
<S> <C> <C>
<PERIOD-TYPE> YEAR 9-MOS
<FISCAL-YEAR-END> JUN-30-1999 MAR-31-2000
<PERIOD-START> JUL-31-1998 JUL-31-1999
<PERIOD-END> JUN-30-1999 MAR-31-2000
<CASH> 5,833 4,118
<SECURITIES> 0 0
<RECEIVABLES> 4,517 5,376
<ALLOWANCES> 203 154
<INVENTORY> 3,306 4,123
<CURRENT-ASSETS> 14,924 15,527
<PP&E> 3,136 3,879
<DEPRECIATION> 2,260 2,721
<TOTAL-ASSETS> 17,292 17,527
<CURRENT-LIABILITIES> 6,815 5,342
<BONDS> 0 0
0 0
0 0
<COMMON> 3 3
<OTHER-SE> 10,309 12,072
<TOTAL-LIABILITY-AND-EQUITY> 17,292 17,527
<SALES> 32,980 32,631
<TOTAL-REVENUES> 32,980 32,631
<CGS> 16,824 15,644
<TOTAL-COSTS> 29,207 30,465
<OTHER-EXPENSES> 40 104
<LOSS-PROVISION> 0 0
<INTEREST-EXPENSE> (151) (154)
<INCOME-PRETAX> 3,884 2,216
<INCOME-TAX> 1,098 1,081
<INCOME-CONTINUING> 3,773 2,166
<DISCONTINUED> 0 0
<EXTRAORDINARY> 0 0
<CHANGES> 0 0
<NET-INCOME> 2,786 1,135
<EPS-BASIC> 0.10 0.04
<EPS-DILUTED> 0.10 0.03
</TABLE>