Hallo zusammen.
Ich habe eine Tabelle in der man Zoomen kann, also die Größe der Zellen größer/kleiner machen kann.
Nun möchte ich die erste Zeile der Zelle mit einem TableCellRenderer befüllen, welcher die Zellen der ersten Spalte mit einem JPanel befüllt:
Bisher habe ich mein JPanel, welches z.B. immer ein
gezeichnetes "+" darstellt:
und meinen TableCellRenderer:
Kann ich irgendwie mein ForwardPanel jetzt unten in dem CellRenderer an die passende Stelle einfügen?
Oder muss ich im CellRenderer das JPanel erstellen?
Aber wenn z.B. nur zwei unterschiedliche JPanels existieren, dann wärs doch toll diese separaten 1mal zu zeichnen und immer in die passenden Zellen einzufügen!?
Ich habe eine Tabelle in der man Zoomen kann, also die Größe der Zellen größer/kleiner machen kann.
Nun möchte ich die erste Zeile der Zelle mit einem TableCellRenderer befüllen, welcher die Zellen der ersten Spalte mit einem JPanel befüllt:
Bisher habe ich mein JPanel, welches z.B. immer ein
gezeichnetes "+" darstellt:
Code:
public class ForwardPanel extends JPanel{
protected int height = 0;
protected int width = 0;
protected TableManager tableManager;
public ForwardPanel(TableManager tableManager){
this.tableManager = tableManager;
// Hiermit bekomme ich die Information, wie groß denn gerade die Zellen in der Tabelle sind
this.height = this.tableManager.getBoxSizeY();
this.width = this.tableManager.getBoxSizeX();
// hiermit setze ich dann die Größe des JPanels
this.setSize(width, height);
this.setBackground(Color.BLACK);
this.setVisible(true);
this.setOpaque(true);
}
public void setNewBoxSize(){
this.height = this.tableManager.getBoxSizeY();
this.width = this.tableManager.getBoxSizeX();
this.setSize(width, height);
this.repaint();
}
}
und meinen TableCellRenderer:
Code:
public class NameRenderer extends JPanel implements TableCellRenderer {
protected int FontHEIGHT;
protected TableManager tableManager;
public ChromeStrandNameRenderer(TableManager tableControler){
}
public Component getTableCellRendererComponent(JTable table, Object value,
boolean isSelected, boolean hasFocus, int row, int column) {
if (tableManager.getInf(row) == Information.PLUS) {
// hier möchte ich dann z.B. das obige Panel in die Zelle reinsetzen
} else if (tableManager.getInf(row) == Information.MINUS) {
// hier dann z.b. ein anderes Panel
}
return this;
}
public void paint(Graphics g) {
super.paint(g);
}
}
Kann ich irgendwie mein ForwardPanel jetzt unten in dem CellRenderer an die passende Stelle einfügen?
Oder muss ich im CellRenderer das JPanel erstellen?
Aber wenn z.B. nur zwei unterschiedliche JPanels existieren, dann wärs doch toll diese separaten 1mal zu zeichnen und immer in die passenden Zellen einzufügen!?