Public void valueChanged(ListSelectionEvent e)

Js.setBounds(0, 0, 300, 300);

Else

Tm.cancel();

}

{

cv.r=cv.r+10;

cv.repaint();

}

}

}

}

 

 

 

 

Задание 4б

 

Добавить к графическому изображению дорисовку отклика на мышь, в зависимости от координат курсора, отклика на клавиатуру, в зависимости от нажатых клавиш и движение по таймеру. Для SE запуск и остановку выполнить по нажатию button, для ME – создав в canvas 2 команды Start, Stop .

(см. this.addCommand( new Command("Back",Command.SCREEN,0)); лекция 4)

 

 

4) Таблицы

 

В C++ builder – StringGrid.

 

Пример работы с таблицей SE:

 

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); // панель для таблицы

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()

{

{

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 надпись меньше на и насколько меньше.