One approach would be creating a custome class like ResultCollector (in my case this is JmeterOutListener.java) and collect the values from there since you have the access them. You can do whatever you want in the sampleOccurred method in there. 
You can decode the ResultCollector class and see it's functioanlity further. 
JMeterTestFromCode.java
public class JMeterTestFromCode {
    public static void main(String[] args) throws Exception{
         String jmeterHome1 = "/rezsystem/apache-jmeter-2.11/apache-jmeter-2.11";
         File jmeterHome=new File(jmeterHome1);
         String slash = System.getProperty("file.separator");
         if (jmeterHome.exists()) {
             File jmeterProperties = new File(jmeterHome.getPath() + slash + "bin" + slash + "jmeter.properties");
             if (jmeterProperties.exists()) {
                 //JMeter Engine
                 StandardJMeterEngine jmeter = new StandardJMeterEngine();
                 //JMeter initialization (properties, log levels, locale, etc)
                 JMeterUtils.setJMeterHome(jmeterHome.getPath());
                 JMeterUtils.loadJMeterProperties(jmeterProperties.getPath());
                 JMeterUtils.initLogging();// you can comment this line out to see extra log messages of i.e. DEBUG level
                 JMeterUtils.initLocale();
                 // JMeter Test Plan, basically JOrphan HashTree
                 HashTree testPlanTree = new HashTree();     
                 // HTTP Sampler
                 HTTPSampler httpSampler = new HTTPSampler();
                 httpSampler.setDomain("www.google.com");
                 httpSampler.setPort(80);
                 httpSampler.setPath("/");
                 httpSampler.setMethod("GET");
                 // Loop Controller
                 TestElement loopCtrl = new LoopController();
                 ((LoopController)loopCtrl).setLoops(1);
                 ((LoopController)loopCtrl).addTestElement(httpSampler);
                 ((LoopController)loopCtrl).setFirst(true);
                 // Thread Group
                 SetupThreadGroup threadGroup = new SetupThreadGroup();
                 threadGroup.setNumThreads(1);
                 threadGroup.setRampUp(1);
                 threadGroup.setSamplerController((LoopController)loopCtrl);
                 // Test plan
                 TestPlan testPlan = new TestPlan("MY TEST PLAN");
                 testPlanTree.add("testPlan", testPlan);
                 testPlanTree.add("loopCtrl", loopCtrl);
                 testPlanTree.add("threadGroup", threadGroup);
                 testPlanTree.add("httpSampler", httpSampler);     
                 JmeterOutListener jmeterOutListener = new JmeterOutListener();
                 testPlanTree.add(testPlanTree.getArray()[0], jmeterOutListener);
                 // Run Test Plan
                 jmeter.configure(testPlanTree);
                 jmeter.run();
                 System.exit(0);
             }
         }
         System.err.println("jmeter.home property is not set or pointing to incorrect location");
         System.exit(1);    
    }
}
JmeterOutListener.java
public class JmeterOutListener extends AbstractListenerElement implements SampleListener,Clearable,Serializable,TestListener,Remoteable,NoThreadClone{
    public JmeterOutListener() {
        // TODO Auto-generated constructor stub
    }
    @Override
    public void testEnded() {
        // TODO Auto-generated method stub
    }
    @Override
    public void testEnded(String arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void testStarted() {
        // TODO Auto-generated method stub
    }
    @Override
    public void testStarted(String arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void testIterationStart(LoopIterationEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void clearData() {
        // TODO Auto-generated method stub
    }
    @Override
    public void sampleOccurred(SampleEvent event) {
        SampleResult sample = event.getResult();
        System.out.println("sampleOccurred().sample.getTimeStamp() : " + sample.getTimeStamp());
        System.out.println("sampleOccurred().sample.getTime() : " + sample.getTime());
        System.out.println("sampleOccurred().sample.getSampleLabel() : " + sample.getSampleLabel());
        System.out.println("sampleOccurred().sample.getResponseCode() : " + sample.getResponseCode());
        System.out.println("sampleOccurred().sample.getResponseMessage() : " + sample.getResponseMessage());
        System.out.println("sampleOccurred().sample.getThreadName() : " + sample.getThreadName());
        System.out.println("sampleOccurred().sample.isSuccessful() : " + sample.isSuccessful());
        String              message             = null;
        AssertionResult[]   results             = sample.getAssertionResults();
        if (results != null)
        {
            for (int i = 0; i < results.length; ++i) {
                message = results[i].getFailureMessage();
                System.out.println("sampleOccurred().message : " + message);
                if (message != null) {
                    break;
                }
            }
        }
        System.out.println("sampleOccurred().sample.getBytes() : " + sample.getBytes());
        System.out.println("sampleOccurred().sample.getGroupThreads() : " + sample.getGroupThreads());
        System.out.println("sampleOccurred().sample.getAllThreads() : " + sample.getAllThreads());
        System.out.println("sampleOccurred().sample.getURL() : " + sample.getURL());
        System.out.println("sampleOccurred().sample.getLatency() : " + sample.getLatency());
        System.out.println("sampleOccurred().sample.getDataEncodingWithDefault() : " + sample.getDataEncodingWithDefault());
        System.out.println("sampleOccurred().sample.getSampleCount() : " + sample.getSampleCount());
        System.out.println("sampleOccurred().sample.getErrorCount() : " + sample.getErrorCount());
    }
    @Override
    public void sampleStarted(SampleEvent arg0) {
        // TODO Auto-generated method stub
    }
    @Override
    public void sampleStopped(SampleEvent arg0) {
        // TODO Auto-generated method stub
    }
}