Annonceindlæg fra Idura
30. april 2005 - 22:16
#1
Jeg ved ikke om du har fået løst problemet, men her er en mulig løsning Tilføj en MouseMotionListener til tabellen, og tag den udfra musens position import java.awt.Point; public class Test extends javax.swing.JFrame { public Test() { initComponents(); } private void initComponents() { scroll = new javax.swing.JScrollPane(); table = new javax.swing.JTable(); setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE); table.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null}, {null, null, null, null} }, new String [] { "Title 1", "Title 2", "Title 3", "Title 4" } )); table.addMouseMotionListener(new java.awt.event.MouseMotionAdapter() { public void mouseMoved(java.awt.event.MouseEvent evt) { Point p = evt.getPoint(); int row = table.rowAtPoint(p); int col = table.columnAtPoint(p); table.setRowSelectionInterval(row, row); table.setColumnSelectionInterval(col,col); } }); scroll.setViewportView(table); getContentPane().add(scroll, java.awt.BorderLayout.NORTH); pack(); } public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public void run() { new Test().setVisible(true); } }); } private javax.swing.JScrollPane scroll; private javax.swing.JTable table; }
30. april 2005 - 22:35
#3
Hvis den skal fungere som editor er det nemt scroll.setViewportView(table); TableColumn column = table.getColumnModel().getColumn(2); column.setCellEditor(new DefaultCellEditor(new JComboBox())); Comboboxen vises først når du klikker i kolonne 3 Skal den være synlig altid, skal du lave din egen klasse som implementere TableCellRenderer og sætte den som renderer på cellen