<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ru">
		<id>http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjavax.swing.table%2FTableColumnModel</id>
		<title>Java by API/javax.swing.table/TableColumnModel - История изменений</title>
		<link rel="self" type="application/atom+xml" href="http://www.jexp.ru/index.php?action=history&amp;feed=atom&amp;title=Java_by_API%2Fjavax.swing.table%2FTableColumnModel"/>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing.table/TableColumnModel&amp;action=history"/>
		<updated>2026-04-24T10:42:38Z</updated>
		<subtitle>История изменений этой страницы в вики</subtitle>
		<generator>MediaWiki 1.30.0</generator>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/javax.swing.table/TableColumnModel&amp;diff=468&amp;oldid=prev</id>
		<title> в 17:43, 31 мая 2010</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing.table/TableColumnModel&amp;diff=468&amp;oldid=prev"/>
				<updated>2010-05-31T17:43:48Z</updated>
		
		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style=&quot;vertical-align: top;&quot; lang=&quot;ru&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;← Предыдущая&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;Версия 17:43, 31 мая 2010&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; style=&quot;text-align: center;&quot; lang=&quot;ru&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(нет различий)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
			</entry>

	<entry>
		<id>http://www.jexp.ru/index.php?title=Java_by_API/javax.swing.table/TableColumnModel&amp;diff=469&amp;oldid=prev</id>
		<title>Admin: 1 версия</title>
		<link rel="alternate" type="text/html" href="http://www.jexp.ru/index.php?title=Java_by_API/javax.swing.table/TableColumnModel&amp;diff=469&amp;oldid=prev"/>
				<updated>2010-05-31T14:17:12Z</updated>
		
		<summary type="html">&lt;p&gt;1 версия&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Новая страница&lt;/b&gt;&lt;/p&gt;&lt;div&gt;== TableColumnModel: addColumnModelListener(TableColumnModelListener x) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.event.ChangeEvent;&lt;br /&gt;
