There are two ways I can think of for doing this. Neither of them are elegant, but that may be the reality of your problem.
One is that you could define two series that happen to connect to each other. This is probably your best option, but you will also have to fix your legend.
This would make your second series show as a dashed line:
plot.getRenderer().setSeriesStroke(
    1, 
    new BasicStroke(
        2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
        1.0f, new float[] {6.0f, 6.0f}, 0.0f
    )
Edit: My original "second option" was wrong. Here is a better way to do it:
Override the getItemStroke() method in AbstractRenderer.
     final BasicStroke dashedStroke = new BasicStroke(
                  2.0f, BasicStroke.CAP_ROUND, BasicStroke.JOIN_ROUND,
                  1.0f, new float[] {6.0f, 6.0f}, 0.0f);
     XYLineAndShapeRenderer render = new XYLineAndShapeRenderer() {
        @Override
        public Stroke getItemStroke(int row, int column) {
            if (column < dashedThreshold) {
                return lookupSeriesStroke(row);
            } else {
               return dashedStroke;
            }
       };