0
У меня есть JTextArea в JPanel. JPanel имеет нулевой макет или использует абсолютный макет. JTextArea имеет фиксированную ширину. Как установить высоту JTextArea в соответствии с ее содержимым?Java - Как установить высоту JTextArea в соответствии с ее содержимым?
У меня есть этот код:
*some random string of varying length*
String str = "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda"
+ "kdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkdafkakopwepopkkda";
JTextArea wtd = new JTextArea(str);
wtd.setLineWrap(true);
wtd.setOpaque(false);
wtd.setEditable(false);
wtd.setBorder(new EtchedBorder(EtchedBorder.LOWERED));
wtd.setLocation(*defined x position*, *defined y position*);
wtd.setPreferredSize(new Dimension(*fixed width*, *the height depending on the content*));
wtd.setSize(wtd.getPreferredSize());
add(wtd);
Спасибо заранее за любую помощь!
Спасибо за ответ! Я использую пустые макеты, потому что я делаю что-то вроде Relative Layout (например, Android). Если есть макет, похожий на относительный макет, какой он? Кроме того, как узнать количество строк, в которые я ввел строку? Строка, которую я помещаю внутри JTextArea, может изменяться, и она не привязана к определенному числу символов. – esfox
@cLix: Я не знаком с относительной компоновкой, но всегда считаю, что вложенные JPanels, каждый со своим макетом, позволяет просто создавать сложные графические интерфейсы. Также посмотрите на сторонние макеты, такие как MigLayout. –
Вложение JPanels - хорошая идея. Я попытаюсь найти макет, который бы соответствовал тому, что я хотел бы сделать. Кстати, относительный макет, о котором я говорю, - это макет, в котором позиция компонентов будет основываться на позиции других компонентов. Например, если я хочу, чтобы JButton находился под JLabel, я собираюсь получить y-позицию и высоту JLabel, а затем добавить их (или добавить пробел, который определен) и установить его в y-позицию JButton. Это что-то вроде этого. – esfox