Ajuda com problema de repaint() em GUI

O esquema é o seguinte, estou criando um programa para mostrar/avaliar estatísticas de um banco de dados de Poker, e estou com alguns problemas na criação da GUI.

A idéia é basicamente escrever uma tabela com os dados, e certos dados codificados por cor para melhor visualização, e esses serão atualizados toda vez que uma classe interna como ‘updateGui()’ seja chamada externamente.

Achei que o método mais prático seria criar um JFrame para a janela, e inserir uma array de JLabels dentro dela. Porém, ainda mesmo antes de experimentar com os JLabels, decidi desenhar as linhas e colunas separadoras, porém não consigo que o repaint() funcione direito. As linhas aparecem corretamente quando eu coloco para serem desenhadas dentro do paint(), porém, em um caso onde eu preciso adicionar / remover linhas, eu gostaria de criar uma nova função apenas para desenhar essas linhas, porém o repaint() não pinta nada. Aparentemente é um problema comum, mas pesquisei na net e encontrei diversas respostas diferentes, e só complicou as coisas mais ainda… Segue o código como exemplo.

A classe Display é a classe parent, que vai chamar todas as funções internas da TableWindow.

public class Display {
	
	public static void main(String args[]) {
		TableWindow tableWindow = new TableWindow();
		
		tableWindow.displayLines(9);
	}
public class TableWindow extends JFrame {
	private final Color bgColor = new Color(236, 233, 216);
	
	TableWindow() {
		super("Teste");
		setBounds(0, 608, 1680, 412);
		setBackground(bgColor);
		getContentPane().setBackground(bgColor);
		setLayout(null);
		getContentPane().setLayout(null);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);  
		setResizable(false);
	}
	
	public void paint(Graphics g) {
		//g.setColor(Color.BLACK);
		//g.drawRect(40, 50, 60, 60);
	}
	
	void displayLines(int players) {
		Graphics g = this.getGraphics();
		g.setColor(Color.BLACK);
		for(int i = 0; i < players; i++) {
			g.drawLine(20, 50 + 20 * i, 600, 50 + 20 * i);
		}
		
		repaint();
	}
}