2010-11-08 5 views
0

код довольно огромен и включает в себя много различных классов/методов:Легкий компонент над проблемой тяжеловесный компонент

Но вот суть:

Существует основной кадр: A_Main Выбор что-то в основном рама A: открывает JDialog B_Dialog Это B_Dialog имеет JPanel на нем: C_Panel

Это C_Panel состоит из текстового поля и кнопки

При нажатии на текстовое поле/б utton: открывает всплывающую подсказку и еще JPanel: D_Panel

Теперь проблема:

1) Контекстное перетекает размер B_Dialog и поэтому получает усечен

2) D_Panel однако; даже если его вне граница B_Dialog получает отображается полностью

2.1) Есть некоторые texfields и выпадающее меню в этом D_Panel

2.2) События мыши правильно функционировать в этом D_Panel пунктов (выпадающее меню)

2.3) Но события клавиатуры не работают правильно (текстовое поле)

Я был бы рад, если бы вы могли помочь!

Спасибо!

+0

Как «любые всплывающие компоненты (' JComboBox', 'JPopupMenu',' JMenuBar'), созданные в модальном диалоговом окне, будут вынуждены быть легкими, http://sscce.org/, которые показывают, как вы открываете ' JPanel' может быть информативным. Http://download.oracle.com/javase/6/docs/api/javax/swing/JDialog.html – trashgod

ответ

0

Теперь, когда я пытаюсь ввести что-то в текстовое поле флягу JPanel «с, я не в состоянии сделать это, так как это выскакивает границы основного JDialog, который его содержит.

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

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

+0

Компонент виден над другим компонентом, так как в нем не разрезается по краям Я не могу использовать клавиатуру для компонента сверху, но она доступна для редактирования. – DevTester

+0

Я не уверен, что вы имеете в виду, если ваш JPanel имеет один и тот же цвет, вы не сможете сказать, где это, если только вы добавьте JScrollPane. Не могли бы вы предоставить некоторый код? Трудно догадаться. – 2010-11-10 15:39:59

+0

Я отредактировал вопрос для большей ясности. Пожалуйста, взгляните на вопрос. Спасибо! – DevTester

0

Это может быть сделано только в более новых версиях JDK.

См., Mixing Heavyweight and Lightweight Components.

+0

Компонент виден над другим компонентом, так как в нем есть не разрезать на t он режет. Я не могу использовать ключ клавиатуры, но он доступен для редактирования. – DevTester

Смежные вопросы