|
Московский государственный университет
путей сообщения РФ (МИИТ)
Кафедра «Вычислительные системы и сети»
Институт, группа ИУИТ
Студент
Преподаватель Никольская Марина Николаевна
Отчет
По дисциплине «Технология программирования»
Отчет принят
Задание№1:
Вычислить сумму ряда
import javax.swing.*;
public class lab1
{
public static void main(String[] args)
{
System.out.println("Начало программы"); //функция печати
double y, cs;
double x, a, z, zz;
int flag, ka,fac, ifac, i, kol, iz;
kol=Integer.parseInt(JOptionPane.showInputDialog("Введите количество членов ряда")); //вызов диалогового окна для ввода
x=Double.parseDouble(JOptionPane.showInputDialog("Введите значение для x"));
a=Double.parseDouble(JOptionPane.showInputDialog("Введите значение для a"));
z=Double.parseDouble(JOptionPane.showInputDialog("Введите значение для z"));
fac=1;
ka=5;
flag=1;
ifac=2;
y=0;
for(i=0;i<kol;i++)
{
if(flag==1)
{
cs=Math.cos(x+ka*a); //вызов фунции вычисления для косинуса
}
else
{
cs=Math.sin(x-ka*a); //вызов фунции вычисления для синуса
}
flag=-flag;
ka+=10;
zz=1;
//for(iz=0;iz<2+3*i;iz++)
//{
zz=Math.pow(z, 2+3*i);
//}
for(;ifac<=3+i*2;ifac++)
{
fac*=ifac;
}
y+=(zz+fac)/cs;
}
System.out.println("y="+y);
System.out.println("Конец программы");
}
}
Задание №2
Дана база данных локомотивов: марка, год выпуска, год ремонта. Вывести на печать локомотивы, которые не ремонтировались заданное количество лет.
import javax.swing.*;
class bd
{
private String name;
private int gv, gr, flag=0;
public bd()
{
this.name=JOptionPane.showInputDialog("Введите марку локомотива"); //вызов диалогового окна для ввода
this.gv=Integer.parseInt(JOptionPane.showInputDialog("Введите год выпуска локомотива")); //вызов диалогового окна для ввода и преобразование полученной величины к типу с плавающей точкой
this.gr=Integer.parseInt(JOptionPane.showInputDialog("Введите год ремонта локомотива")); //вызов диалогового окна для ввода и преобразование полученной величины к типу с плавающей точкой
}
public int oprGr(int n) //функция для определения условия: не ремонтировался ли данный вагон n лет
{
if(n==this.gr)
{
flag = 1;
System.out.println("Локомотив марки "+this.name+","+this.gv+" года выпуска, не ремонтировался заданное количество лет");
}
return flag;
}
}
public class lab2
{
public static void main(String[] args)
{
int kol, i, n, flag=0;
kol=Integer.parseInt(JOptionPane.showInputDialog("Введите количество локомотивов")); //вызов диалогового окна для ввода и преобразование полученной величины к цклочисленному типу
System.out.println(""+kol);
bd[] lok = new bd[kol];
for(i=0;i<kol;i++)
{
System.out.println("Введите данные для "+(i+1)+" локомотива");
lok[i] = new bd();
//lok[i].vvod();
}
n=Integer.parseInt(JOptionPane.showInputDialog("Сколько лет не ремонтировались интересуещие вас локомотивы?")); //вызов диалогового окна для ввода и преобразование полученной величины к цклочисленному типу
n=2009-n;
for(i=0;i<kol;i++)
{
flag=lok[i].oprGr(n);
}
if(flag==0)
{
System.out.println("Таких локомотивов нет!");
}
System.exit(0);
}
}
Задание №3
Дана база данных локомотивов: марка, год выпуска, год ремонта. Вывести на печать локомотивы, которые не ремонтировались заданное количество лет. Реализовать программу с использованием собственных классов.
import java.io.IOException;
public class lab3
{
public static void main(String[] args)
{
try
{
int kol, n, i, flag=0;
StringBuffer str = new StringBuffer();
char ch;
System.out.println("Введите количество локомотивов");
while ((ch = (char) System.in.read())!= '\n') //функция чтения символа из стандартного потока
str.append(ch); //функция добавления символа в буфер
kol=Integer.parseInt(str.toString()); //функция преобазования к целочисленному типу
int[] gr= new int[kol];
int[] gv= new int[kol];
String[] marka = new String[kol];
for(i=0;i<kol;i++)
{
System.out.println("Введите данные для "+(i+1)+" локомотива\nМарка:");
str = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
marka[i] = str.toString();
str = new StringBuffer();
System.out.println("Год выпуска:");
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
gv[i]=Integer.parseInt(str.toString());
str = new StringBuffer();
System.out.println("Год последнего ремонта:");
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
gr[i]=Integer.parseInt(str.toString());
}
System.out.println(("Сколько лет не ремонтировались интересуещие вас локомотивы?"));
str = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
n=2009 - Integer.parseInt(str.toString());
for(i=0;i<kol;i++)
{
if(n==gr[i])
{
flag = 1;
System.out.println("Локомотив марки " + marka[i] + "," +gv[i] +" года выпуска, не ремонтировался заданное количество лет");
}
}
if(flag==0)
System.out.println("Таких локомотивов нет!");
}
catch (IOException ex)
{
System.out.println(ex.toString());
}
}
}
Задание №4
Исследовать класс String
import java.lang.String;
public class lab4
{
public static void main(String[] args)
{
String str1, str2, temp[];
int i;
str1="FunkcYi cLAssA String ";
str2="budut PokAZaNy seyCHaS";
System.out.println("Исходные строки:\nstr1 = "+str1+"\nstr2 = "+str2);
System.out.println("\nФункции:\n");
System.out.println("\nString.charAt()\nШестой символ в строке str1 есть " +str1.charAt(5));
// System.out.println("\nString.charCodeAt()\nКод девятого символа в строке str2 = "+str2.charCodeAt(8));
System.out.println("\nString.concat()\nСложим строки str1 и str2:\n"+str1.concat(str2));
// System.out.println("\nString.fromCharCode()\nСтрока, первый символ которой имеет код 78, а второй 115 это:\n"+String.fromCharCode(78, 115));
System.out.println("\nString.indexOf()\nPervyi symdol \'A\' v stroke str2 imeet index "+str2.indexOf('A'));
System.out.println("\nString.lastIndexOf()\nPoslednyi simvol\'i\' v stroke str1 imeet index " + str1.lastIndexOf('i'));
// System.out.println("\nString.slice()\nVidelim iz stroki str2 stroky \"sey\" " + str2.slice("sey"));
System.out.println("\nString.split()\nRazob'yem stroky str1 na slova");
temp=str1.split(" ");
for(i=0;i<temp.length;i++)
System.out.print(""+temp[i]+"\n");
System.out.println("\nString.substring()\nVernem symvily stroki str2 nachinaya c simvola s 4'ym indexom\n"+str2.substring(4));
System.out.println("\nString.substring()\nNapechataem simvoly stroki str1 s indexami ot 4 do 13\n"+str1.substring(4,13));
System.out.println("\nString.toLowerCase()\nPerevedem stroky str1 v nizhnyi register\n"+str1.toLowerCase());
System.out.println("\nString.toUpperCase()\nPerevedem stroky str2 v verhnyi register\n"+str2.toUpperCase());
}
}
Задание №5
Дана база данных локомотивов: марка, год выпуска, год ремонта. Вывести на печать локомотивы, которые не ремонтировались заданное количество лет. Реализовать программу с использованием собственных классов. Создать две исключительные ситуации:
1) Марка должна соответствовать марке, хранящейся в памяти, иначе повторить ввод.
2) Если нет локомотивов, которые не ремонтировались заданное количество лет, то повторить ввод.
import java.io.IOException;
class osibochka extends Throwable //определение собственного класса ошибки
{
osibochka()
{
System.out.println("Такой марки нет. Повторите ввод");
}
}
class osibochka1 extends Throwable //определение собственного класса ошибки
{
osibochka1()
{
System.out.println("Таких локомотивов нет! Повторите ввод");
}
}
class bd
{
private String name;
private int gv, gr, flag=0;
private static String[] marki={"m1","m2","m3","m4","m5","m6"};
static void beat() //вывод допустимых марок
{
for(int i=0;i<marki.length;i++)
System.out.println(marki[i]);
}
public bd() throws osibochka //определение класса ошибки "osibochka" как обрабатывающегося во внешней функции, т.е. функции из которой вызывается данная
{
try
{
int i, met;
StringBuffer str = new StringBuffer();
char ch;
System.out.println("Введите марку локомотива");
while ((ch = (char) System.in.read())!= '\n') //функция чтения символа из стандартного потока
str.append(ch); //функция добавления символа в буфер
this.name = str.toString(); //возвращает содержимое буфкра в виде строки и записывает его в объект name
met=0;
for(i=0;i<marki.length;i++)
{
if(this.name.equals(marki[i])) //сравнение содержимого двух объектов
{
met = 1;
break;
}
}
if(met==0)
throw new osibochka(); //искуственное возбуждение ошибки
System.out.println("Введите год выпуска локомотива");
str = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
this.gv = Integer.parseInt(str.toString());
System.out.println("Введите год ремонта локомотива");
str = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
this.gr = Integer.parseInt(str.toString());
}
catch (IOException ex) //обпаботка ошибки класса "IOException"
{
System.exit(0);
}
}
public int oprGr(int n) //функция для определения условия: не ремонтировался ли данный вагон n лет
{
if(n==this.gr)
{
flag = 1;
System.out.println("Локомотив марки "+this.name+","+this.gv+" года выпуска, не ремонтировался заданное количество лет");
}
return flag;
}
}
public class lab5
{
public static void main(String[] args)
{
try
{
int kol, i, n, flag;
StringBuffer str = new StringBuffer();
char ch;
System.out.println("Введите количество локомотивов");
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
kol = Integer.parseInt(str.toString());
bd[] lok = new bd[kol];
for (i = 0; i < kol; i++)
{
try
{
System.out.println("Введите данные для " + (i + 1) +" локомотива");
lok[i] = new bd();
}
catch(osibochka n1)
{
i--;
}
}
int j=0;
for(;j!=1;)
{
j=1;
try
{
flag = 0;
str = new StringBuffer();
System.out.println("Сколько лет не ремонтировались интересуещие вас локомотивы?");
while ((ch = (char) System.in.read())!= '\n')
str.append(ch);
n = Integer.parseInt(str.toString());
n = 2009 - n;
for (i = 0; i < kol; i++) {
flag = lok[i].oprGr(n);
}
if (flag == 0)throw new osibochka1();
}
catch (osibochka1 e)
{
j=0;
}
}
}
catch (IOException ex)
{
System.exit(0);
}
}
}
Задание №6
Исследовать класс BitSet
import java.util.BitSet;
public class lab6
{
public static void main(String[] args)
{
BitSet mas = new BitSet();
BitSet mas2 = new BitSet();
BitSet mas3 = new BitSet();
mas.set(3); //установка бита с индексом 3(как истина)
System.out.println(mas.get(3));
mas.clear(3); //сброс бита с индексом 3(как ложь)
System.out.println(mas.get(3));
mas.set(2);
mas.set(5);
mas.set(6);
mas2.set(4);
mas2.set(5);
mas2.clear(6);
mas3.set(2);
mas3.set(1);
mas3.clear(6);
System.out.println("mas = "+mas);
System.out.println("mas2 = "+mas2);
System.out.println("mas3 = "+mas3);
mas.and(mas2); //поразрядное выполнение логического "и" над двумя наборами и запись результата в mas
System.out.println("mas = "+mas);
mas.or(mas3); //поразрядное выполнение логического "или" над двумя наборами и запись результата в mas
System.out.println("mas = "+mas);
mas.xor(mas2); //поразрядное выполнение логического "исключающего или" над двумя наборами и запись результата в mas
System.out.println("mas = "+mas);
int n = mas3.size(); //определение позиции старшего бита, равного истине
System.out.println("Старший бит в mas имеет позицию, равную = "+n);
mas3.set(4);
mas3.clear(5);
System.out.println("Сравним массивы mas и mas3 "+mas.equals(mas3));
System.out.println("Сравним массивы mas и mas2 "+mas.equals(mas2));
n = mas.hashCode(); //вычисдение хеш-кода
System.out.println("Хэшкод для mas = "+n);
n = mas2.hashCode();
System.out.println("Хэшкод для mas2 = "+n);
n = mas3.hashCode();
System.out.println("Хэшкод для mas3 = "+n);
}
}
Задание №7
Исследовать класс Vector
import java.util.Vector;
import java.lang.StringBuffer;
import java.io.IOException;
class Proba implements Cloneable //подключение интерфейса Cloneable
{
static int i=1;
int nomer;
String name;
Proba()
{
name = "Без имени";
nomer=i;
i++;
}
Proba(String name)
{
this.name=name;
nomer=i;
i++;
}
private void pnom() //функция получения порядкового номера
{
nomer=i;
i++;
}
public Object clone(boolean flag) //функция клонирования
{
try
{
Proba temp =(Proba) super.clone(); //вызов родительской защищенной функции клонирования
if(flag)
temp.pnom();
return temp;
}
catch (CloneNotSupportedException ex)
{
System.out.println("Во время клонирования произошла ошибка");
return null;
}
}
public String toString() //переопределение метода toString()
{
return "номер = "+nomer+", имя = "+name;
}
}
public class lab7
{
public static void main(String[] args)
{
try
{
Object buf;
char ch;
StringBuffer b1 = new StringBuffer();
Vector v = new Vector(10,10); //создание вектора с емкостью 10 и емкостью на которую он будет увеличиваться в случае переполнения равной 10
if(v.isEmpty()) //определение, пустой ли вектор
System.out.println("\nЭтап 1) Вектор v пока пустой");
else
System.out.println("\nЭтап 1)Вектор v не пустой");
v.add(b1); //добавление в него объекта b1
if(v.isEmpty()) //определение, пустой ли вектор
System.out.println("\nЭтап 2)Вектор v пока пустой");
else
System.out.println("\nЭтап 2)Вектор v не пустой");
System.out.println("\nВведите строку buf");
while((ch=(char)System.in.read())!='\n')
b1.append(ch);
System.out.println("\n\nПолучим состояние вектора v");
for(int i=0;i<v.size();i++)
{
System.out.println("Элемент вектора v с индексом "+i+",имеющий класс "+(v.get(i)).getClass()+", содержит следующие данные\n"+v.get(i));
}
buf=(StringBuffer)v.get(0); //получение объекта из вектора
buf=(String)buf.toString();
System.out.println("\nСтрока buf = "+buf);
Proba proba[] = new Proba[5];
proba[0] = new Proba();
proba[1] = new Proba("Рабочий класс1");
proba[2] = proba[1];
v.clear(); //очистка вектора
if(v.isEmpty())
System.out.println("\nЭтап 3)Вектор v пока пустой");
else
System.out.println("\nЭтап 3)Вектор v не пустой");
v.add(buf); //добавление в вектор объекта
v.add(proba[1]); //добавление в вектор объекта
v.add(1, proba[0]); //добавление в вектор объекта на позицию с индексом 1, при этом следующие объекты сдвигаются
if(v.isEmpty())
System.out.println("\nЭтап 4)Вектор v пока пустой");
else
System.out.println("\nЭтап 4)Вектор v не пустой");
System.out.println("\n\nПолучим состояние вектора v");
for(int i=0;i<v.size();i++)
{
System.out.println("Элемент вектора v с индексом "+i+",имеющий класс "+(v.get(i)).getClass()+", содержит следующие данные\n"+v.get(i));
}
proba[3] = (Proba) proba[1].clone(false); //клонирование объекта
proba[4] = (Proba) proba[1].clone(true);
v.add(proba[1]);
System.out.println("\n\nОбъект proba[3] имеет следующее состояние\n"+proba[3]);
System.out.println("Объект proba[4] имеет следующее состояние\n"+proba[4]);
System.out.println("\n\nПроведем проверку наличия объектов класса Proba в нашем векторе\n");
for(int i=0;i<proba.length;i++)
{
if(v.contains(proba[i])) //проверка, есть ли объект proba[i] в векторе
{
System.out.println("Объект proba["+i+"] есть в векторе v, и имеет первый и последний индексы равные "+v.indexOf(proba[i])+" и "+v.lastIndexOf(proba[i]));
}
else
System.out.println("Объекта proba["+i+"] нет в векторе v");
}
System.out.println("\n\nПолучим состояние вектора v");
for(int i=0;i<v.size();i++)
{
System.out.println("Элемент вектора v с индексом "+i+",имеющий класс "+(v.get(i)).getClass()+", содержит следующие данные\n"+v.get(i));
}
System.out.println("\n\nУдалим первый элемент вектора v и получим состояние этого вектора");
v.remove(0); //удаление объекта с индексом 0 из вектора, при этом оставшиеся объекты сдвигаются
for(int i=0;i<v.size();i++)
{
System.out.println("Элемент вектора v с индексом "+i+",имеющий класс "+(v.get(i)).getClass()+", содержит следующие данные\n"+v.get(i));
}
}
catch(IOException e)
{
System.out.println("Во время ввода произошла ошибка. Программа завершается");
System.exit(0);
}
}
}
Задание №8
Создать файл класса RandomAccessFile, записать в него некоторое количества записей и организовать чтение заданной записи без перебора всего файла.
import java.io.*;
class nFile
{
private File fn;
private RandomAccessFile f;
private StringBuffer buf;
private String name;
private char ch;
nFile()
{
System.out.println("Введите имя файла");
try
{
buf = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
buf.append(ch);
name=buf.toString();
fn = new File(name); //создание объекта fn, класса RandomAccessFile
}
catch(IOException e)
{
System.out.println("Во время ввода произошла ошибка");
}
}
public void zapis() //функция записи в файл
{
try
{
int n, size;
f = new RandomAccessFile(fn, "rw"); //открытие файла f для записи и чтения
System.out.println("Введите количество записей");
buf = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
buf.append(ch);
n=Integer.parseInt(buf.toString());
for(int i=0;i<n;i++)
{
System.out.println("Введите запись номер "+(i+1));
buf = new StringBuffer();
while ((ch = (char) System.in.read())!= '\n')
buf.append(ch);
size=buf.length();
f.writeInt(size); //запись числа size в файл
f.writeChars(buf.toString()); //запсиь строки в файл
}
}
catch (FileNotFoundException ex)
{
System.out.println("Во время создания файла произошла ошибка");
}
catch(IOException e)
{
System.out.println("Во время ввода произошла ошибка");
}
finally
{
try
{
f.close(); //закрытие файла
}
catch (IOException ex1)
{
System.out.println("nВо время закрытия файла произошла ошибка");
}
}
}
public void chtenie() //функция чтения
{
try
{
int size;
long rz;
f = new RandomAccessFile(fn, "r"); //открытие файла f для чтения
System.out.println("Содержимое файла:\n");
rz=f.length(); //определние размера файла
for(int p =1;f.getFilePointer()<rz;p++) //цикл продолжается, пока позиция указателя в файле не станет равна его размеру
{
size=f.readInt(); // чтение целочисленной величины из файла
System.out.println("\nЗапись номер "+p);
for(int i=0;i<size;i++)
{
System.out.print(f.readChar()); //чтение символа из файла и его вывод на печать
}
}
}
catch (FileNotFoundException ex)
{
System.out.println("\nВо время открытия файла произошла ошибка");
}
catch(IOException e)
{
System.out.println("\nВо время чтения произошла ошибка");
}
finally
{
try
{
f.close(); //закрытие файла
}
catch (IOException ex1)
{
System.out.println("nВо время закрытия файла произошла ошибка");
}
}
}
public void chtenie(int nomer) //функция чтения записи с номером nomer
{
try
{
int size;
boolean flag=false;
long rz;
f = new RandomAccessFile(fn, "r"); //открытие файла f для чтения
rz=f.length(); //определние размера файла
for(int p =1;f.getFilePointer()<rz;p++) //цикл продолжается, пока позиция указателя в файле не станет равна его размеру
{
size=f.readInt(); // чтение целочисленной величины из файла
if(p!=nomer)
{
f.skipBytes(size*2); //сдвиг указателя в файле на величину size*2
continue;
}
flag=true;
System.out.println("\nЗапись номер "+p);
for(int i=0;i<size;i++)
{
System.out.print(f.readChar()); //чтение символа из файла и его вывод на печать
}
break;
}
if(!flag)
System.out.println("\n\nЗаписи с таким номером нет!");
}
catch (FileNotFoundException ex)
{
System.out.println("\nВо время открытия файла произошла ошибка");
}
catch(IOException e)
{
System.out.println("\nВо время чтения произошла ошибка");
}
finally
{
try
{
f.close();
}
catch (IOException ex1)
{
System.out.println("nВо время закрытия файла произошла ошибка");
}
}
}
}
public class lab8
{
public static void main(String[] args)
{
nFile f = new nFile();
f.zapis();
f.chtenie();
StringBuffer buf = new StringBuffer();
char ch;
int nomer;
System.out.println("\n\nЗадайте номер записи, которую хотите прочитать");
try
{
while ((ch = (char) System.in.read())!= '\n')
buf.append(ch);
}
catch(IOException e)
{
System.out.println("Во время ввода произошла ошибка");
}
nomer = Integer.parseInt(buf.toString());
f.chtenie(nomer);
}
}
Задание №9
Создать окно с текстовым полем и реализовать в нем следующее функции:
1. Открытие файла
2. Сохранение файла
3. Кодировка текста
4. Раскодировка текста
import java.awt.*;
import java.awt.Graphics;
import java.awt.event.*;
import javax.swing.*;
import java.io.File;
import javax.swing.event.*;
import java.io.RandomAccessFile;
import java.io.*;
public class lab9
{
public static void main(String[] args)
{
Okno okno = new Okno();
okno.setDefaultCloseOperation(okno.EXIT_ON_CLOSE); //определение крестика, как кнопки закрытия окна
okno.show(); //открытие окна
}
}
class Okno extends JFrame //создание класса Okno
{
String str=new String();
private File file=null;
private RandomAccessFile f;
private mJTextArea textpanel;
private Container pane;
class mMenuBar extends JMenuBar //создание класса mMenuBar
{
public mMenuBar()
{
JMenu filemenu = new JMenu("Файл"); // определние пункта меню
add(filemenu); // добавление пункта меню в панель меню
JMenuItem iopen = filemenu.add(openeaction); //определение подпункта меню и действия в случае его активации
filemenu.addSeparator(); //добавление разделителя
JMenuItem isave = filemenu.add(saveaction); //определение подпункта меню и действия в случае его активации
JMenuItem isaveass = filemenu.add(saveassaction); //определение подпункта меню и действия в случае его активации
filemenu.addSeparator(); //добавление разделителя
JMenuItem iexit = filemenu.add(exitaction); //определение подпункта меню и действия в случае его активации
JMenu codmenu = new JMenu("Обработка"); // определние пункта меню
add(codmenu); // добавление пункта меню в панель меню
JMenuItem icreatcod = codmenu.add(createcodaction); //определение подпункта меню и действия в случае его активации
JMenuItem ireadcod = codmenu.add(readcodaction); //определение подпункта меню и действия в случае его активации
}
}
public Okno()
{
setTitle("Лаболаторная работа 9"); //определение заголовка окна
setSize(400,400); //определение размеров окна при вызове
setJMenuBar(new mMenuBar()); //получение меню
pane = getContentPane(); //получение контейнера
textpanel = new mJTextArea(str); //создание текстового поля
textpanel.setLineWrap(true); //определение возможности переноса символов текстового поля
pane.add(textpanel); //добавление текстового поля в контейнер
}
private AbstractAction exitaction = new AbstractAction("Выйти из программы") //определение действия в случае его активации
{
public void actionPerformed(ActionEvent e)
{
try
{
f.close(); //закрытие файла
}
catch (IOException ex1)
{
System.out.println("nВо время закрытия файла произошла ошибка");
}
System.exit(0);
}
};
private AbstractAction openeaction = new AbstractAction("Открыть файл") //определение действия в случае его активации
{
public void actionPerformed(ActionEvent e)
{
file = new File(JOptionPane.showInputDialog("Введите полное имя файла"));
try
{
f = new RandomAccessFile(file, "r"); //открытие файла
str = f.readLine(); //чтение содержимого файла
textpanel.setText(str); //установка содержимого текстового поля
f.close(); //закрытие файла
}
catch (FileNotFoundException ex)
{
System.out.println("Во время создания файла произошла ошибка");
}
catch (IOException ex)
{
System.out.println("\nВо время чтения произошла ошибка");
}
}
};
private AbstractAction saveaction = new AbstractAction("Сохранить файл") //определение действия в случае его активации
{
public void actionPerformed(ActionEvent e)
{
if(file==null) file = new File(JOptionPane.showInputDialog("Введите полное имя файла"));
try
{
f = new RandomAccessFile(file, "rw"); //открытие файла
str = textpanel.getText(); //получение содержимого тектового поля
f.writeBytes(str); //запись строки в файл
f.close(); //закрытие файла
}
catch (FileNotFoundException ex)
{
System.out.println("Во время создания файла произошла ошибка");
}
catch (IOException ex)
{
System.out.println("\nВо время чтения произошла ошибка");
}
}
};
private AbstractAction saveassaction = new AbstractAction("Сохранить файл как") //определение действия в случае его активации
{
public void actionPerformed(ActionEvent e)
{
file = new File(JOptionPane.showInputDialog("Введите полное имя файла"));
try
{
f = new RandomAccessFile(file, "rw"); //открытие файла
str = textpanel.getText(); //получение содержимого тектового поля
f.writeBytes(str); //запись строки в файл
f.close(); //закрытие файла
}
catch (FileNotFoundException ex)
{
System.out.println("Во время создания файла произошла ошибка");
}
catch (IOException ex)
{
System.out.println("\nВо время чтения произошла ошибка");
}
}
};
private AbstractAction createcodaction = new AbstractAction("Закодировать текст") //определение действия в случае его активации
{
public void actionPerformed(ActionEvent e)
{
str = textpanel.getText(); //получение содержимого тектового поля
StringBuffer buf = new StringBuffer(str);
for(int i=0;i<str.length();i++)
{
buf.insert(i*2,'e');
}
str = buf.toString();
textpanel.setText(str); //установка содержимого текстового поля
}
};
private AbstractAction readcodaction = new AbstractAction("Раскодировать текст") //определение действия в случае его активации
{
public void actionPerformed(ActionEvent e)
{
str = textpanel.getText(); //получение содержимого тектового поля
StringBuffer buf = new StringBuffer(str);
for(int i=0;i<str.length()/2;i++)
{
buf.deleteCharAt(i);
}
str = buf.toString();
textpanel.setText(str); //установка содержимого текстового поля
}
};
}
class mJTextArea extends JTextArea //создание класса текстового поля
{
String buf;
public mJTextArea(String str)
{
super(str);
buf = new String(str);
str = buf;
getDocument().addDocumentListener(new mListener()); //подключение слушателя mListener()
}
private class mListener implements DocumentListener //создание класса слушателя, поддерживающего интерфейс DocumentListener
{
public void insertUpdate(DocumentEvent e) //определение действия в случае вставки символа
{
buf = getText().trim(); //получения текста из тектового поля
}
public void removeUpdate(DocumentEvent e) //определение действия в случае удаления символа
{
buf = getText().trim(); //получения текста из тектового поля
}
public void changedUpdate(DocumentEvent e)
{
}
}
}
Дата добавления: 2015-11-04; просмотров: 26 | Нарушение авторских прав
<== предыдущая лекция | | | следующая лекция ==> |
Тестовое задание для поступления в Java School. | | | EPAM Systems(www.epam.com), one of the largest Software Engineering Services Companies in European IT market, CMMI Level 4 certified, is looking for Java Developer for its Kyiv Office. |