GeomVis  0.1
Набор классов Java для визуализации результатов работы геометрических алгоритмов
CommandButton.java
См. документацию.
1 package control;
2 
3 import java.awt.event.ActionEvent;
4 import java.awt.event.ActionListener;
5 import java.lang.reflect.InvocationTargetException;
6 import java.lang.reflect.Method;
7 import java.util.Arrays;
8 import java.util.Iterator;
9 
10 import geom.Accur;
11 import geom.Algorithms;
12 import geom.GObject;
13 import geom.Point;
14 import geom.Segment;
15 
16 import javax.swing.JButton;
17 
20 
21 public class CommandButton extends JButton implements ActionListener
22 {
23 
24  private String text = "";
25  // static method prototype: static void methodName(GeomContainer gObjects)
26  // from Commands class
27  private String methodName = "";
29 
30  public CommandButton(String text, String methodName, GeomContainer gObjects) {
31  if (text != null)
32  {
33  setText(text);
34  }
35  this.addActionListener(this);
36  this.methodName = methodName;
37  this.gObjects = gObjects;
38  }
39 
40  @Override
41  public void actionPerformed(ActionEvent arg0)
42  {
43  execute();
44  }
45 
46  private void execute()
47  {
48  Class c = Commands.class;
49  try
50  {
51  Method method = c.getMethod(methodName, GeomContainer.class);
52  try
53  {
54  method.invoke(null, gObjects);
55  } catch (IllegalAccessException | IllegalArgumentException
56  | InvocationTargetException e)
57  {
58  e.printStackTrace();
59  }
60  } catch (NoSuchMethodException e)
61  {
62  Message.out("No method " + methodName
63  + " in class Commands!\nCheck the name.");
64  } catch (SecurityException e)
65  {
66  Message.out("Method " + methodName
67  + " in class Commands is NOT public. Make it public.");
68  }
69 
70  }
71 }
Класс для работы с вещественными числами
Definition: Accur.java:6
CommandButton(String text, String methodName, GeomContainer gObjects)
Kласс для хранения графических объектов
Точка. Определяется двумя числами - координами в декартовой системе координат.
Definition: Point.java:10
Интерфейс слушателя контейнера. Функция вызывается при изменении контейнера
GeomContainer gObjects
void actionPerformed(ActionEvent arg0)
Отрезок. Определяется двумя точками
Definition: Segment.java:9
Абстрактный суперкласс для всех графических объектов
Definition: GObject.java:14
Основной класс - функции геометрических алгоритмов Используются команадами.
Definition: Algorithms.java:10