WordPress as a nice function is_active_widget
that you can use in your __construct and test if the widget is present in the current page and add your scripts/styles based on that ex:
function __construct() {
parent::__construct(__CLASS__, 'BasicWidget', array(
'classname' => __CLASS__,
'description' => "This is a basic widget template that outputs text to the sidebar"
));
if ( is_active_widget(false, false, $this->id_base) )
add_action( 'wp_head', array(&$this, 'add_styles_and_scripts') );
}
function add_styles_and_scripts(){
//since its wp_head you need to echo out your style link:
echo '<link rel="stylesheet" href="http://example.com/css/style.css" type="text/css" />';
//as for javascript it can be included using wp_enqueue_script and set the footer parameter to true:
wp_enqueue_script( 'widget_script','http://example.com/js/script.js',array(),'',true );
}