Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Eclipse Projects » Remote Application Platform (RAP) » How to Display Image in SWT TableColumn Sortable Column(SWT Windows 10 Pro)
How to Display Image in SWT TableColumn Sortable Column [message #1798177] Tue, 13 November 2018 16:16 Go to next message
Robin Clark is currently offline Robin ClarkFriend
Messages: 5
Registered: November 2017
Junior Member
I want to display an image in a table column header. The problem that I have is that the image disappears when the column is sorted. I am working in a Windows 10 Pro. I am using the following version of eclipse:
Eclipse for RCP and RAP Developers

Version: Oxygen.3a Release (4.7.3a)
Build id: 20180405-1200

I am having troubles finding examples of implementing a custom drawn tablecolumn header that allows for images to be displayed along with the sorting icon.

Ideally I would like to display the image on the right side of the column instead of on the left.

Any help would be appreciated.

import java.text.Collator;
import java.util.Locale;

import org.eclipse.swt.SWT;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Table;
import org.eclipse.swt.widgets.TableColumn;
import org.eclipse.swt.widgets.TableItem;

public class RobinTest2 {

    public static void main(String[] args) {
	Display display = new Display();
	Shell shell = new Shell(display);
	shell.setLayout(new FillLayout());
	final Table table = new Table(shell, SWT.BORDER);
	final TableColumn column1 = new TableColumn(table, SWT.NONE);
	column1.setText("Column 1");
	final Image image = display.getSystemImage(SWT.ICON_QUESTION);
	final TableColumn column2 = new TableColumn(table, SWT.NONE);
	column2.setText("Column 2");
	TableItem item = new TableItem(table, SWT.NONE);
	item.setText(new String[] { "a", "3" });
	item = new TableItem(table, SWT.NONE);
	item.setText(new String[] { "b", "2" });
	item = new TableItem(table, SWT.NONE);
	item.setText(new String[] { "c", "1" });
	Listener sortListener = e -> {
	    TableItem[] items = table.getItems();
	    Collator collator = Collator.getInstance(Locale.getDefault());
	    TableColumn column = (TableColumn) e.widget;
	    int index = column == column1 ? 0 : 1;
	    for (int i = 1; i < items.length; i++) {
		String value1 = items[i].getText(index);
		for (int j = 0; j < i; j++) {
		    String value2 = items[j].getText(index);
		    if (, value2) < 0) {
			String[] values = { items[i].getText(0), items[i].getText(1) };
			TableItem item1 = new TableItem(table, SWT.NONE, j);
			items = table.getItems();
	column1.addListener(SWT.Selection, sortListener);
	column2.addListener(SWT.Selection, sortListener);
	shell.setSize(shell.computeSize(SWT.DEFAULT, SWT.DEFAULT).x, 300);;
	while (!shell.isDisposed()) {
	    if (!display.readAndDispatch())


[Updated on: Tue, 13 November 2018 16:40]

Report message to a moderator

Re: How to Display Image in SWT TableColumn Sortable Column [message #1800266 is a reply to message #1798177] Sat, 22 December 2018 10:24 Go to previous message
Linuxhippy Mising name is currently offline Linuxhippy Mising nameFriend
Messages: 53
Registered: July 2009
wrong forum - this one is specific to RAP (SWT port for the web).
Previous Topic:Are VIRTUAL GridTableViewer supposed to work?
Next Topic:Problems to build working war file
Goto Forum:

Current Time: Thu Oct 01 09:14:08 GMT 2020

Powered by FUDForum. Page generated in 0.02212 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top