JAVA JTABLE多个组件

时间:2014-05-27 16:50:27

标签: java swing jpanel components jtabbedpane

我乞求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);

并且没有错误。我知道我没有给你所有的代码,但它的工作。

2 个答案:

答案 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