我有一个JTextArea,位于JScrollPane内部,而JScrollPane又位于JPanel内部,并且位于JTabbedPane的Tab内。JTextArea不会显示在JTabbedPane内部的JPanel
我知道文本被添加到我的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 2013-04-26 04:01:12
我认为这是简洁的。我可以粘贴整个JTabbedPane代码,但其他选项卡中的内容并不是真正的问题,并且会在此处引起混乱。据我所知,所有与JTextArea相关的代码都已发布。 :( – Ciwan 2013-04-26 04:02:44
我们没有要求提供整个标签窗格代码,我们要求提供[SSCCE](http://sscce.org/),另外,请勿使用setBounds(),请使用合适的布局管理器 – camickr 2013-04-26 04:04:21