
Import javax.Swing.JFrame;
Import javax.Swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.ListSelectionModel;
import javax.swing.event.ListSelectionListener;
import javax.swing.event.TableModelEvent;
import javax.swing.event.TableModelListener;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableColumn;
import javax.swing.event.ListSelectionEvent;
public class Prog_5_4
{
JFrame form;
JScrollPane js; // панель на которой располагается таблица
DefaultTableModel md = new DefaultTableModel(); // Аналогично Listbox!!
JTable tb = new JTable(md); // таблица
Prog_5_4()
{
int i;
String s;
form = new JFrame();
form.setSize (500,500);
form.setTitle ("лабораторная 5");
form.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
form.setLayout(null);
js=new JScrollPane(tb); // панель для таблицы
js.setBounds(0, 0, 300, 300);
form.add(js);
// добавка 3 колонок и удаление “вторая”
md.addColumn("Первая");
md.addColumn("Вторая");
md.addColumn("Третья");
tb.removeColumn(tb.getColumnModel().getColumn(1));
// добавление 40 пустых строк в таблицу
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);
form.show();
// значение в определенной клетке
s=(String)tb.getValueAt(6,1);
tb.setValueAt(s, 10,0);
// Установка ширины колонок
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
TableColumn col = tb.getColumnModel().getColumn(0);
col.setPreferredWidth(200);
// выбор клетки таблицы
tb.setCellSelectionEnabled(true);
ListSelectionModel se = tb.getSelectionModel();
se.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);// 1 выбрана
tb.changeSelection(1,0,false,false); // выбрана клетка 2 ряд, 1 колонка
// добавление прослушивание на момент выбора клетки
se.addListSelectionListener(new ListSelectionListener()
{
public void valueChanged(ListSelectionEvent e)
{
int r,c;
String s,s1;
r=tb.getSelectedRow(); // выбрана строка
c=tb.getSelectedColumn(); // выбран столбец
s=Integer.toString(r);
s1=Integer.toString(c);
s=s+" - "+s1;
tb.setValueAt(s,2,0); // 6-1 в 3 строке, 1 колонке
}
});
}
public static void main (String args[])
{
Prog_5_4 f;
f= new Prog_5_4();
}
}
Задания по работе с таблицами SE
Задачи 8.11-8.23 1-13 вариант
Вводится количество столбцов (textfield) и строится таблица с пустым числом строк. Кнопка <добавить> добавляет строку из другого textfield, где значения элементов строки разделены пробелами. При выборе элемента он заменяется минимальным в столбце. При нажатии кнопки <вычислить> элементы таблицы переводятся в числовой двумерный массив, выполняются вычисления по варианту и результат выводится в один или несколько Label. В таблице должен в итоге выделен самый максимальный элемент. При выборе другого элемента, в Label надпись меньше на и насколько меньше.