Активные элементы в разгаре JTree, JTable или JList - PullRequest
2 голосов
/ 01 сентября 2011

Мне нужен Контейнер с похожими JPanel, выстроенными один под другим, который можно выбрать.Я мог бы:

  1. Использовать JList с настраиваемым средством визуализации, но эти JPanel были бы пассивными элементами, это не то, чего я хочу.
  2. Реализация моего собственного контейнера с помощью 'активные 'JPanel s, но они не могут быть выбраны.Или они могли сделать выбор? Возможно, MouseListener и доступ к выбранным по умолчанию системным цветам фона может быть способом, но это кажется слишком сложным
  3. Используйте JTable или JTree спользовательские редакторы ячеек, отображающие 'active' JPanel.Но эти активные части будут реагировать только на «второй» щелчок, сначала для активации редактора, а затем для выполнения действительного действия JPanel.это также недопустимо.

Чтобы получить более наглядное впечатление, вот пример того, что это может означать:

A JList, содержащий элементы списка, которые имеюткаждый из двух функциональных JButtons.

Ответы [ 3 ]

2 голосов
/ 01 сентября 2011

Я не уверен, что понимаю ваш «пример». Если вам нужны две функциональные кнопки, используйте таблицу JTable, в которой функциональные кнопки находятся в отдельных столбцах. Тогда ваши данные будут отображаться в других столбцах.

Столбец Столбец Столбец показывает, как это можно сделать.

2 голосов
/ 01 сентября 2011

Как вы обнаружили, просто поместить JPanel внутрь JList не совсем так, как вам бы хотелось. JPanel будет пассивным и не будет принимать события - по сути, все, что происходит, это просто ваша JPanel рисуется, это не живой компонент.

Вместо использования JList для размещения ваших панелей в списке используйте менеджер списков, например BoxLayout или GridLayout. Если вы хотите, чтобы все ваши панели были одинакового размера, используйте GridLayout только с одним столбцом.

1 голос
/ 01 сентября 2011

Ваш вопрос (ы) для меня не ясен, может быть, здесь

есть JTable , с одним TableColumn, но без TableHeader,содержит JPanel с активным JComponents внутри (вы можете реализовать TableCellEditor для всех JComponents) как JComboBox , JButton и JTextField

...