DefaultCellRenderer

delphiking1980

Bekanntes Mitglied
Hallo,

ich habe da mal eine Frage ich habe eine JTable und darin Strings, Integer und Objecte (Blob) stehen für die Blobs möchte ich einen Speziellen DefaultCellRenderer haben diesen habe wie folgt angelegt :

Java:
public class ExtTableCellRenderer implements TableCellRenderer {

	private AppImage appImage = new AppImage();

	@Override
	public Component getTableCellRendererComponent(final JTable arg0, Object arg1,
			boolean arg2, boolean arg3, final int arg4, final int arg5) {
		JPanel panel = new JPanel(new BorderLayout());
		//DBBlobFile file = new DBBlobFile(arg1);
		JLabel fileLbl = new JLabel("Hallo Welt");
		JButton openBtn = new JButton();
		openBtn.setIcon(appImage.getAppImage(AppImage.FOLDER_OPEN_DOKUMENT));
		openBtn.addActionListener(new ActionListener() {

			@Override
			public void actionPerformed(ActionEvent event) {
			System.out.println("Btn"+arg0.getValueAt(arg4, arg5));
			}
		});
		openBtn.setPreferredSize(new Dimension(25,25));
		panel.add(fileLbl,BorderLayout.CENTER);
		panel.add(openBtn,BorderLayout.EAST);
		return panel;
	}

}

und in die Tabelle habe ich diesen wiefolgt eingebunden :

Java:
jTable.setDefaultRenderer(Blob.class, new ExtTableCellRenderer());

Das klappt auch außer das ich den Button nicht anwählen kann. Es passiert einfach nix. Aber ich habe diese Zelle auf isCellEditable true gesetzt.

Kennt jemand das problem bzw eine Lösung dafür ?
 

delphiking1980

Bekanntes Mitglied
Ja das stimmt es muss ein TableCellEditor sein.

Was mich nur etwas grimmig stimmt ist das ich jetzt in die Zelle klicken muss damit ich meinen Editor sehe und zum verlassen die Escapetaste drücken muss..... aber das läßt sich bestimmt noch ändern
oder ?
 

Michael...

Top Contributor
Ja das stimmt es muss ein TableCellEditor sein.

Was mich nur etwas grimmig stimmt ist das ich jetzt in die Zelle klicken muss damit ich meinen Editor sehe und zum verlassen die Escapetaste drücken muss..... aber das läßt sich bestimmt noch ändern
oder ?
Sicherlich. Wie, das hängt von den konkreten Anforderungen ab.
Um einen aktiven Editor zu beenden bzw. abzubrechen bietet die JTable jeweils eine Methode an.
 

Neue Themen


Oben