John "Jack" Robert Barnes (20 May 1905 – 6 October 1999) was an Australian rules footballer who played with South Melbourne in the Victorian Football League (VFL) during the 1920s.
Born in Williamstown, Barnes was used mostly as a forward and kicked 34 goals in 1928, including a bag of six against Geelong at Lake Oval.
His son Ken played at South Melbourne in the 1960s.
Barnes also represented Victoria in a first-class cricket match in 1930 as a right-handed batsman.
Playing against Tasmania at the MCG, Barnes batted in the middle order and made 51.
It would be his only innings at first-class level.
Fellow VFL footballers Stuart King and Heinrich Schrader also played in that match for Victoria.