【问题标题】:JAVA JTAB multiple compomentsJAVA JTABLE 多组件
【发布时间】:2014-07-16 16:28:07
【问题描述】:

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

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

【问题讨论】:

    标签: java swing jpanel components jtabbedpane


    【解决方案1】:
    JPanel panel = new JPanel();
    

    这将创建一个 JPanel,它默认使用 FlowLayout

    new BorderLayout();
    

    此语句没有任何作用,因为您没有对 BorderLayout 的引用,因此您不能将其用作任何面板上的布局管理器。

    但是没有必要为您的面板使用 BorderLayout,因为 FlowLayout 可以一次显示多个组件。问题是文本窗格需要一个“首选大小”才能与布局管理器一起使用。

    对于一些简单的事情,为什么不从 JTextArea 开始,因为它更易于使用。您可以使用以下代码创建文本区域:

    JTextArea textArea = new JTextArea(5, 20);
    

    它将创建一个具有首选大小的文本区域,以显示 5 行文本,每行大约 20 个字符。

    然后您创建两个文本区域并将它们添加到您的面板中。

    当然,任何时候您使用文本区域都应该将其添加到 JScrollPane:

    JScrollPane scrollPane = new JScrollPane( textArea );
    panel.add( scrollPane );
    

    然后将 scrollPane 添加到面板中。

    【讨论】:

    • 我需要使用 JtextPane,因为我需要在其中使用多种颜色。
    • @ZinXanCraft,所以让您的代码首先使用文本区域,因为它易于使用。然后,一旦您了解了基础知识,您就可以使用 JTextField。唯一的区别是您现在负责确定文本窗格的首选大小,因为它不支持行/列概念。
    【解决方案2】:

    从外观上看,您只能看到一个 TextField,因为您没有正确使用 BorderLayout。

    编辑:您说您想更改背景颜色,您可以对 JTextField 和 JTextArea 执行此操作。检查文档!就一行代码。

    您应该像这样将 JPanel 的布局显式设置为 BorderLayout:

    JPanel panel = new JPanel(new BorderLayout());
    

    JPanel panel = new JPanel();
    panel.setLayout(new BorderLayout());
    

    更简单的是,您不需要使用 BorderLayout。

    默认情况下,JPanel 被分配一个 FlowLayout,它能够巧妙地处理多个 JComponent。尝试使用 JTextField 或 JTextArea 而不是 JTextPane。

    如果您因为某个布局目标而需要使用 JTextPane,请尝试我上面列出的代码示例。

    祝你好运。不要害怕参考官方 Oracle 文档/教程以了解 Swing 布局

    http://docs.oracle.com/javase/tutorial/uiswing/layout/visual.html

    【讨论】:

      猜你喜欢
      • 2014-08-07
      • 2014-01-23
      • 1970-01-01
      • 2015-09-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-14
      • 2020-09-29
      • 2015-09-11
      相关资源
      最近更新 更多