Как нарисовать линию между двумя метками на панели, где метки добавляются во время выполнения - PullRequest
1 голос
/ 28 марта 2010

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

Здесь есть два события: одно - щелчок по панели для создания меток, а второе - соединение этих двух меток (нажатие мыши, перетаскивание мышью и отпускание мыши). Оба эти события должны вызывать метод repaint (), но для разных целей. Но может быть только один метод paint (). Проблема в том, что когда я соединяю эти две метки, появляется линия, но остальные компоненты на панели исчезают.

Ответы [ 2 ]

3 голосов
/ 28 марта 2010

То есть вероятно из-за того, что вы переопределяете метод панелей paint(). Вместо этого переопределите paintComponent() / paintComponents(). Независимо от того, используете ли вы paint или paintComponent, не забудьте позвонить super.paint() или super.paintComponents() соответственно.

2 голосов
/ 29 марта 2010

Вы можете использовать JLayeredPane вместо JPanel для рисования нескольких объектов выше друг друга.

Вы можете добавить свой исходный JPanel к JLayeredPane, а затем добавить еще один с более высоким Z-индексом и непрозрачным свойством, установленным в true. Тогда самая верхняя панель может быть легко перекрашена без другой нижней панели, чтобы показать странные вещи.

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