Интерактивный JTable

Я хотел бы создать интерактивный JTable. Для этого я хотел бы добавить JPanels в ячейки таблицы. Как только панели JPanel находятся в ячейках, я могу добавить свои различные компоненты в панели JPanel, что сделает таблицу интерактивной. Каждая панель JPanel может иметь разные компоненты. Можно ли это сделать, и нужно будет создать только 1 редактор ячеек таблицы и 1 средство тендера ячеек таблицы. Кто-нибудь знает лучший способ сделать это?

Спасибо

РЕДАКТИРОВАТЬ: Спасибо за ответы. На самом деле у меня уже есть фреймворк, который я использую. Мне просто нужна была JTable, в которую пользователи могли бы перетаскивать изображения, воспроизводить фильмы, отображать графики и т. д. У меня уже есть функциональные возможности для этих вещей, мне просто нужна была JPanel, чтобы добавить их. Я хотел, чтобы он отображался в JTable, чтобы ячейки можно было сортировать, перемещать, добавлять/удалять строки/столбец и хорошо структурировать. Я не мог заставить его работать с помощью JTable, поэтому я создал свой собственный. Это просто JPanel, который содержит меньшие JPanels (ячейки таблицы) с использованием GridLayout. Это работает достаточно хорошо для моих целей. Просто больно переписывать всю функциональность с нуля, которая есть в таблице.


person user489041    schedule 12.11.2010    source источник
comment
Я также хотел достичь вашей цели .... к сожалению, когда я использовал кнопку внутри jpanel, которая находится внутри ячейки jtable, ... jbutton не дает нормального взаимодействия (анимация). как это сделать?   -  person gumuruh    schedule 10.02.2012


Ответы (3)


Это трудно. JTable фактически использует визуализаторы ячеек только для рисования содержимого ячейки. Я бы порекомендовал проверить, будет ли более простым решением сетка, упакованная в панель прокрутки.

person ordnungswidrig    schedule 12.11.2010
comment
gridlayout в полосу прокрутки, что вы имеете в виду? @ordnungswidrig ? - person gumuruh; 10.02.2012

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

person Adamski    schedule 12.11.2010
comment
просто любопытно, вы предпочитаете MyDoggy FlexDock (flexdock.dev.java.net)? - person Alex Nikolaenkov; 12.11.2010
comment
@Alex: Боюсь, я на самом деле не использовал flexdock, поэтому не могу их сравнивать. Я проверю это, хотя. - person Adamski; 13.11.2010

JSplitPane может быть альтернативой в этом контексте : одна панель будет содержать JTable, а другая отображает расширенные сведения о выбранной строке. Пример сравнения с использованием GridLayout показан здесь.

person trashgod    schedule 12.11.2010