вопрос дизайна для Java-приложения SWING - PullRequest
0 голосов
/ 06 февраля 2011

Примечание: это курс SWING, который я прохожу.

У меня есть задание сделать простой графический пакет (нарисовать круги, квадраты и т. Д.).

Я думал о наличии нескольких диалоговых окон для ввода параметров формы, т.е.:

Точка имеет х, у Круг имеет х, у, радиус Прямоугольник имеет x, y, ширину, высоту и т.д.

Я думал о создании супер-диалогового класса с X, Y и расширении его для учета ширины, высоты или радиуса и т.д.

Например, rectangleDialog вызовет супер-конструктор с необходимыми дополнительными параметрами:

public abstract class XYDialog extends JFrame {
   public XYDialog(PARAMETERS ... params) {
       // build the dialog by iterating through PARAMETERS
   }
}


public class RectangleDialog extends XYDialog {
  public RectangleDialog() {
    super(PARAMETERS.WIDTH, PARAMETERS.HEIGHT);
  }
}

тогда суперкласс отвечает за построение GUI

Это кажется разумным подходом? Имеет ли это смысл?

Спасибо

1 Ответ

1 голос
/ 06 февраля 2011

Да, я думаю, что это хорошее решение. Но, как уже говорилось ранее, пересмотрите названия ваших классов. Если вы расширяете JFrame, назовите его SomethingFrame. Если PARAMETERS - нормальный класс, он не должен быть прописным.

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

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