Не уверен, что это лучше, но есть одна возможность - использовать Панд. Имеется файл log.txt
, который выглядит следующим образом:
0 1 2 3 4
A B C D
A B C D
A B C D
A B C D
D E F G
D E F G
D E F G
D E F G
D E F G
D E F G
D E F G
A D E F G
D E F G
A D E G
Этот код будет работать:
import pandas as pd
import numpy as np
df = pd.read_csv('log.txt', sep='\s+')
combos = [[(y[1][x], y[1][x + 1]) for x in range(len(df.loc[0]) - 1)] for y in df.iterrows()]
combos = [item for sublist in combos for item in sublist if np.nan not in item]
from collections import Counter
print(Counter(combos))
Даю вам:
('A', 'B') 4
('B', 'C') 4
('C', 'D') 4
('D', 'E') 10
('E', 'F') 9
('F', 'G') 9
('A', 'D') 2
('E', 'G') 1
Добавьте, что MouseMotionListener к JTable и затем на mouseMoved () определяет, какой столбец он использует columnAtPoint JTABLE () и если это - конкретный столбец, Вы после, setCursor () на JTable.