2012-02-11 4 views
-1

Я использую следующий код для отображения изображения на дисплее при щелчке мыши. Когда я использую следующий код, он покажет путь к изображению в частности cell.how, чтобы отобразить изображение в эта конкретная ячейка?Отображение пути к файлу Вместо изображения в jtable

private void jTable1MouseClicked(java.awt.event.MouseEvent evt) { 
URL url = getClass().getResource("image/Pointer.GIF"); 
ImageIcon testIcon = new ImageIcon(url); 
jTable1.setValueAt(testIcon, 0, 2); 
} 
+0

о umpfth time: JTable отлично справляется с значками, если модель возвращает правильный класс столбцов. Как часто вы планируете задать и получить тот же самый ответ? – kleopatra

+1

the downvote - для повторения одного и того же вопроса снова и снова ... – kleopatra

ответ

1

Напишите свой собственный многоразовый компонент и сами управляйте событиями. Вы завершаете 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 без каких-либо проблем и сохранять код в чистоте.

+0

'ClickHandler' ..' onClick'? Что у J2SE есть? –

+0

Я имел в виду, чтобы компонент реализовал MouseListener и прослушал событие 'click'. Это было просто абстрактное объяснение. –

+0

Не могли бы вы отредактировать 'ClickHandler' (подразумевает имя класса) для 'click handler' (указывает, что требуется вход пользователя) и т. Д.? Это, наряду с последними изменениями, было бы достойным голосования. –

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