2015-01-10 3 views
0

Мое приложение должно отображать различные наборы информации в разных jtable, например, если приложение имеет результат группы 1, результат группы 2 и результат группы 3, тогда мне нужно отображать каждую группу в отдельном в отдельности, используя отдельную jtable для каждой группы. Когда пользователь нажимает кнопку на панели инструментов, мне нужно проверить все jtable и убедиться, что они не пусты. Проблема, с которой я столкнулся, - поскольку число создаваемых jtable будет динамическим (в зависимости от количества групп во время выполнения), может ли кто-нибудь предложить мне подход к дизайну, который поможет мне поддерживать список созданных jtables и перебирать их через jtable. Любые предложения или ссылочный пример окажут большую помощь!Сохранение значений из нескольких jtable

Пример кода: -

table.addMouseListener(new MouseAdapter() 
{       
public void mouseClicked(MouseEvent e){ 
    // here i need to print the JTable Name         
}  
}); 

ответ

0

Ваш вопрос очень широкий, возможно, слишком широка, чтобы адекватно ответить, но это, кажется, что вы будете нуждаться в java.util.List<T> из что-то (часто реализуется как ArrayList<T>) , Это может быть List<JTable>, или List<ClassThatHoldsATable> или, возможно, List<ModelsForATable>. Таким образом, вы можете добавлять или удалять элементы из списка по мере необходимости, перебирать список, выполняя любую проверку, и т. Д.

Редактировать: вы отредактировали свой вопрос и теперь можете сказать почти то же самое. Учитывая это изменение, я не совсем уверен, где вы застряли.


Редактировать
на основе обновленного вопроса и код:

table.addMouseListener(new MouseAdapter() 
{       
public void mouseClicked(MouseEvent e){ 
    // here i need to print the JTable Name         
}  
}); 

вопросов:

  • Я обычно избегаю mouseClicked, так как это может быть легко для того, чтобы не реагировать на пользователь, если щелкнуть, слегка передвиньте мышь, а затем отпустите. Обычно я использую метод mousePressed.
  • Что вы подразумеваете под "JTable Name"? Если вы имеете в виду имя переменной, то не ходите по этому маршруту, поскольку имена переменных не все, что полезно или полезно. Если вы имеете в виду JTable ссылку на объект, который является гораздо более важным, чем имя переменной, а, значит, вы его получили:

например,

table.addMouseListener(new MouseAdapater() { 

    @Override // never forget this guy 
    public void mousePressed(MouseEvent e) { 

     // you've got your JTable reference right here! 
     JTable selectedTable = (JTable) e.getSource(); 

     // now what you do with it will depend on your needs and your code 
    } 
}); 

Если вам абсолютно необходимо связать объект с String, затем рассмотрите возможность использования Map<JTable, String>, такого как HashMap.

+0

Спасибо! позвольте мне попробовать этот подход сейчас! – Jagan

+0

Ваш подход помог мне! Спасибо. Однако мне может понадобиться ваша помощь еще раз. В моем приложении (см. Пример в моем вопросе), когда пользователь выполняет операцию щелчка мыши на любой из этих jtable, мне нужно сохранить это имя jtable, можно ли получить/идентифицировать jtable? – Jagan

+0

Да, я попробовал это. У меня есть 2 JTables и onClick, я печатаю эту информацию - e.getSource(). ToString(); Тем не менее, как jTable печатает ту же информацию «javax.swing.JTable [, 0,0,450x80, alignmentX = 0.0, alignmentY = 0.0, border =, flags = 251658568, maximumSize =, minimumSize =, preferredSize =, autoCreateColumnsFromModel = true, autoResizeMode = AUTO_RESIZE_SUBSEQUENT_COLUMNS, cellSelectionEnabled = false, editingColumn = ... "Я не могу отличить jTable. Ваши предложения о том, как идентифицировать таблицу, будут очень полезны .... спасибо .... – Jagan

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