[JScrollPane] position du Jtable contenu
bonjour,
voila j'ai écrit une classe extends de JPanel contenant un JScrollPane et un JTable
mon code ressemble donc a cela
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
| public class DataFileTable extends JPanel implements MouseListener
{
private JTable table;
private DataFileTableModel model;
private Font f=new Font("SanSerif",Font.PLAIN,24);
private int ligne = 0;
private int column = 0;
private Point point= new Point(0,0);
public DataFileTable()
{
setFont(f);
setLayout(new BorderLayout());
//create model
model = new AbstractTableModel();
//create table
table=new JTable();
//config table
table.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
table.setSelectionBackground(new Color(255, 193, 193));
table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
table.getTableHeader().setReorderingAllowed(false);
table.setModel(model);
table.createDefaultColumnsFromModel();
//scroller
JScrollPane scrollPane = new JScrollPane(table,
ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS,
ScrollPaneConstants.HORIZONTAL_SCROLLBAR_ALWAYS);
add(scrollPane);
table.addMouseListener(this);
}
public void mouseClicked (MouseEvent e)
{
point = e.getPoint ();
column = table.columnAtPoint (point)+1;
ligne = table.rowAtPoint (point)+1;
}
public void mouseExited (MouseEvent e) { }
public void mousePressed (MouseEvent e) { }
public void mouseReleased (MouseEvent e) { }
public void mouseEntered (MouseEvent e) { }
} |
bon j'arrive à connaitre ou l'utilisateur click par contre je n'arrive pas à savoir quel est a position du table dans le scrollPane:
En gros la question quel est la cellule que je vois en haut à gauche?
ou simplement quel est le numero de la ligne que je vois en haut?
et puis comment connaitre la taille de la ligne (en hauteur) -> pour déterminer combien de ligne il voit?
merci beaucoup
Re: [JScrollPane]position du Jtable contenu
Salut,
Citation:
Envoyé par fraoustin
et puis comment connaitre la taille de la ligne (en hauteur) -> pour déterminer combien de ligne il voit?
Pour les JTable, tu as :
Code:
1 2 3
| getRowHeight()
et
getRowHeight(int row) |
Pour le reste, je ne sais pas trop comment tu peux faire ....
plus simple et plus propre
sur JScrollPane, utilise getViewport().getViewPosition() qui te renvoie le point visible en haut à gauche
après, sur JTable, utilise les méthodes columnAtPoint et rowAtPoint pour obtenir la cellule correspondant au point