Редактирование содержимого клетки
#include <string.h>
#pragma once
.......
using namespace System::Drawing;
using namespace Runtime::InteropServices;
......
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)
{
listView1->Columns->Add("Первая");
.............................
listView1->Items[1]->SubItems->Add("666");
OldRow=-1;
OldCol=-1;
char ss[15];
String ^ s =gcnew String("");
s=listView1->Items[1]->SubItems[1]->Text; // s=”666”
char* chars = // маршализация
( char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
strcpy(ss,chars);
strcat(ss,"00");
String ^s1= gcnew String(ss); // s1=”6600”
listView1->Items[1]->SubItems[1]->Text=s1;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
2)Таблицы в Java SE.
Таблица располагается в JScrollPane для скроллинга.
Добавление/удаление колонок:
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.table.DefaultTableModel;
public class lab12
{
JFrame form;
JScrollPane js; // панельнакоторойрасполагаетсятаблица
DefaultTableModel md; // АналогичноListbox!!
JTable tb; // таблица
lab12()
{
form = new JFrame();
form.setBounds (10,20,500,500);
form.setTitle ("лабораторная 12");
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setLayout(null);
md= new DefaultTableModel();
tb= new JTable(md);
js=new JScrollPane (tb); // панельдлятаблицы
js.setBounds(0, 0, 300, 300);
form.add(js);
form.show();
// добавка 3 колонок и удаление “вторая”
md.addColumn("Первая");
md.addColumn("Вторая");
md.addColumn("Третья");
tb.removeColumn(tb.getColumnModel().getColumn(1));
}
public static void main (String args[])
{
lab12 f;
f= new lab12();
}
}
Добавление/ удаление занесение данных в строки:
.................................
md.addColumn("Третья");
tb.removeColumn(tb.getColumnModel().getColumn(1));
// добавление 40 пустыхстрок в таблицу
int i;
for(i=0;i<40;i++)
{
md.addRow(new Object[]{""});
}
// заполнениетрехклетоктаблицы и удалениеоднойстроки
tb.setValueAt("123",3,1);
tb.setValueAt("321",5,0);
tb.setValueAt("qwerty",7,1);
md.removeRow(5);
}
Получение/задание значения в клетке таблицы:
.......
tb.setValueAt("qwerty",7,1);
md.removeRow(5);
String s;
s=(String)tb.getValueAt(6,1); // s=”qwerty”
tb.setValueAt(s, 10,0);
Установка ширины колонки и выбор клетки таблицы:
tb.setValueAt(s, 10,0);
// Установкашириныколонок
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF); // отключение автоширины
TableColumn col = tb.getColumnModel().getColumn(0);
col.setPreferredWidth(200); // ширина 1 колонки
// выборклеткитаблицы
tb.setCellSelectionEnabled(true);
ListSelectionModel se = tb.getSelectionModel();
se.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// выбор 1 клетки
tb.changeSelection(1,0,false,false); // выбранаклетка 2 ряд, 1 колонка
Добавление прослушивания события выбор клетки таблицы:
tb.changeSelection(1,0,false,false); // выбранаклетка 2 ряд, 1 колонка
//добавлениепрослушиваниенамоментвыбораклетки
se.addListSelectionListener(new ListSelectionListener()
{