Java by API/org.eclipse.swt.widgets/TableColumn

Материал из Java эксперт
Перейти к: навигация, поиск

new TableColumn(Table table, int style)

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; 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 MainClass {

 public static void main(String[] a) {
   final Display d = new Display();
   final Shell s = new Shell(d);
   s.setSize(250, 200);
   s.setText("A Table Shell Example");
   s.setLayout(new FillLayout());
   Table t = new Table(s, SWT.BORDER);
   TableColumn tc1 = new TableColumn(t, SWT.CENTER);
   TableColumn tc2 = new TableColumn(t, SWT.CENTER);
   TableColumn tc3 = new TableColumn(t, SWT.CENTER);
   tc1.setText("First Name");
   tc2.setText("Last Name");
   tc3.setText("Address");
   tc1.setWidth(70);
   tc2.setWidth(70);
   tc3.setWidth(80);
   t.setHeaderVisible(true);
   TableItem item1 = new TableItem(t, SWT.NONE);
   item1.setText(new String[] { "A", "B", "Address 1" });
   TableItem item2 = new TableItem(t, SWT.NONE);
   item2.setText(new String[] { "C", "D", "Address 2" });
   TableItem item3 = new TableItem(t, SWT.NONE);
   item3.setText(new String[] { "E", "F", "Address 3" });
   s.open();
   while (!s.isDisposed()) {
     if (!d.readAndDispatch())
       d.sleep();
   }
   d.dispose();
 }

}

      </source>
   
  
 
  



TableColumn: addSelectionListener(SelectionListener lis)

   <source lang="java">

import java.util.ArrayList; import java.util.Collections; import java.util.ruparator; import java.util.Iterator; import org.eclipse.swt.SWT; import org.eclipse.swt.events.SelectionAdapter; import org.eclipse.swt.events.SelectionEvent; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; 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 MainClass {

 private StudentComparator comparator = new StudentComparator();
 private java.util.List students = new ArrayList();
 public MainClass() {
   comparator.setColumn(StudentComparator.FIRST_NAME);
   comparator.setDirection(StudentComparator.ASCENDING);
   
   students.add(new Student("A", "H", 0.73f));
   students.add(new Student("B", "G", 0.65f));
   students.add(new Student("C", "F", 0.11f));
   students.add(new Student("D", "E", 0.69f));
   students.add(new Student("E", "D", 0.76f));
   students.add(new Student("F", "C", 0.99f));
   students.add(new Student("G", "B", 0.55f));
   students.add(new Student("H", "A", 0.95f));
 }
 public void run() {
   Display display = new Display();
   Shell shell = new Shell(display);
   shell.setText("Player Table");
   shell.setLayout(new FillLayout());
   final Table table = new Table(shell, SWT.NONE);
   table.setHeaderVisible(true);
   table.setLinesVisible(true);
   TableColumn[] columns = new TableColumn[3];
   columns[0] = new TableColumn(table, SWT.NONE);
   columns[0].setText("First Name");
   columns[0].addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       comparator.setColumn(StudentComparator.FIRST_NAME);
       comparator.reverseDirection();
       fillTable(table);
     }
   });
   columns[1] = new TableColumn(table, SWT.NONE);
   columns[1].setText("Last Name");
   columns[1].addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       comparator.setColumn(StudentComparator.LAST_NAME);
       comparator.reverseDirection();
       fillTable(table);
     }
   });
   columns[2] = new TableColumn(table, SWT.RIGHT);
   columns[2].setText("Average");
   columns[2].addSelectionListener(new SelectionAdapter() {
     public void widgetSelected(SelectionEvent event) {
       comparator.setColumn(StudentComparator.AVERAGE);
       comparator.reverseDirection();
       fillTable(table);
     }
   });
   fillTable(table);
   for (int i = 0, n = columns.length; i < n; i++) {
     columns[i].pack();
   }
   
   shell.pack();
   shell.open();
   while (!shell.isDisposed()) {
     if (!display.readAndDispatch()) {
       display.sleep();
     }
   }
   display.dispose();
 }
 private void fillTable(Table table) {
   // Turn off drawing to avoid flicker
   table.setRedraw(false);
   // We remove all the table entries, sort our
   // rows, then add the entries
   table.removeAll();
   Collections.sort(students, comparator);
   for (Iterator itr = students.iterator(); itr.hasNext();) {
     Student student = (Student) itr.next();
     TableItem item = new TableItem(table, SWT.NONE);
     int c = 0;
     item.setText(c++, student.getFirstName());
     item.setText(c++, student.getLastName());
     item.setText(c++, String.valueOf(student.getAverage()));
   }
   // Turn drawing back on
   table.setRedraw(true);
 }
 public static void main(String[] args) {
   new MainClass().run();
 }

} class StudentComparator implements Comparator {

 /** Constant for First Name column */
 public static final int FIRST_NAME = 0;
 /** Constant for Last Name column */
 public static final int LAST_NAME = 1;
 /** Constant for Batting Average column */
 public static final int AVERAGE = 2;
 /** Constant for ascending */
 public static final int ASCENDING = 0;
 /** Constant for descending */
 public static final int DESCENDING = 1;
 private int column;
 private int direction;
 public int compare(Object obj1, Object obj2) {
   int rc = 0;
   Student p1 = (Student) obj1;
   Student p2 = (Student) obj2;
   switch (column) {
   case FIRST_NAME:
     rc = p1.getFirstName().rupareTo(p2.getFirstName());
     break;
   case LAST_NAME:
     rc = p1.getLastName().rupareTo(p2.getLastName());
     break;
   case AVERAGE:
     rc = (p1.getAverage() < p2.getAverage()) ? -1 : 1;
     break;
   }
   if (direction == DESCENDING) {
     rc = -rc;
   }
   return rc;
 }
 public void setColumn(int column) {
   this.column = column;
 }
 public void setDirection(int direction) {
   this.direction = direction;
 }
 public void reverseDirection() {
   direction = 1 - direction;
 }

} class Student {

 private String firstName;
 private String lastName;
 private float average;
 public Student(String firstName, String lastName, float a) {
   this.firstName = firstName;
   this.lastName = lastName;
   this.average = a;
 }
 public float getAverage() {
   return average;
 }
 public String getFirstName() {
   return firstName;
 }
 public String getLastName() {
   return lastName;
 }

}


      </source>
   
  
 
  



