2013-02-20 2 views
0

У меня возникла проблема с отображением двух разных JTables, которые были созданы теми же AbstractTableModel. Я действительно не думаю, что важно показать код AbstractTableModel, но если меня попросят, я тоже могу его представить.Java: Показать два разных JTables, которые созданы из того же AbstractTableModel

Я просто называю два раза тем же классом, который расширяет этот AbstractTableModel для двух мастеров, которые я использую для создания таблиц.

final SwitchTableModel model = new SwitchTableModel(user_decide); 
final SwitchTableModel model1 = new SwitchTableModel(duplicates); 
JTable table = new JTable(model); 
JTable table1 = new JTable(model1); 

JFrame frame = new JFrame ("Results"); 
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
final JPanel grid = new JPanel(); 
grid.add(toolbar); 
grid.add(toolbar1); 
grid.add(table); 
grid.add(table1); 
frame.add(grid); 
frame.pack(); 
frame.setVisible(true); 

Я также создать панель инструментов, которые являются такими же, я также думаю, что это не имеет никакого значения, поэтому я не выкладываю код - я бы это сделать, если вы думаете, что нужно.

Проблема в том, что в конце я вижу то же самое JTable два раза, поэтому я полагаю, что это имеет какое-то отношение к тому, как я называю класс.

+0

Проблема возникает либо из 'SwitchTableModel' либо из' user_decide'/'duplicates'. так что да, я бы предложил добавить коды, связанные с ними. –

+0

, но дело в том, что если я изменю порядок первых двух строк, то он показывает 2 раза только последние. –

+1

Отправьте код вашего 'SwitchTableModel'. Я бы заподозрил несоответствующее ключевое слово 'static' где-то, но действительно сложно угадать без кода. –

ответ

2

Проблема возникает из неподходящего static ключевого слова .:

public static int [][] data; 

static означает, что значение этой переменной будет одинаковым для всех случаев. Вместо этого разместите свой data внутри своего SwitchTableModel и не делайте его static. Это немедленно устранит ваши проблемы.

Что-то вроде:

public class SwitchTableModel extends AbstractTableModel { 
    private int[][] data; 
    //... the rest of your current code. 
} 
-1

Попробуйте добавить две отдельные панели прокрутки на панель, а затем добавьте JTables в панели прокрутки. Кроме того, ваше непонятное, что именно представляет собой ваша проблема с отображением, поскольку JTables не отображаются или данные не отличаются друг от друга ... ect

0

Я думаю, что и значение, переданное в SwitchTableModel user_decide и дубликаты имеют одинаковые значения. В противном случае в приведенном выше коде нет проблемы.

Смежные вопросы