Примеры свинга на Java - Муравьи бегают по миру, добывая еду из груд? - PullRequest
1 голос
/ 26 марта 2010

Я давно не занимался программированием свинга, поэтому я ищу примеры GUI, которые хотя бы близки к тому, что я пытаюсь сделать.

Графический интерфейс, который мне нужно будет представить, - это маленькие узлы (скажем, муравьи), путешествующие вокруг, собирая еду из кучи еды (что означает просто маленькие узлы, идущие к более крупным узлам). Как только узел (муравей) берет кусок пищи, куча немного сжимается, и муравей возвращает его домой (в ДРУГОЙ круг).

Это звучит довольно тривиально, но весь шаблон, участвующий в настройке java GUI, просто не имеет для меня логического смысла, и GUI - такой маленький кусочек моего проекта. Будем весьма благодарны за любые примеры, которые будут хороши для этого стиля проекта.

Спасибо!

Ответы [ 4 ]

1 голос
/ 26 марта 2010

Вы можете взглянуть на проект по коду, связанный с экзаменом по информатике для колледжа, который называется Board 1002 * GridWorld . Как следует из названия, это дискретное, основанное на сетке моделирование, которое является достаточно мощным и гибким и может даже послужить основой для всего вашего проекта. Я полагаю, что это открытый исходный код, и часть GUI уже построена и функционирует. Даже если вы не можете адаптировать его непосредственно к вашим потребностям, он все равно может дать вам много советов.

Кроме того, учебное пособие для студентов предоставляет хороший, читаемый обзор кода и его работы.

0 голосов
/ 26 марта 2010

Я бы посоветовал использовать библиотеку, которая может настроить аппаратное ускорение образа Java2D, и другие полезные вещи, если вы хотите рассмотреть рисование Java2D, например GTGE . Исходный код доступен, если вы хотите посмотреть, как они работают.

Особенности Java

  • Двойная буферизация с буферной стратегией или нестабильным изображением
  • Визуализация OpenGL через JOGL или LWJGL
  • Аппаратно-ускоренные изображения
  • Таймер высокого разрешения, поддержка расчета смещения времени
  • Полностью объектно-ориентированная библиотека, максимально использующая Java OOP
0 голосов
/ 26 марта 2010

Существует множество различных методов, которые вы можете использовать. Вероятно, самый простой / быстрый (хотя и не «самый чистый» [на самом деле грязный]) способ достичь того, что вы хотите сделать, - это, вероятно, расширение JFrame и добавление пользовательского JPanel, на котором вы рисуете. например ( Код не проверен! ):

public class AntGUI extends JFrame
{
    [...]
    private JPanel drawingSurface;

    public AntGUI()
    {
      drawingSurface = new JPanel();
      this.add(drawingSurface);
    }

    public void step(){//put logic here / delegate logic to lib}

    public void paintAnts()
    {
      Graphics2D g = drawingSurface.createGraphics() // or getGraphics, I can't recall exactly
      g.setColor(Color.white);
      g.fillRect(0,0,drawingSurface.getWidth(), drawingSurface.getHeight());
      for(Ant a : ants)
      {
        paintAnt(g, a);
      }
    }

    public void paintAnt(Graphics2D g, Ant a)
    {
      // paint Ant
    }

}

А затем в вашем главном приложении перерисовывайте каждые 42 мс или около того.

0 голосов
/ 26 марта 2010

Может быть, проверить Clojure имитация муравья ?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...