Regarding my comment under OPs question here a solution using nested numerical integration
area[J_?NumberQ,L_?NumberQ]:=Block[{int},If[L<0,int=L*NIntegrate[Max[J x,x^2],{x,0,1}],int=L*NIntegrate[Min[J x,x^2],{x,0,1}]];Return[Abs[int]]]
volume[J_?NumberQ]:=NIntegrate[area[J,L],{L,-1,1}]
areaBobHanlon[J_,L_]=Piecewise[{{Abs[L*Integrate[Max[J x,x^2],{x,0,1}]],L<0}},Abs[L*Integrate[Min[J x,x^2],{x,0,1}]]];
volumeBobHanlon[J_]=Integrate[areaBobHanlon[J,L],{L,-1,1}]//Simplify;
Table[{J,volume[J]},{J,-5,5,1/2}];
Show[{Plot[volumeBobHanlon[J],{J,-5,5},Frame->True,GridLines->Automatic,FrameLabel->{"J","volume[J]"}],ListPlot[%]}]
for comparison I included the analytical solution presented by Bob Hanlon. The code above should produce this plot

EDIT: Regarding the extension to higher dimensions mentioned in the comments under this answer: yes it is possible to extend this code but the way the code is written makes it highly ineffective. I would strongly suggest using piecewise functions and either integrating analytically (as pointed out by Bob Hanlon) or numerically without nesting:
dArea2dx[J_,L1_,L2_,x_]:=Abs[Piecewise[{{L1*Max[J x,x^2],L1<0}},L1*Min[J x,x^2]]-Piecewise[{{L2*Max[J x^2,x],L2<0}},L2*Min[J x^2,x]]]
volume2[J_?NumberQ]:=NIntegrate[dAreadx[J,L1,L2,x],{x,0,1},{L1,-1,1},{L2,-1,1}]
volume2Analytical=Integrate[dAreadx[J,L1,L2,x],{x,0,1},{L1,-1,1},{L2,-1,1}]
Table[{J,volume2[J]},{J,-5,5,1/2}];
Show[{Plot[volume2Analytical,{J,-5,5},Frame->True,GridLines->Automatic,FrameLabel->{"J","volume2[J]"}],ListPlot[%]}]
which results (after a few seconds of computation time) in

Mathematica is quite good in integrating over Piecewise
functions with simple values and seems to handle the Min
and Max
in this problem quite well. If high dimensional integration becomes necessary one should avoid unnecessary nesting of integrals or if this is for some reason unavoidable or desired (this problem does not call for it) one should decrease the PrecisionGoal
and AccuracyGoal
to speed up computation.
Area
. I had to use a different symbol name in testing sinceArea
is protected in my version of Mathematica but something likearea[J_?NumberQ, L_?NumberQ] :=...
does the trick. UsingVol[J_?NumberQ] :=...
is also a good a idea. To get a numerical result fast I removed the options forNIntegrate
invol
. $\endgroup$