Какие компоненты, контейнеры или макеты следует использовать, чтобы иметь структуру папок с левой стороны, как показано на рисунке? Можно ли это сделать с помощью Swing?
левая сторона = место, обозначенное как избранное.
Как второй вопрос, как я могу поместить значок поиска в jtextField, как показано в месте поиска, сверху справа?
Я нашел, как взломать JtextField с помощью значка и ключа поиска. На этом веб-сайте рассказывается, как поместить значок в текстовое поле.
setMargin()
используется в методе paintComponent()
. Метод рисования должен быть только для рисования и не должен изменять свойства компонента. Изменение свойства может привести к бесконечному циклу, так как компонент автоматически пытается перекрасить себя каждый раз, когда свойство изменяется.
Вероятно, вы должны использовать JList
или JTable
для отображения имен папок. Прочтите соответствующий раздел из руководства Swing о том, How to use Lists
и How to Use Tables
для получения дополнительной информации. Вам нужно будет создать собственный рендерер, чтобы отображать как значок, так и текст. Затем вы можете добавить ListSelectionListener
для обработки выбора определенной папки.
Также для значка в текстовом поле вы можете проверить ComponentBorder или Text Prompt для возможных решений.