<TABLE> <S> <C>

<PAGE>

<ARTICLE> 5
<LEGEND>
THIS SCHEDULE CONTAINS SUMMARY FINANCIAL INFORMATION EXTRACTED FROM FINANCIAL
STATEMENTS AND NOTES THERETO CONTAINED IN THE COMPANY'S ANNUAL REPORT ON FORM
10-K FILED ON MARCH 30, 2000 AND IS QUALIFIED IN ITS ENTIRETY BY REFERENCE TO
SUCH FINANCIAL STATEMENTS.
</LEGEND>
<MULTIPLIER> 1,000

<S>                             <C>                     <C>
<PERIOD-TYPE>                   YEAR                   YEAR
<FISCAL-YEAR-END>                          DEC-31-1999             DEC-31-1998
<PERIOD-START>                             JAN-01-1999             JAN-01-1998
<PERIOD-END>                               DEC-31-1999             DEC-31-1998
<CASH>                                           2,733                   5,828
<SECURITIES>                                         0                       0
<RECEIVABLES>                                   23,235                  17,890
<ALLOWANCES>                                         0                       0
<INVENTORY>                                     19,449                  14,992
<CURRENT-ASSETS>                                48,807                  40,505
<PP&E>                                          49,452                  42,081
<DEPRECIATION>                                       0                       0
<TOTAL-ASSETS>                                 114,540                  98,442
<CURRENT-LIABILITIES>                           20,883                  20,537
<BONDS>                                              0                       0
<PREFERRED-MANDATORY>                                0                       0
<PREFERRED>                                          0                       0
<COMMON>                                            92                      92
<OTHER-SE>                                      62,247                  52,488
<TOTAL-LIABILITY-AND-EQUITY>                   114,540                  98,442
<SALES>                                        120,670                  92,710
<TOTAL-REVENUES>                                     0                       0
<CGS>                                           76,115                  56,578
<TOTAL-COSTS>                                        0                       0
<OTHER-EXPENSES>                                26,368                  21,490
<LOSS-PROVISION>                                     0                       0
<INTEREST-EXPENSE>                               2,696                   1,342
<INCOME-PRETAX>                                 15,555                  13,858
<INCOME-TAX>                                     6,221                   5,749
<INCOME-CONTINUING>                              9,334                   8,109
<DISCONTINUED>                                       0                       0
<EXTRAORDINARY>                                      0                       0
<CHANGES>                                            0                       0
<NET-INCOME>                                     9,334                   8,109
<EPS-BASIC>                                       1.03                     .88
<EPS-DILUTED>                                     1.02                     .88


</TABLE>