Модификация таблицы Java - PullRequest
4 голосов
/ 02 мая 2011

По сути, это задача управления свойствами, и я делаю гораздо более сложное решение, чем требуется. Это только последний бит, где я борюсь.

Чтобы дать вам представление о том, что мы имеем:

  • Свойства (суперкласс)
  • PropertiesToLet (расширяет свойства)
  • PropertiesToSell (расширяет свойства)
  • EstateAgent (графический интерфейс для управления свойствами)

Так что часть, с которой я борюсь, это в основном класс EstateAgent.

То, что я написал до сих пор: http://pastebin.com/0qieM67j

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

Линии, с которыми я борюсь, взяты из: От 55 до 113

Речь идет о таблице, которую я создаю и вставляю в нее строки. Каждая строка представляет свойство. Это может быть propertyToLet или объект propertyToSell. Эти свойства взяты из моих ArrayList<Property> свойств.

Вставка строки и отображение таблицы в порядке, и она работает так, как должна. Так что есть проблема с кодом. Я извиняюсь за структуру кода - но мы ограничены в представлении - поэтому мы не можем отправить более 4 файлов, эти файлы, очевидно, являются именованными классами - поэтому я не могу расширять больше классов или файлов для проекта.

Итак, что я хочу сделать сейчас: редактирование свойства.

У меня есть строка, представляющая свойство. Он показывает мне позицию в arrayList и все значения, которые я могу получить.

Так что теперь есть еще несколько возможностей.

  • Добавление и удаление арендатора из PropertyToLet
  • на основе арендатора вы можете получить арендную плату и заплатить арендную плату и посмотреть, сколько арендной платы осталось заплатить.
  • Добавить и удалить покупателя из PropertyToSell (проданная цена будет меняться в зависимости от того, есть покупатель или нет)

Так что в основном есть несколько способов, как продолжить отсюда. Например, это может быть поведение, подобное этому:

  • Щелкните правой кнопкой мыши на свойстве, чтобы открыть контекстное меню, в котором находится мышь, и я могу выбрать другие параметры, такие как: «Удалить арендатора», «Добавить арендатора», «Собрать аренду», «Показать аренду», «Добавить владельца», «Удалить покупателя» --- - конечно, в зависимости от того, что это за имущество.

  • Двойной щелчок по строке => изменить свойство (посмотрите на этот скриншот)

enter image description here

  • показывает окно, которое я использую для добавления свойства - я могу добавить все значения в поле, и эта кнопка изменится на «Обновить свойство»

Это было бы одно решение, другим было бы: - Изменить ячейку строки => изменить значение свойства (они будут проверять объект и смотреть, действительно ли это изменилось, а не только значение строки)

Это мои идеи о том, как внедрить последние шаги по внедрению функциональности в приложение.

Итак, вот мои вопросы:

И чем мне нужно внешнее мнение, что легче и быстрее реализовать в этой очень ограниченной задаче. Способ открыть существующее окно добавления и изменить его на окно редактирования - я не хочу иметь избыточный код! Или измените значение, отредактировав ячейку так, чтобы значения в массиве изменились.

Мне нужна помощь с подходом, что легче, а что лучше.

Я действительно ценю любую помощь здесь!

Я с нетерпением жду ответов.

EDIT Я закончил всплывающее меню спасибо за вашу помощь. Я также отредактировал вопрос.

1 Ответ

2 голосов
/ 03 мая 2011

Начиная с jdk5, рекомендуемый способ присоединения JPopupMenu к компоненту -

   component.setComponentPopupMenu(menu)

Это всплывающее окно автоматически отображается, когда пользовательский жест (мышь или клавиатура) интерпретируется как всплывающий триггер - который может различаться в разных ОС.

Что касается выбора строки справа (popup-trigger) mouseEvent: это не делается по умолчанию в Swing, но кажется нормой в настоящее время для (почти) нативных приложений (в Vista) - возможно, но в Swing. Добровольцы, чтобы сообщить, любой ;-)

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