У меня есть JTextArea, который находится внутри JScrollPane, который, в свою очередь, находится внутри JPanel и, в свою очередь, находится внутри Tab JTabbedPane.JTextArea не отображается на JPanel внутри JTabbedPane
Я знаю, что текст добавляется в мой JTextArea, но когда я перемещаюсь между вкладками, JTextArea не отображается. Чтобы прочитать текст, мне нужно выбрать текст внутри JTextArea, а затем отобразить белый цвет фона JTextArea. Если я не выбираю, я ничего не вижу.
Я пробовал обычные revalidate();
и repaint()
, но они не работают для меня. Вот некоторые из кода в вопросе:
public void writeLogEntry(Alarm alarm)
{
String value = "Blah Blah Blah";
logTextArea.append(value);
SwingUtilities.getWindowAncestor(contentPane).revalidate();
repaint();
revalidate();
setVisible(true);
}
А вот код для элементов, связанных с JTextArea:
JPanel logPnl = new JPanel();
logPnl.setLayout(new BorderLayout(10, 10));
JScrollPane logScrollPane = new JScrollPane();
logScrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS);
logTextArea = new JTextArea("blah blah");
logTextArea.setBounds(10, 10, 550, 300);
logTextArea.setEditable(false);
logScrollPane.add(logTextArea);
logPnl.add(logScrollPane);
contentTabs.addTab("Alarms Log", null, logPnl, "View Log");
contentPane.add(contentTabs);
Что я делаю неправильно?
пожалуйста, напишите полный и краткий полностью рабочий пример кода, который производит эту проблему вы описали. – KyleM
Я думал, что это лаконично. Я могу вставить весь код JTabbedPane, но то, что находится внутри других вкладок, на самом деле не проблема, и здесь может возникнуть беспорядок. Насколько мне известно, весь код, связанный с JTextArea, опубликован. :( – Ciwan
Мы не запрашивали весь код панели с вкладками. Мы попросили [SSCCE] (http://sscce.org/). Также не используйте setBounds(). Используйте правильный менеджер макетов. – camickr