Koristim Borland JBuilder kojisam instalira jdk, tako da nisam siguran kako da zamenim. No, ja ipak mislim da nije u to,e stvar. Evo postavicu ovde kod u kojem definisem tabelu, pa ako neko moze da uvidi gresku ako je ima:
mData = new IzdavastvoData(this);
mTable = setMyJTable();
mTable.setAutoCreateColumnsFromModel(false);
mTable.setModel(mData);
//mTable.setCellSelectionEnabled(false);
//mTable.setColumnSelectionAllowed(false);
//mTable.setRowSelectionAllowed(true);
mTable.setSelectionMode(ListSelectionModel.MULTIPLE_INTERVAL_SELECTION);
mTable.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
mTable.getTableHeader().setFont(new Font("",
Font.BOLD, mTable.getTableHeader().getFont().getSize()));
//mTable.setShowHorizontalLines(false);
//mTable.setShowVerticalLines(false);
//mTable.setSelectionBackground(new Color(200, 200, 200));
//mTable.setRowHeight(18);
private JTable setMyJTable() {
JTable table = new JTable() {
protected final String columnToolTip[] = {
"<HTML>Identifikacioni broj knjige. Moraju svi biti različiti<br>" +
"Ne može se editovati</HTML>",
"Ime knjige",
"Autor/pisac knjige",
"Firma koja je izdala knjigu",
"Težina knjige u gramima",
"Cena jednog primerka knjige",
"Ukupan broj prodatih primeraka. Ne može se editovati",
"Ukupna zarada od jedne knjige. Ne može se editovati"
};
protected JTableHeader createDefaultTableHeader() {
return new JTableHeader(columnModel) {
public String getToolTipText(MouseEvent e) {
Point p = e.getPoint();
int index = columnModel.getColumnIndexAtX(p.x);
if(index == -1) return "";
int realIndex = columnModel.getColumn(index).getModelIndex();
return columnToolTip[realIndex];
}
};
}
public Component prepareRenderer(TableCellRenderer renderer,
int rowIndex, int vColIndex) {
JComponent c = (JComponent)super.prepareRenderer(renderer, rowIndex, vColIndex);
//odredjivanje toolTip-a ISBN-a za svaki red(knjigu)
int size = mData.m_isbn.mList.size();
int idbr = ((IzdData)mData.m_list.get(rowIndex)).m_idbr.mData.intValue();
ArrayList isbn = new ArrayList();
for(int i = 0; i < size; i++) {
ArrayList row = (ArrayList)mData.m_isbn.mList.get(i);
if( ((Integer)row.get(1)).intValue() == idbr )
isbn.add( (String)row.get(0) );
}
String rowToolTip = "<HTML><b>ISBN:</b><br>";
for(int i = 0; i < isbn.size() ; i++)
rowToolTip += (String)isbn.get(i) +
(i < isbn.size()-1 ? "<br>" : "</HTML>");
c.setToolTipText(rowToolTip);
return c;
}
};
return table;
}// end of setMyJTable method
*******************************************************************
mData je tipa IzdavastvoData extends AbstractTableModel i to radi kao tableModel bez ikakvih problema, tako da ne mislim da je tu problem. Ovi redovi sto su kao komentari nemaju uticaja na selektovanje posto sam ih sve isprobao on i off. Kao sto vidite napravio sam custom table koji stavlja toolTipove za svaki column header i za svaki red. Pokusao sam da stavim default JTable, tj mTable = new JTable(); , ali dobija se isto, interval selekcije ne rade.
i5-750 @4GHz with CM Hyper 212+
GTX 580 Lightning XE 3GB
Corsair HX750
CM Sniper