TableColumn: setText(String s)

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; 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 MainClass {

 public static void main(String[] a) {
   final Display d = new Display();
   final Shell s = new Shell(d);
   s.setSize(250, 200);
   s.setText("A Table Shell Example");
   s.setLayout(new FillLayout());
   Table t = new Table(s, SWT.BORDER);
   TableColumn tc1 = new TableColumn(t, SWT.CENTER);
   TableColumn tc2 = new TableColumn(t, SWT.CENTER);
   TableColumn tc3 = new TableColumn(t, SWT.CENTER);
   tc1.setText("First Name");
   tc2.setText("Last Name");
   tc3.setText("Address");
   tc1.setWidth(70);
   tc2.setWidth(70);
   tc3.setWidth(80);
   t.setHeaderVisible(true);
   TableItem item1 = new TableItem(t, SWT.NONE);
   item1.setText(new String[] { "A", "B", "Address 1" });
   TableItem item2 = new TableItem(t, SWT.NONE);
   item2.setText(new String[] { "C", "D", "Address 2" });
   TableItem item3 = new TableItem(t, SWT.NONE);
   item3.setText(new String[] { "E", "F", "Address 3" });
   s.open();
   while (!s.isDisposed()) {
     if (!d.readAndDispatch())
       d.sleep();
   }
   d.dispose();
 }

}

      </source>
   
  
 
  



TableColumn: setWidth(int width)

   <source lang="java">

import org.eclipse.swt.SWT; import org.eclipse.swt.layout.FillLayout; import org.eclipse.swt.widgets.Display; 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 MainClass {

 public static void main(String[] a) {
   final Display d = new Display();
   final Shell s = new Shell(d);
   s.setSize(250, 200);
   s.setText("A Table Shell Example");
   s.setLayout(new FillLayout());
   Table t = new Table(s, SWT.BORDER);
   TableColumn tc1 = new TableColumn(t, SWT.CENTER);
   TableColumn tc2 = new TableColumn(t, SWT.CENTER);
   TableColumn tc3 = new TableColumn(t, SWT.CENTER);
   tc1.setText("First Name");
   tc2.setText("Last Name");
   tc3.setText("Address");
   tc1.setWidth(70);
   tc2.setWidth(70);
   tc3.setWidth(80);
   t.setHeaderVisible(true);
   TableItem item1 = new TableItem(t, SWT.NONE);
   item1.setText(new String[] { "A", "B", "Address 1" });
   TableItem item2 = new TableItem(t, SWT.NONE);
   item2.setText(new String[] { "C", "D", "Address 2" });
   TableItem item3 = new TableItem(t, SWT.NONE);
   item3.setText(new String[] { "E", "F", "Address 3" });
   s.open();
   while (!s.isDisposed()) {
     if (!d.readAndDispatch())
       d.sleep();
   }
   d.dispose();
 }

}


      </source>