Czy ktoś może wskazać mi właściwy kierunek dodawania obrazu do komórki tabeli Java.Jak wstawić obraz do komórki JTable
Odpowiedz
Albo stworzyć imageicon góry przód:
ImageIcon icon = new ImageIcon("image.gif");
table.setValueAt(icon, row, column);
Albo można spróbować przesłanianie renderujący dla danej dziedzinie ikon:
static class IconRenderer extends DefaultTableCellRenderer {
public IconRenderer() { super(); }
public void setValue(Object value) {
if (value == null) {
setText("");
}
else
{
setIcon(value);
}
}
JTable już zapewnia domyślny renderer dla ikon. Wystarczy powiedzieć tabeli, jakie dane są przechowywane w danej kolumnie, aby mógł wybrać odpowiedni renderer. Odbywa się to poprzez nadpisanie getColumnClass (...) Sposób:
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();
}
});
}
}
Myślę, że ta odpowiedź jest lepsza ... – Sierox
Tak, działa! Dzięki. Pytanie: Dlaczego linia setPreferredScrollableViewportSize? Wydaje się działać bez niego. –
@StefanReich, Nie ma nic wspólnego z wyświetlaniem ikony w tabeli. Rozmiar ramki jest inny, gdy robisz paczkę(). Zależy od twoich wymagań, jeśli używasz tej metody, czy nie. – camickr
- 1. Jak dodać podpowiedź do komórki w jtable?
- 2. Jak dodać JComboBox do komórki JTable?
- 3. JTable: jak uzyskać wybrane komórki?
- 4. jak wstawić wartość do komórki DataGridView?
- 5. Jak oznaczyć wejście komórki JTable jako nieprawidłowe?
- 6. wstawić obraz do bufora tekstowego
- 7. Jak wstawić obraz do ramy octopress?
- 8. Tylko komórki specyficzne dla koloru w JTable
- 9. Ustawianie kursora myszy dla konkretnej komórki JTable
- 10. Ustaw wszystkie komórki JTable nie można wybrać
- 11. JTable - Przeniesienie komórki do trybu edycji po naciśnięciu Tab
- 12. Jak dodać podpowiedzi do wierszy JTable
- 13. Jak mogę wstawić pasek przewijania w jquery jtable?
- 14. Jak korzystać z edytora komórek niestandardowych JTable i renderujący komórki
- 15. Jak wstawić obraz za pomocą HTML.ActionLink?
- 16. Jak mogę wstawić obraz z iTextSharp do istniejącego pliku PDF?
- 17. Interactive JTable
- 18. Jak ustawić JTable na edytowanej komórce
- 19. Słuchacz zmiany wartości JTable
- 20. pozwalają użytkownikowi wstawić obraz w aplikacji Android
- 21. Jak zastosować styl komórki do DataGrid komórki
- 22. Umieść obraz pośrodku komórki za pomocą migradoc
- 23. Scalanie komórek w JTable
- 24. Jak wstawić bieżącą datę do kolumny wiersza?
- 25. Jak mogę wstawić obrazy do dokumentu .rnw
- 26. Jak przeciągać i upuszczać pliki do JTable?
- 27. jak skopiować zawartość pliku jtable do schowka
- 28. Klucz do wprowadzania danych JTable
- 29. Dynamiczne dodawanie JTable do JScrollPane
- 30. jak wyczyścić JTable
Innym przykładem może być wzięty stąd: http://www.javareference.com/jrexamples/viewexample.jsp?id=125 – gumuruh
setIcon ? gdzie to jest zdefiniowane? – Buffalo
@Buffalo setIcon (wartość (ImageIcon)); – Benas