Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лабораторная работа 3 c С# и Java).doc
Скачиваний:
1
Добавлен:
17.08.2019
Размер:
85.5 Кб
Скачать

Задания

1. Введите и запустите программу из приведенного выше примера 1.

2. Измените программу, чтобы при нажатии клавиши мыши движение текста не прекращалось, а

а) увеличивался размер шрифта текста;

б) изменялся цвет текста.

3. Измените программу, чтобы текст перемещался

а) по горизонтали слева направо и обратно;

б) по горизонтали справа налево, а после выхода за левую границу окна снова появлялся справа;

в) по горизонтали слева направо, а после выхода за правую границу окна снова появлялся слева;

г) по вертикали сверху вниз и обратно.

4. Измените программу, чтобы вместо текста перемещался

а) круг;

б) квадрат;

в) прямоугольник.

5. Добавьте в окно программы кнопку, при нажатии которой

а) движение фигуры приостанавливается, а при следующем нажатии возобновляется;

б) изменяется цвет закраски фигуры;

в) изменяется цвет контура фигуры;

г) изменяется размер фигуры.

Графика и потоки в языке j#. Кнопки.

Пример программы 1.

Пример программы 1. Этап 1. Только окно.

package cjLab3;

// В окне по диагонали вниз движется слово "Hello".

// При нажатии клавиши мыши движение прекращается.

import java.awt.*;

public class ThreadTest extends Frame

{

public ThreadTest()

{

this.setTitle("Бегущая строка");

this.setSize(500,500);

show();

}

public static void main()

{

ThreadTest tT = new ThreadTest();

}

}

Пример программы 1. Этап 2. Простой поток

package cjLab3;

// В окне по диагонали вниз движется слово "Hello".

// При нажатии клавиши мыши движение прекращается.

import java.awt.*;

public class ThreadTest extends Frame implements Runnable

{

int x,y;

Thread thread;

public ThreadTest()

{

this.setTitle("Бегущая строка");

this.setSize(500,500);

x=5;

y=5;

show();

thread= new Thread(this);

thread.start();

}

public void paint(Graphics g)

{

g.drawString("Hello",x,y);

}

public void run()

{

while (x < 100)

{

x += 5; y += 20;

try

{

Thread.sleep(500);

repaint();

}

catch (InterruptedException e) { }

}

}

public static void main()

{

ThreadTest tT = new ThreadTest();

}

}

Пример программы 1. Этап 3. Использование мыши

package cjLab3;

// В окне по диагонали вниз движется слово "Hello".

// При нажатии клавиши мыши движение прекращается.

import java.awt.*;

Import java.Awt.Event.*;

public class ThreadTest extends Frame implements Runnable

{

int x,y;

Thread thread;

public ThreadTest()

{

this.setTitle("Бегущая строка");

this.setSize(500,500);

x=5;

y=5;

show();

this.addMouseListener(new MouseAdapter()

{

public void mousePressed(MouseEvent mE)

{

x = 0; y = 0;

}

});

thread= new Thread(this);

thread.start();

}

public void paint(Graphics g)

{

g.drawString("Hello",x,y);

}

public void run()

{

while (x < 100)

{

x += 5; y += 20;

try

{

Thread.sleep(500);

repaint();

}

catch (InterruptedException e) { }

}

}

public static void main()

{

ThreadTest tT = new ThreadTest();

}

}

Пример программы 1. Этап 4. Предпоследний этап

package cjLab3;

// В окне по диагонали вниз движется слово "Hello".

// При нажатии клавиши мыши движение прекращается.

import java.awt.*;

import java.awt.event.*;

public class ThreadTest extends Frame implements Runnable

{

int x,y;

Thread thread;

boolean life;

public ThreadTest()

{

this.setTitle("Бегущая строка");

this.setSize(500,500);

life=true;

x=5;

y=5;

show();

this.addMouseListener(new MouseAdapter()

{

public void mousePressed(MouseEvent mE)

{

life = false;

}

});

thread= new Thread(this);

thread.start();

}

public void paint(Graphics g)

{

g.drawString("Hello",x,y);

}

public void run()

{

while (life)

{

x += 5; y += 20;

try

{

Thread.sleep(500);

repaint();

}

catch (InterruptedException e) { }

}

}

public static void main()

{

ThreadTest tT = new ThreadTest();

}

}

Пример программы 1. Этап 5. Последний этап

package cjLab3;

// В окне по диагонали вниз движется слово "Hello".

// При нажатии клавиши мыши движение прекращается.

import java.awt.*;

import java.awt.event.*;

public class ThreadTest extends Frame implements Runnable

{

int x,y;

Thread thread;

boolean life;

public ThreadTest()

{

this.setTitle("Бегущая строка");

this.setSize(500,500);

life=true;

x=5;

y=5;

show();

this.addMouseListener(new MouseAdapter()

{

public void mousePressed(MouseEvent mE)

{

life = false; //x = 0; y = 0;

}

});

this.addWindowListener(new WindowAdapter()

{

// Функция реакции на закрытие окна

public void windowClosing(WindowEvent mE)

{

System.exit(0);

}

});

thread= new Thread(this);

thread.start();

}

public void paint(Graphics g)

{

Font f= new Font("Verdana", Font.ITALIC, 40);

g.setFont(f);

g.setColor(Color.blue);

g.drawString("Hello",x,y);

}

public void run()

{

while (life)

{

x += 5; y += 20;

try

{

Thread.sleep(500);

repaint();

}

catch (InterruptedException e) { }

}

}

public static void main()

{

ThreadTest tT = new ThreadTest();

}

}

Пример программы 2.

package cjLab3;

// В окне приложения изображен квадрат и вписанный в него круг и две кнопки "Clear"

// и "Draw". При нажатии кнопки "Clear" рисунок стирается, а при нажатии "Draw" –

// восстанавливается.

import java.awt.*;

import java.awt.event.*;

public class CWnd extends Frame // Класс прикладного окна

{

boolean clear; // Очистить окно

Rectangle rect; // Ссылка на объект прямоугольника

Button but1,but2; // Ссылки на объекты-кнопки

public CWnd() // Конструктор окна

{

// Установить свойства окна

this.setTitle("Использование кнопок");

this.setSize(200, 200);

this.show();

this.setLayout(null);

// Создать объект прямоугольник

rect = new Rectangle(100,50,100,100);

clear=false;

// Создать объекты кнопок

but1= new Button("Clear"); // создание

but1.setLocation(10,30);// координаты кнопки but1

but1.setSize(70,30); // размер кнопки

but2= new Button("Draw"); // кнопок

but2.setLocation(10,80);

but2.setSize(70,30);

// Добавить кнопки к форме

add(but1); // добавить кнопку к форме

add(but2);

// Реализация события для кнопоки but1

but1.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent aE)

{

clear=true;

repaint();

}

});

// Реализация события для кнопоки but2

but2.addActionListener(new ActionListener()

{

public void actionPerformed(ActionEvent aE)

{

clear=false;

repaint();

}

});

}

//------------------------------

// функция перерисовки окна

public void paint(Graphics args)

{

if (clear)return;

args.setColor(Color.yellow);

args.drawRect(rect.x, rect.y, rect.width, rect.height);

args.setColor(Color.black);

args.fillRect(rect.x, rect.y, rect.width, rect.height);

args.setColor(Color.red);

args.fillOval(rect.x, rect.y, rect.width, rect.height);

}

//------------------------------

public static void main()

{

CWnd cwnd= new CWnd(); // Создать объект окна

}

}