【问题标题】:Making Table With List Of JPanels使用 JPanel 列表制作表格
【发布时间】:2019-01-18 17:44:13
【问题描述】:

我需要一个 Java 应用程序中的表。首先,我使用 JTable 类的对象,但我的表有很多功能,现在我尝试使用 JPanel 组件列表而不是表。

如何制作包含面板列表的表格?

【问题讨论】:

  • 请添加信息:此列表包含什么?它应该是什么样子?此外,您可能需要tour 并查看How do I ask a good question?
  • 查看 How to Use Tables 上的 Swing 教程。您将每条数据显示在表格的单独列中,而不是在 JPanel 上。
  • 每个 jPanel 都包含我 table 的一行。和 list 将表格的行放在一起。 @c0der
  • JTable 速度慢,用于简单的工作。但我需要一种特殊类型的表格,一种制作表格的方法是 jPanel 列表,每个面板都包含我的表格的一行。 @camickr
  • JTable 不是低速的。它比创建具有多个组件的多个面板更快、更有效。它更简单,因为您也不需要创建自己的自定义组件。无论如何,对于“简单”的工作,您永远不会注意到使用 JTable 和具有多个子面板的面板之间的区别。

标签: java swing jtable jpanel


【解决方案1】:

如果您需要创建一个由包含 JTextAreaJPanels 组成的表,请从以下内容开始:

JPanel table = new JPanel();
table.setLayout(new BoxLayout(table, BoxLayout.X_AXIS));
for (int rowIndex = 0; rowIndex < numberOfRows; rowIndex++) {
    table.add(getRow(numberOfColumns));
} 

getRow

定义
private Component getRow(int numberOfColumns) {

    JPanel row = new JPanel();
    //use GridLayout if you want equally spaced columns 
    row.setLayout(new BoxLayout(row, BoxLayout.Y_AXIS));
    for (int colIndex = 0; colIndex < numberOfColumns; colIndex++) {
        row.add(getCell());
    }
    return row;
}

getCell

private Component getCell() {
    JTextArea ta = new JTextArea("Add text");
    ta.setBorder(BorderFactory.createLineBorder(Color.BLACK));
    return ta;
}

但是,推荐的方法是使用JTable 并尝试解决您在之前的post 中描述的问题。

【讨论】:

  • “但是,推荐的方法是使用 JTable 并尝试解决您在上一篇文章中描述的问题。”我之前的帖子改成了stackoverflow.com/questions/51806517/…
  • 谢谢。但它有一个小问题,很容易解决的是桌子的方向。 @c0der
  • "表格方向" ?什么意思?
  • 很抱歉打扰您@c0der,但我需要您的帮助。请加入几分钟:discord.gg/ehGJ27
  • 我可以试试。发布一个新问题(mcve!)并在此处发布一个链接作为评论
猜你喜欢
  • 2019-01-23
  • 2021-12-05
  • 2015-11-08
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 2022-12-09
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多