import javax.swing.event.ListSelectionEvent;&lt;br /&gt;
import javax.swing.event.TableColumnModelEvent;&lt;br /&gt;
import javax.swing.event.TableColumnModelListener;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
import javax.swing.table.TableColumnModel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Object rows[][] = { { &amp;quot;A&amp;quot;, &amp;quot;a&amp;quot; }, { &amp;quot;B&amp;quot;, &amp;quot;b&amp;quot; }, { &amp;quot;E&amp;quot;, &amp;quot;e&amp;quot; } };&lt;br /&gt;
    Object headers[] = { &amp;quot;Upper&amp;quot;, &amp;quot;Lower&amp;quot; };&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JTable table = new JTable(rows, headers);&lt;br /&gt;
    TableColumnModelListener tableColumnModelListener = new TableColumnModelListener() {&lt;br /&gt;
      public void columnAdded(TableColumnModelEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Added&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnMarginChanged(ChangeEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Margin&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnMoved(TableColumnModelEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Moved&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnRemoved(TableColumnModelEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Removed&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnSelectionChanged(ListSelectionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Selection Changed&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    TableColumnModel columnModel = table.getColumnModel();&lt;br /&gt;
    columnModel.addColumnModelListener(tableColumnModelListener);&lt;br /&gt;
    columnModel.setColumnMargin(12);&lt;br /&gt;
    TableColumn column = new TableColumn(1);&lt;br /&gt;
    columnModel.addColumn(column);&lt;br /&gt;
    JScrollPane pane = new JScrollPane(table);&lt;br /&gt;
    frame.add(pane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TableColumnModel: addColumn(TableColumn aColumn) ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.event.ChangeEvent;&lt;br /&gt;
import javax.swing.event.ListSelectionEvent;&lt;br /&gt;
import javax.swing.event.TableColumnModelEvent;&lt;br /&gt;
import javax.swing.event.TableColumnModelListener;&lt;br /&gt;
import javax.swing.table.TableColumn;&lt;br /&gt;
import javax.swing.table.TableColumnModel;&lt;br /&gt;
public class MainClass {&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    Object rows[][] = { { &amp;quot;A&amp;quot;, &amp;quot;a&amp;quot; }, { &amp;quot;B&amp;quot;, &amp;quot;b&amp;quot; }, { &amp;quot;E&amp;quot;, &amp;quot;e&amp;quot; } };&lt;br /&gt;
    Object headers[] = { &amp;quot;Upper&amp;quot;, &amp;quot;Lower&amp;quot; };&lt;br /&gt;
    JFrame frame = new JFrame();&lt;br /&gt;
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);&lt;br /&gt;
    JTable table = new JTable(rows, headers);&lt;br /&gt;
    TableColumnModelListener tableColumnModelListener = new TableColumnModelListener() {&lt;br /&gt;
      public void columnAdded(TableColumnModelEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Added&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnMarginChanged(ChangeEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Margin&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnMoved(TableColumnModelEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Moved&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnRemoved(TableColumnModelEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Removed&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
      public void columnSelectionChanged(ListSelectionEvent e) {&lt;br /&gt;
        System.out.println(&amp;quot;Selection Changed&amp;quot;);&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    TableColumnModel columnModel = table.getColumnModel();&lt;br /&gt;
    columnModel.addColumnModelListener(tableColumnModelListener);&lt;br /&gt;
    columnModel.setColumnMargin(12);&lt;br /&gt;
    TableColumn column = new TableColumn(1);&lt;br /&gt;
    columnModel.addColumn(column);&lt;br /&gt;
    JScrollPane pane = new JScrollPane(table);&lt;br /&gt;
    frame.add(pane, BorderLayout.CENTER);&lt;br /&gt;
    frame.setSize(300, 150);&lt;br /&gt;
    frame.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== TableColumnModel: getSelectionModel() ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- start source code --&amp;gt;&lt;br /&gt;
   &lt;br /&gt;
    &amp;lt;source lang=&amp;quot;java&amp;quot;&amp;gt;&lt;br /&gt;
import java.awt.BorderLayout;&lt;br /&gt;
import java.awt.GridLayout;&lt;br /&gt;
import java.awt.event.ActionEvent;&lt;br /&gt;
import java.awt.event.ActionListener;&lt;br /&gt;
import javax.swing.JCheckBox;&lt;br /&gt;
import javax.swing.JFrame;&lt;br /&gt;
import javax.swing.JLabel;&lt;br /&gt;
import javax.swing.JPanel;&lt;br /&gt;
import javax.swing.JScrollPane;&lt;br /&gt;
import javax.swing.JTable;&lt;br /&gt;
import javax.swing.ListSelectionModel;&lt;br /&gt;
import javax.swing.event.ListSelectionEvent;&lt;br /&gt;
import javax.swing.event.ListSelectionListener;&lt;br /&gt;
import javax.swing.table.AbstractTableModel;&lt;br /&gt;
import javax.swing.table.TableModel;&lt;br /&gt;
public class MainClass extends JFrame {&lt;br /&gt;
  public MainClass() {&lt;br /&gt;
    super(&amp;quot;Selection Model Test&amp;quot;);&lt;br /&gt;
    setSize(450, 350);&lt;br /&gt;
    setDefaultCloseOperation(EXIT_ON_CLOSE);&lt;br /&gt;
    TableModel tm = new AbstractTableModel() {&lt;br /&gt;
      public int getRowCount() {&lt;br /&gt;
        return 10;&lt;br /&gt;
      }&lt;br /&gt;
      public int getColumnCount() {&lt;br /&gt;
        return 10;&lt;br /&gt;
      }&lt;br /&gt;
      public Object getValueAt(int r, int c) {&lt;br /&gt;
        return &amp;quot;0&amp;quot;;&lt;br /&gt;
      }&lt;br /&gt;
    };&lt;br /&gt;
    final JTable jt = new JTable(tm);&lt;br /&gt;
    JScrollPane jsp = new JScrollPane(jt);&lt;br /&gt;
    getContentPane().add(jsp, BorderLayout.CENTER);&lt;br /&gt;
    JPanel controlPanel, buttonPanel, columnPanel, rowPanel;&lt;br /&gt;
    buttonPanel = new JPanel();&lt;br /&gt;
    final JCheckBox cellBox, columnBox, rowBox;&lt;br /&gt;
    cellBox = new JCheckBox(&amp;quot;Cells&amp;quot;, jt.getCellSelectionEnabled());&lt;br /&gt;
    columnBox = new JCheckBox(&amp;quot;Columns&amp;quot;, jt.getColumnSelectionAllowed());&lt;br /&gt;
    rowBox = new JCheckBox(&amp;quot;Rows&amp;quot;, jt.getRowSelectionAllowed());&lt;br /&gt;
    &lt;br /&gt;
    cellBox.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
        jt.setCellSelectionEnabled(cellBox.isSelected());&lt;br /&gt;
        columnBox.setSelected(jt.getColumnSelectionAllowed());&lt;br /&gt;
        rowBox.setSelected(jt.getRowSelectionAllowed());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    columnBox.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
        jt.setColumnSelectionAllowed(columnBox.isSelected());&lt;br /&gt;
        cellBox.setSelected(jt.getCellSelectionEnabled());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    rowBox.addActionListener(new ActionListener() {&lt;br /&gt;
      public void actionPerformed(ActionEvent ae) {&lt;br /&gt;
        jt.setRowSelectionAllowed(rowBox.isSelected());&lt;br /&gt;
        cellBox.setSelected(jt.getCellSelectionEnabled());&lt;br /&gt;
      }&lt;br /&gt;
    });&lt;br /&gt;
    buttonPanel.add(new JLabel(&amp;quot;Selections allowed:&amp;quot;));&lt;br /&gt;
    buttonPanel.add(cellBox);&lt;br /&gt;
    buttonPanel.add(columnBox);&lt;br /&gt;
    buttonPanel.add(rowBox);&lt;br /&gt;
    columnPanel = new JPanel();&lt;br /&gt;
    ListSelectionModel csm = jt.getColumnModel().getSelectionModel();&lt;br /&gt;
    JLabel columnCounter = new JLabel(&amp;quot;Selected Column Indices:&amp;quot;);&lt;br /&gt;
    csm.addListSelectionListener(new SelectionDebugger(columnCounter, csm));&lt;br /&gt;
    columnPanel.add(new JLabel(&amp;quot;Selected columns:&amp;quot;));&lt;br /&gt;
    columnPanel.add(columnCounter);&lt;br /&gt;
    rowPanel = new JPanel();&lt;br /&gt;
    ListSelectionModel rsm = jt.getSelectionModel();&lt;br /&gt;
    JLabel rowCounter = new JLabel(&amp;quot;Selected Row Indices:&amp;quot;);&lt;br /&gt;
    rsm.addListSelectionListener(new SelectionDebugger(rowCounter, rsm));&lt;br /&gt;
    rowPanel.add(new JLabel(&amp;quot;Selected rows:&amp;quot;));&lt;br /&gt;
    rowPanel.add(rowCounter);&lt;br /&gt;
    controlPanel = new JPanel(new GridLayout(0, 1));&lt;br /&gt;
    controlPanel.add(buttonPanel);&lt;br /&gt;
    controlPanel.add(columnPanel);&lt;br /&gt;
    controlPanel.add(rowPanel);&lt;br /&gt;
    getContentPane().add(controlPanel, BorderLayout.SOUTH);&lt;br /&gt;
  }&lt;br /&gt;
  public static void main(String args[]) {&lt;br /&gt;
    MainClass se = new MainClass();&lt;br /&gt;
    se.setVisible(true);&lt;br /&gt;
  }&lt;br /&gt;
  public class SelectionDebugger implements ListSelectionListener {&lt;br /&gt;
    JLabel debugger;&lt;br /&gt;
    ListSelectionModel model;&lt;br /&gt;
    public SelectionDebugger(JLabel target, ListSelectionModel lsm) {&lt;br /&gt;
      debugger = target;&lt;br /&gt;
      model = lsm;&lt;br /&gt;
    }&lt;br /&gt;
    public void valueChanged(ListSelectionEvent lse) {&lt;br /&gt;
      if (!lse.getValueIsAdjusting()) {&lt;br /&gt;
        StringBuffer buf = new StringBuffer();&lt;br /&gt;
        int[] selection = getSelectedIndices(model.getMinSelectionIndex(), model&lt;br /&gt;
            .getMaxSelectionIndex());&lt;br /&gt;
        if (selection.length == 0) {&lt;br /&gt;
          buf.append(&amp;quot;none&amp;quot;);&lt;br /&gt;
        } else {&lt;br /&gt;
          for (int i = 0; i &amp;lt; selection.length - 1; i++) {&lt;br /&gt;
            buf.append(selection[i]);&lt;br /&gt;
            buf.append(&amp;quot;, &amp;quot;);&lt;br /&gt;
          }&lt;br /&gt;
          buf.append(selection[selection.length - 1]);&lt;br /&gt;
        }&lt;br /&gt;
        debugger.setText(buf.toString());&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
    protected int[] getSelectedIndices(int start, int stop) {&lt;br /&gt;
      if ((start == -1) || (stop == -1)) {&lt;br /&gt;
        return new int[0];&lt;br /&gt;
      }&lt;br /&gt;
      int guesses[] = new int[stop - start + 1];&lt;br /&gt;
      int index = 0;&lt;br /&gt;
      for (int i = start; i &amp;lt;= stop; i++) {&lt;br /&gt;
        if (model.isSelectedIndex(i)) {&lt;br /&gt;
          guesses[index++] = i;&lt;br /&gt;
        }&lt;br /&gt;
      }&lt;br /&gt;
      int realthing[] = new int[index];&lt;br /&gt;
      System.arraycopy(guesses, 0, realthing, 0, index);&lt;br /&gt;
      return realthing;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
}&lt;br /&gt;
           &lt;br /&gt;
       &amp;lt;/source&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
   &lt;br /&gt;
  &amp;lt;!-- end source code --&amp;gt;&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>