Huhu ich nerve schon wieder mit meiner Suchfunktion.
meine table steht nun soweit ich habe nun einen renderer darin, der wie ein Button aussieht und nun möchte ich bei anklicken nur dieses buttonrenderer constructs, welches sich in der gesamten spalte 4 befindet eine aktion ausführen- momentan ist das mouse event der kompletten table zugewiesen und bekomme es nicht konstruiert, dass es nur in der spalte 4 etwas tut.meine idee war ja dass ich einfach eine if nur auf die spalte 4 setze aber iwie will das nicht- jetzt wird das evt gar nicht mehr ausgeführt
ich hoffe es hat jemand eine idee dazu.
ach ja das table model hatt ich hier schon mal gepostet
http://www.java-forum.org/awt-swing-swt/112996-jbutton-table.html
meine table steht nun soweit ich habe nun einen renderer darin, der wie ein Button aussieht und nun möchte ich bei anklicken nur dieses buttonrenderer constructs, welches sich in der gesamten spalte 4 befindet eine aktion ausführen- momentan ist das mouse event der kompletten table zugewiesen und bekomme es nicht konstruiert, dass es nur in der spalte 4 etwas tut.meine idee war ja dass ich einfach eine if nur auf die spalte 4 setze aber iwie will das nicht- jetzt wird das evt gar nicht mehr ausgeführt
Java:
import java.awt.BorderLayout;
import java.awt.event.MouseEvent;
import java.util.List;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.TableColumnModel;
/**
*
* @author
*
*/
public class SearchResultTable extends JFrame {
/**
*
*/
private static final long serialVersionUID = 1L;
/**
*
*/
public SearchResultTable() {
}
/**
*
* @param list
*/
public SearchResultTable(List<Person> list) {
SearchTableModel stm = new SearchTableModel(list);
final JTable jt = new JTable(stm);
JScrollPane jsp = new JScrollPane(jt);
getContentPane().add(jsp, BorderLayout.CENTER);
TableColumnModel columnModel = jt.getColumnModel();
jt.setDefaultRenderer(JButton.class, new CallerButtonRenderer());
stm.addTableModelListener(jt);
jt.getColumn("Anrufen").setCellEditor(new CallerButtonEditor());
jt.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
jt.setColumnSelectionAllowed(true);
jt.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
int rowAt = jt.getColumnCount();
if (evt.getComponent().isEnabled()
&& evt.getButton() == MouseEvent.MOUSE_CLICKED
&& rowAt == 4) {
System.out.println("Column 4");
}
}
});
jt.getSelectionModel().addListSelectionListener(jt);
columnModel.getColumn(0).setPreferredWidth(80);
columnModel.getColumn(1).setPreferredWidth(100);
columnModel.getColumn(2).setPreferredWidth(130);
columnModel.getColumn(3) .setPreferredWidth(120);
columnModel.getColumn(4) .setPreferredWidth(80);
setDefaultCloseOperation(DISPOSE_ON_CLOSE);
this.setSize(550, 300);
this.setLocation(500, 100);
}
}
ach ja das table model hatt ich hier schon mal gepostet
http://www.java-forum.org/awt-swing-swt/112996-jbutton-table.html