I've got a Jtable that I'd like to make transparent. With my current code, the table appears 'greyed-out' vice transparent with the gradient background appearing through. I've tried to make everything opaque(false), and read up on concepts, but there must be some missing syntax here..I'd appreciate some constructive assistance..
implementing the table inside a jpanel in my separate gui class:Code:
final JTable table = new JTable(model){
//Override JTable Render component for alternate row shading
public Component prepareRenderer(TableCellRenderer renderer,
int rowIndex, int vColIndex) {
setOpaque(false);
Component c = super.prepareRenderer(renderer, rowIndex,
vColIndex);
if (isCellSelected(rowIndex, vColIndex)) {
if (rowIndex % 2 == 0) {
c.setBackground(Color.LIGHT_GRAY );
} else {
c.setBackground(getSelectionBackground());
}
} else {
if (rowIndex % 2 == 0) {
//c.setBackground(new Color(198, 217, 227));
c.setBackground(new Color(224, 242, 252));
} else {
c.setBackground(getBackground());
}
};
return c;
}
private float tran= 0.4f;
@Override
protected void paintComponent(Graphics g) {
Graphics2D g2 = (Graphics2D) g;
g2.setRenderingHint(RenderingHints.KEY_INTERPOLATION,
RenderingHints.VALUE_INTERPOLATION_BILINEAR);
AlphaComposite old = (AlphaComposite) g2.getComposite();
g2.setComposite(AlphaComposite.SrcOver.derive(getTran()));
super.paintComponent(g);
g2.setComposite(old);
}
public float getTran() {
return tran;
}
public void setTran(float tran) {
this.tran = tran;
}
};
table.setOpaque(false);
table.convertRowIndexToView(row);
table.setModel(model);
table.setRowSorter(sorter);
//table.setAutoCreateRowSorter(true);
//table.setDefaultRenderer(String.class, new CustomRenderer());
table.setRowSelectionAllowed(true);
table.setColumnSelectionAllowed(true);
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
ListSelectionModel listMod = table.getSelectionModel();
listMod.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
listMod.addListSelectionListener(this);
return table;
}
Code:
JPanel invS = new JPanel(new BorderLayout());
tbInv.add(sP, "North");
tbInv.add(invS, "South");
tbInv.setOpaque(false);
invS.add(st.textField, "North");
JScrollPane tableContainer = new JScrollPane(st.table);
st.table.setPreferredScrollableViewportSize(new Dimension(990, 380));
invS.add(tableContainer);
tableContainer.setOpaque(false);
invS.setOpaque(false);
st.table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
st.table.setOpaque(false);
