Qualcuno può indicarmi la giusta direzione su come aggiungere un'immagine nella cella di Java Table.Come inserire un'immagine nella cella di JTable
risposta
O creare l'imageIcon in anticipo:
ImageIcon icon = new ImageIcon("image.gif");
table.setValueAt(icon, row, column);
Oppure si può provare l'override del renderer per il vostro campo di icona:
static class IconRenderer extends DefaultTableCellRenderer {
public IconRenderer() { super(); }
public void setValue(Object value) {
if (value == null) {
setText("");
}
else
{
setIcon(value);
}
}
JTable fornisce già un renderer di default per le icone. Hai solo bisogno di dire alla tabella quali dati sono memorizzati in una determinata colonna in modo che possa scegliere il renderer appropriato. Questo viene fatto l'override del metodo getColumnClass (...):
import java.awt.*;
import javax.swing.*;
import javax.swing.table.*;
public class TableIcon extends JPanel
{
public TableIcon()
{
Icon aboutIcon = new ImageIcon("about16.gif");
Icon addIcon = new ImageIcon("add16.gif");
Icon copyIcon = new ImageIcon("copy16.gif");
String[] columnNames = {"Picture", "Description"};
Object[][] data =
{
{aboutIcon, "About"},
{addIcon, "Add"},
{copyIcon, "Copy"},
};
DefaultTableModel model = new DefaultTableModel(data, columnNames)
{
// Returning the Class of each column will allow different
// renderers to be used based on Class
public Class getColumnClass(int column)
{
return getValueAt(0, column).getClass();
}
};
JTable table = new JTable(model);
table.setPreferredScrollableViewportSize(table.getPreferredSize());
JScrollPane scrollPane = new JScrollPane(table);
add(scrollPane);
}
private static void createAndShowGUI()
{
JFrame frame = new JFrame("Table Icon");
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.add(new TableIcon());
frame.setLocationByPlatform(true);
frame.pack();
frame.setVisible(true);
}
public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable()
{
public void run()
{
createAndShowGUI();
}
});
}
}
Penso che questa risposta sia migliore ... – Sierox
Sì, funziona! Grazie. Domanda: perché la linea setPreferredScrollableViewportSize? Sembra funzionare bene senza di esso. –
@StefanReich, Non ha nulla a che fare con la visualizzazione dell'icona nella tabella. La dimensione del frame è diversa quando si esegue il pack(). Dipende dal tuo requisito se usi il metodo o meno. – camickr
- 1. ActionListener nella cella JLabel o JTable
- 2. JTable: pulsanti nel pannello personalizzato nella cella
- 3. Convalida cella in JTable
- 4. come inserire il valore nella cella DataGridView?
- 5. Come inserire un'immagine nella cella excel?
- 6. Come inserire "NULL" nella cella SSMS?
- 7. Come inserire l'HTML nella cella Slickgrid?
- 8. Aggiunta di pulsanti nella cella di JTable insieme ai dati?
- 9. Ottenere valori dalla cella JTable
- 10. Come mantenere JTable sulla cella modificata
- 11. come inserire la casella di testo nella cella della tabella
- 12. Come contrassegnare l'input della cella JTable come non valido?
- 13. Cambiare il colore della cella JTable
- 14. rimozione griglia JTable (bordo della cella) completamente
- 15. nascondere una colonna nella JTable
- 16. Come selezionare tutto il testo nella cella JTable durante la modifica ma non durante la digitazione?
- 17. Come aggiungere un menu a discesa a una cella JTable
- 18. Come eliminare una cella da jTable premendo il tasto CANC?
- 19. Inserimento di JToggleButton con JPanel all'interno di una cella JTable
- 20. Mostra un suggerimento sopra una cella in una JTable
- 21. Come inserire un'interruzione di riga nella cella del foglio di calcolo OPENXML?
- 22. Come inserire NULL nella cella di tabella del database nell'editor di tabelle MS Visual Studio?
- 23. Impostazione del cursore del mouse per una cella specifica JTable
- 24. Come aggiungere suggerimenti alle righe di JTable
- 25. Ottenere la formula di un'altra cella nella cella di destinazione
- 26. come inserire testo in forma libera nella cella con elenco a discesa?
- 27. JTable chiave di immissione
- 28. Come funziona JTable RowFilter?
- 29. JTable Cell Update non funziona
- 30. UIButton nella cella UITableView come "Delete Event"
un altro esempio potrebbe essere preso da qui: http://www.javareference.com/jrexamples/viewexample.jsp?id=125 – gumuruh
setIcon ? dov'è definito? – Buffalo
@Buffalo setIcon (valore (ImageIcon)); – Benas