我正在尝试将一个文本区域添加到具有流程布局的Panel中,但它没有显示在我的GUI上......任何想法都会显示?
private void makeTypes() {
westPanel.setVisible(false);
centerPanel.setVisible(false);
northPanel.setVisible(false);
contentPane.add(westPanel, BorderLayout.WEST);
contentPane.add(centerPanel, BorderLayout.CENTER);
contentPane.add(northPanel, BorderLayout.NORTH);
// set panel layout and add components
centerPanel.setLayout(new FlowLayout());
northPanel.setLayout(new GridLayout(4, 1));
/**
* Adding East Panel
*/
eastPanel.setLayout(new GridLayout(4,1));
/**
* Adding text area to Centre Panel
*/
a1=new JTextArea();
centerPanel.add(a1);
a1.setVisible(true);
}
答案 0 :(得分:1)
centerPanel是不可见的:
centerPanel.setVisible(false);
所以没有添加任何东西会显示出来。
我看到你在JTextArea上调用了setVisible(true)
,但如果它被添加到一个不可见的容器中,这将无效,因为它也是不可见的。其他建议:为您的JTextArea提供正确的行和列属性值,这可以通过其构造函数来完成,该构造函数需要两个整数(对于行和列)。并将JTextArea包装在JScrollPane中,并将那个添加到GUI。如果在程序运行期间而不是在启动时调用此代码,则在添加和删除组件后,请在容器上调用revalidate()
和repaint()
。
要获得更多更好的帮助,请考虑创建并发布有效的SSCCE。