Напишите свой собственный многоразовый компонент и сами управляйте событиями. Вы завершаете ImageIcon
и его путь в классе. Зарегистрируйте обработчик кликов для этого класса и прослушайте событие click, которое происходит при изменении компонента в контейнере. Сохраните переменную state
и замените содержимое контейнера. Чтобы отобразить path
, создайте JLabel
на лету и добавьте его в контейнер, или вы можете создать JLabel
, созданный при создании компонента.
Возможно ваш компонент начинается как этот
public class MyComponent extends JComponent {
private JLabel label; //This displays the path
private ImageIcon image; //This displays the image
//Create a container of your wish
//Attach a click handler to both the label and the image or the container
//OnClick swap the JComponent in your container and repaint()!
//Construct it like this:
MyComponent(String path) {
//Initialize JLabel with "text" as the path
//Load ImageIcon from the path
}
}
Это всего лишь отправная точка. Этот подход создает компонент многократного использования, поэтому вы можете иметь несколько «таких» компонентов в JTML JLabel без каких-либо проблем и сохранять код в чистоте.
о umpfth time: JTable отлично справляется с значками, если модель возвращает правильный класс столбцов. Как часто вы планируете задать и получить тот же самый ответ? – kleopatra
the downvote - для повторения одного и того же вопроса снова и снова ... – kleopatra