Java обычно не любит доступ к оборудованию, поэтому вам понадобится какая-то программа-драйвер, как сказал goldenmean. Я сделал это на своем ноутбуке, найдя программу командной строки, которая делает снимок. Тогда это то же самое, что объяснил Goldenmean; вы запускаете программу командной строки из вашей java-программы в процедуре takepicture (), а остальная часть кода выполняется так же.
За исключением части о считывании значений пикселей в массив, вам лучше будет сохранить файл в BMP, который уже почти соответствует этому формату, затем использовать стандартные библиотеки изображений Java на нем.
Использование программы командной строки добавляет зависимость к вашей программе и делает ее менее переносимой, но какова была веб-камера, верно?