Java by API/javax.swing.table/DefaultTableColumnModel

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

DefaultTableColumnModel: moveColumn(int columnIndex, int newIndex)

   <source lang="java">

import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; public class MainClass extends JFrame {

 public MainClass() {
   super("Abstract Model JTable Test");
   setSize(300, 200);
   setDefaultCloseOperation(EXIT_ON_CLOSE);
   DefaultTableModel dtm = new DefaultTableModel(new String[][] { { "1", "2", "3" },
       { "4", "5", "6" } }, new String[] { "Names", "In", "Order" });
   SortingColumnModel scm = new SortingColumnModel();
   JTable jt = new JTable(dtm, scm);
   jt.createDefaultColumnsFromModel();
   JScrollPane jsp = new JScrollPane(jt);
   getContentPane().add(jsp, BorderLayout.CENTER);
 }
 public static void main(String args[]) {
   MainClass ce = new MainClass();
   ce.setVisible(true);
 }

} class SortingColumnModel extends DefaultTableColumnModel {

 public void addColumn(TableColumn tc) {
   super.addColumn(tc);
   int newIndex = sortedIndexOf(tc);
   if (newIndex != tc.getModelIndex()) {
     moveColumn(tc.getModelIndex(), newIndex);
   }
 }
 protected int sortedIndexOf(TableColumn tc) {
   int stop = getColumnCount();
   String name = tc.getHeaderValue().toString();
   for (int i = 0; i < stop; i++) {
     if (name.rupareTo(getColumn(i).getHeaderValue().toString()) <= 0) {
       return i;
     }
   }
   return stop;
 }

}

      </source>
   
  
 
  



extends DefaultTableColumnModel

   <source lang="java">

import java.awt.BorderLayout; import javax.swing.JFrame; import javax.swing.JScrollPane; import javax.swing.JTable; import javax.swing.table.DefaultTableColumnModel; import javax.swing.table.DefaultTableModel; import javax.swing.table.TableColumn; public class MainClass extends JFrame {

 public MainClass() {
   super("Abstract Model JTable Test");
   setSize(300, 200);
   setDefaultCloseOperation(EXIT_ON_CLOSE);
   DefaultTableModel dtm = new DefaultTableModel(new String[][] { { "1", "2", "3" },
       { "4", "5", "6" } }, new String[] { "Names", "In", "Order" });
   SortingColumnModel scm = new SortingColumnModel();
   JTable jt = new JTable(dtm, scm);
   jt.createDefaultColumnsFromModel();
   JScrollPane jsp = new JScrollPane(jt);
   getContentPane().add(jsp, BorderLayout.CENTER);
 }
 public static void main(String args[]) {
   MainClass ce = new MainClass();
   ce.setVisible(true);
 }

} class SortingColumnModel extends DefaultTableColumnModel {

 public void addColumn(TableColumn tc) {
   super.addColumn(tc);
   int newIndex = sortedIndexOf(tc);
   if (newIndex != tc.getModelIndex()) {
     moveColumn(tc.getModelIndex(), newIndex);
   }
 }
 protected int sortedIndexOf(TableColumn tc) {
   int stop = getColumnCount();
   String name = tc.getHeaderValue().toString();
   for (int i = 0; i < stop; i++) {
     if (name.rupareTo(getColumn(i).getHeaderValue().toString()) <= 0) {
       return i;
     }
   }
   return stop;
 }

}

      </source>