我乞求JAVA Swing。但是当我使用我的JPanel时,我只能添加一个JTextPane。我怎么能这样做我可以添加多个。
这就是我的工作
JPanel panel = new JPanel();
JTP = new JTextPane();
JTP.setBackground(Color.black);
JTP.setForeground(Color.WHITE);
Lines = new JTextPane();
new BorderLayout();
panel.add(JTP, BorderLayout.WEST);
new BorderLayout();
panel.add(Lines, BorderLayout.EAST);
并且没有错误。我知道我没有给你所有的代码,但它的工作。
答案 0 :(得分:1)
JPanel panel = new JPanel();
这会创建一个默认情况下使用FlowLayout
的JPanel。
new BorderLayout();
此声明不执行任何操作,因为您没有对BorderLayout的引用,因此您无法在任何面板上将其用作布局管理器。
但是没有必要为您的面板使用BorderLayout,因为FlowLayout可以一次显示多个组件。问题是文本窗格需要一个"首选大小"在它可以与布局管理器一起使用之前。
对于简单的事情,为什么不开始使用JTextArea,因为它更易于使用。您可以使用以下代码创建文本区域:
JTextArea textArea = new JTextArea(5, 20);
它将创建一个首选大小的文本区域,以显示5行文本,每行约20个字符。
然后创建两个文本区域并将其添加到面板中。
当然,无论何时使用文本区域,您都应该将其添加到JScrollPane:
JScrollPane scrollPane = new JScrollPane( textArea );
panel.add( scrollPane );
然后将scrollPane添加到面板。
答案 1 :(得分:0)
从它的外观来看,你只看到一个TextField,因为你没有正确使用BorderLayout。
编辑:你说你想要改变背景颜色,你可以这样做到JTextField和JTextArea。检查文档!这是一行代码。
您应该将JPanel的布局显式设置为BorderLayout,如下所示:
JPanel panel = new JPanel(new BorderLayout());
OR
JPanel panel = new JPanel();
panel.setLayout(new BorderLayout());
更简单,您不需要使用BorderLayout。
默认情况下,JPanel被分配了一个FlowLayout,它能够巧妙地处理多个JComponent。尝试使用JTextField或JTextArea而不是JTextPane。
如果由于某个布局目标需要使用JTextPane,请尝试上面列出的代码示例。
祝你好运。不要害怕参考Swing Layouts的官方Oracle文档/教程http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html