Hallo zusammen,
ich wollte, das jede Zelle eine TitledBorder bekommt... das ist gar kein Problem (haben sie ja schon!).
Nur wie ich das umsetze, das auch jede Border (also in jeder einzelnen Zelle für sich) einen anderen Title (cellBorder.setTitle()) hat, bekomme ich im Moment nicht richtig hin.
Hab schon so einiges versucht, aber logischerweise bekommen alle Zellen (TitledBorder) denselben Wert zur Anzeige im Title....
Habt ihr vielleicht noch nen Tip für mich wie man so etwas realisieren kann?
Hier mal meine JTable:
vg
jal1976
ich wollte, das jede Zelle eine TitledBorder bekommt... das ist gar kein Problem (haben sie ja schon!).
Nur wie ich das umsetze, das auch jede Border (also in jeder einzelnen Zelle für sich) einen anderen Title (cellBorder.setTitle()) hat, bekomme ich im Moment nicht richtig hin.
Hab schon so einiges versucht, aber logischerweise bekommen alle Zellen (TitledBorder) denselben Wert zur Anzeige im Title....
Habt ihr vielleicht noch nen Tip für mich wie man so etwas realisieren kann?
Hier mal meine JTable:
Java:
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import javax.swing.table.*;
/**
* @author Andreas Lässig
*/
public class JWebCTable extends JTable
{
private static final long serialVersionUID = 1L;
private TitledBorder cellBorder = BorderFactory.createTitledBorder("");
private static boolean cellEdit = false;
public JWebCTable(DefaultTableModel _model)
{
super(_model);
this.initFuncs();
}
private void initFuncs()
{
this.setDefaultRenderer(Object.class, new JWebCJTableCellRenderer(this.cellBorder));
TableColumnModel columnModel = this.getColumnModel();
for(int i=0; i<columnModel.getColumnCount(); i++)
{
columnModel.getColumn(i).setPreferredWidth(Default.ROW_WIDTH);
}
JTableHeader header = this.getTableHeader();
header.setResizingAllowed(false);
header.setReorderingAllowed(false);
header.setDefaultRenderer(new JWebCJTableHeaderCellRenderer());
this.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
this.setCellSelectionEnabled(true);
this.setRowHeight(Default.ROW_HEIGHT);
this.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
}
public boolean isCellEditable(int row, int col)
{
return this.getCellEdit();
}
public boolean getCellEdit()
{
return cellEdit;
}
public static void setCellEdit(boolean _cellEdit)
{
cellEdit = _cellEdit;
}
private class JWebCJTableCellRenderer extends JLabel implements TableCellRenderer
{
private static final long serialVersionUID = 1L;
public JWebCJTableCellRenderer(TitledBorder _cellBorder)
{
this.setForeground(Default.BLACKCOLOR);
this.setFont(Default.TABLE_FONT);
this.setOpaque(true);
this.setBorder(_cellBorder);
}
@Override
public Component getTableCellRendererComponent(JTable table, Object value, boolean isSelected,
boolean hasFocus, int rowIndex, int colIndex)
{
this.setText((String)value);
if(value == null || value.equals(""))
{
this.setBackground(Default.WHITECOLOR);
}
else
{
this.setBackground(JWebCalendar.getColorFromCellWithAnEntry());
}
if(isSelected)
{
this.setBackground(Default.TABLE_SELECTION_COLOR);
}
return this;
}
}
}
vg
jal1976