Скачиваний:
70
Добавлен:
09.05.2014
Размер:
5.66 Кб
Скачать
package mainframe;

import java.awt.*;
import java.awt.event.*;
import java.awt.geom.*;
import javax.swing.*;
import javax.swing.event.*;

public class Main
{

public static void main(String[] args)
{
EventQueue.invokeLater(new Runnable() // Запускает поток диспечера событий
{
public void run()
{
DrawFrame frame = new DrawFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Что произойдет если мы закроем фрейм
frame.setVisible(true); // Прозрачность
}
});
}
}
// Фрейм для рисования области
class DrawFrame extends JFrame
{
public DrawFrame()
{
component.addMouseListener(new MouseHandler()); // Создание обработчика
setTitle("Lab2: Golubtsov, Permyakov"); // Текст в заголовке
setSize(DEFAULT_WIDTH, DEFAULT_HEIGHT); // Размер фрейма

add(component,BorderLayout.CENTER); // Добавление компанента к фрейму
add(panel,BorderLayout.WEST); // Добавление панели к фрейму

panel.jButton1.addActionListener(new ButtonAction()); // Связывание обработчика с кнопкой


RadAction flaglistener = new RadAction(); // Сознание полосы прокрутки
panel.jList3.addListSelectionListener(flaglistener); // Связывание обработчика с полосой прокрутки
iterator=0;

}
// Определение ширины экрана
protected static int getMonWidth()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize(); // Возращает размер экрана в виде объекта Dimension
int screenWidth = screenSize.width;
return screenWidth;
}
// Определение высоты экрана
protected static int getMonHeight()
{
Toolkit kit = Toolkit.getDefaultToolkit();
Dimension screenSize = kit.getScreenSize();
int screenHeight = screenSize.height-screenSize.height/20;
return screenHeight;
}
// Получение информации
String getPointInf(double x, double y)
{
String pointx = (panel.setDecX(x,component)+" ").substring(0,5);
String pointy = (panel.setDecY(y, component)+" ").substring(0,5);

iterator++;

String cont;

if (component.isContain(new Point2D.Double(x,y)))
cont = " Point is in area ( R = " + panel.getLogicRad() + " )";
else cont = " Point is not in area ( R = " + panel.getLogicRad() + " )";

String xy = iterator + ") " + "{" + pointx + "; " + pointy + "}" +
cont + "\n";
return xy;
}

String getPointInfString(String x, String y, Point2D p)
{
iterator++;

String cont;

if (component.isContain(p))
cont = " Point is in area ( R = " + panel.getLogicRad() + " )";
else cont = " Point is not in area ( R = " + panel.getLogicRad() + " )";

String xy = iterator + ") " + "{" + x + "; " + y + "}" + cont + "\n";

return xy;

}

private class MouseHandler extends MouseAdapter
{
public void mousePressed(MouseEvent event) // Реакция на нажатие левой кнопки на мыши
{
component.add(event.getPoint()); // Добавляем компонент event.getPoint() в контейнер
panel.drawKoord(event.getPoint(), component);

double x = event.getPoint().getX();
double y = event.getPoint().getY();

String xy = getPointInf(x, y);

panel.writeFile(xy, true);
}
}
// Когда кнопка нажата, устанавливаем точку
private class ButtonAction implements ActionListener
{
public void actionPerformed(ActionEvent event)
{
String jListStrx;
String jListStry;

jListStry = (String)panel.jList1.getSelectedValue();
jListStrx = (String)panel.jList2.getSelectedValue();

panel.jTextField1.setText(jListStrx);
panel.jTextField2.setText(jListStry);

Point2D p =
new Point2D.Double(panel.setPixelX(Double.parseDouble(jListStrx), component),
panel.setPixelY(Double.parseDouble(jListStry), component));
component.add(p); // Добавляем компонент р в контейнер

String xy = getPointInfString(jListStrx, jListStry, p);
panel.writeFile(xy, true);
}
}

private class RadAction implements ListSelectionListener
{
public void valueChanged(ListSelectionEvent event)
{
String jListStr=(String)panel.jList3.getSelectedValue();

panel.setOldLogicRad(panel.getLogicRad());
double newlogicrad=1;

newlogicrad = Double.parseDouble(jListStr);

panel.setLogicRad(newlogicrad);
component.repaintPoints(panel);
}
}

static final int DEFAULT_WIDTH = getMonWidth();
static final int DEFAULT_HEIGHT = getMonHeight();
static int iterator;

NPanel panel = new NPanel();
DrawComponent component = new DrawComponent();
}

Соседние файлы в папке mainframe