Java: добавление изображения в JTable? - PullRequest
1 голос
/ 06 октября 2010

У меня при нажатии большая кнопка, добавляет изображение в таблицу

    class BigButtonListener implements ActionListener{
 Image screenshot=null;
 Browser bigbrowser =null;

 BigButtonListener(Browser browser, DefaultTableModel dataModel, DefaultTableModel historyModel, JTable dataTable, JTable historyTable) {
  screenshot = browser.toImage(true);
  bigbrowser = browser;
  historyTable = historyTable;
  //table1.addRow
 }

  @Override
  public void actionPerformed(ActionEvent e) {
   // save current image
   historyModel.insertRow(0,new Object[]{new ImageIcon(screenshot)}); 
   //System.out.println(historyTable.getRowCount());

  }   
} 

, но все это добавляет текст javax.swing.ImageIcon@9dfb04, а не реальное изображение.

1 Ответ

1 голос
/ 06 октября 2010

DefaultTableCellRenderer расширяет JLabel и отображает просто setText(value.toString()).

Следуйте определенному учебному пособию по Swing в пользовательских средствах визуализации и редакторе ячеек.

Или используйте простой взлом, как это:

historyTable.setDefaultRenderer(Object.class, new DefaultTableCellRenderer() {
    protected void setValue(Object value) {
        if( value instanceof ImageIcon ) {
            setIcon((ImageIcon)value);
            setText("");
        } else {
            setIcon(null);
            super.setValue(value);
        }
    }
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...