use swing components