Добавил:
Eatmore
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:отчеты по лабораторным работам / лабораторная работа 2 / MainFrame / src / mainframe / Main
.java 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();
}
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();
}