Таким образом, я динамически добавляю JTextArea
s к JTabbedPane
по щелчку ячейки JTable
. Мне было интересно, как динамически установить текст JTextArea
. Я искал попытку использовать getSelectedIndex()
, вложенный в getComponentAt()
, но это возвращает Component
, а не JTextArea
, поэтому я не смогу setText()
таким образом. Я интересно, если вместо этого мне нужно построить Array
или ArrayList
из new JTextArea
с и добавить к Array
или ArrayList
каждый раз при выборе ячейки, а затем из getSelectedIndex()
и установить соответствующий JTextArea
сек текст. Необходимый код ниже:Добавление текста в несколько JTextAreas на разных вкладках JTabbedPane динамически?
table.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 2) {
int row = table.getSelectedRow();
viewerPane.addTab((String) table.getValueAt(row, 0), null , new JPanel().add(new JTextArea()), (String) table.getValueAt(row, 0));
viewerPane.setSelectedIndex(viewerPane.getComponentCount()-1);
}
}
});
Это сработало. Спасибо, но у меня теперь есть другая проблема. Мне не удалось увидеть весь текст, который отображался, потому что он был слишком большим. Я попытался изменить 'новый JPanel(). Add (textArea)' на новый JScrollPane(). Add (textArea) ', но это все еще не устраняет проблему. – RPBruiser
Можете ли вы уточнить? Вы видите 'JScrollPanel'? Возможно, «LayoutManager» на вкладке не правильно определяет «Компонент» - нужно попробовать добавить JScrollPane в 'JPanel' и добавить' JPanel' в 'JTabbedPane' – copeg
Я даже не см. 'JScrollPane', и я уже попытался добавить его в' JPanel'. – RPBruiser