2014-03-26 4 views
1

В моем приложении макет панели имеет нулевое значение, потому что мне нужно вставить изображение и текст в том месте, где я выбираю. Я надеюсь, что ширина и высота текста могут автоматически меняться с длиной слов. Если он не работает, другой способ будет в порядке. Щелкните панель, чтобы создать текстовое поле, перетяните его до размера и положения по своему усмотрению, а затем введите наш текст. Как это сделать?Как установить авторазмер jtextarea на длину слов

+2

Просьба поставить код, что вы уже пробовали –

+2

Java GUI, возможно, придется работать на нескольких платформах, на разных разрешениях экрана и с использованием разных PLAF. Таким образом, они не способствуют точному размещению компонентов. Чтобы организовать компоненты для надежного графического интерфейса, вместо этого используйте менеджеров компоновки или [их комбинаций] (http://stackoverflow.com/a/5630271/418556), а также макеты и границы для [пробела] (http: //stackoverflow.com/q/17874717/418556). BTW - например, нам нужен другой графический дизайнер D-n-D, особенно тот, который не использует макеты. –

+0

@AndrewThompson Я согласен, что в большинстве случаев должны использоваться правильные менеджеры макетов, но есть приложения, например. по умолчанию Windows Paint, где вы можете добавлять текстовые поля в любую желаемую позицию. Похоже, это так. – StanislavL

ответ

0

Нажмите на панель, чтобы создать текстовое поле,

Добавить MouseListener к панели. Создание JTextField с размером по умолчанию, используя что-то вроде:

JTextField textField = new JTextField(2); 
textField.setSize(textField.getPreferredSize()); 
textField.setLocation(mouseEvent.getPoint()); 
panel.add(textField); 
panel.repaint(); 

перетащить его размер и положение, как мы хотим,

Добавить Component Mover и Component Resizer классов в текстовом поле.

+0

Я решил проблему, спасибо большое! – sharkliu

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