java - 如何在 Java 中添加组件并将其置于 JFrame 的前面?

标签 java swing jtable components jform

我正在创建一个 Java 类,它的构造函数将从其参数中获取一个 JForm ,然后以编程方式在该表单上添加一个 JTable ,如下面的代码所示...

public class DEMOCLASS
{
private JTable myJTable = new JTable();
public DEMOCLASS(JFrame incomingForm)
    {  
        incomingForm.add(myJTable);
        myJTable.setSize(coloumWidth,rowHeight);
        myJTable.setLocation(xpos, ypos);
        myJTable.setVisible(true);  
        //incomingForm.setComponentZOrder(myJTable,0);    // Its Bringing The Component To From But Spreading It All Over The Form From Top To Bottom And Left To Right Fully :(      
    }
}

现在的主要问题是,在调用此类的地方,有许多组件已通过其他编码添加,我想将 myJTable 组件放在前面,但现在隐藏在它们后面。简而言之,我无法控制其他已经添加的组件。我还听说过 MyGlassPaneJLayeredPane 但无法让它们与我的概念一起工作。

所以我的主要问题是如何将此 myJTable 放在 incomingForm 上所有先前添加的组件的前面?

最佳答案

Swing 的默认绘制逻辑是先绘制最后添加到面板的组件。

您可以通过使用 ZOrder 来更改此设置,就像您尝试处理注释掉的代码一样。

然而,Swing 并不是真正设计为将组件绘制在彼此之上的。组件通常放置在 2D 区域中,而不是 3D 区域中。您这样做的原因尚不清楚。

我建议你可以:

  1. 使用子JDialog来显示表格及其数据(您可以使对话框未修饰以删除边框)。
  2. 也许可以使用GlassPane显示表格。

关于java - 如何在 Java 中添加组件并将其置于 JFrame 的前面?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41445392/

相关文章:

java - 在 groovy/java 中使用 Jira Rest Java 客户端 (JRJC) 更新问题

java - 将 KeyListener 添加到 JToolTip

Java GUI 仅接受某些名称

java - 如何从 ResultSet 填充 JTable?

java - 存在哪些 Java 表组件?

java - 为什么 Java BufferedReader() 不能正确读取阿拉伯语和中文字符?

java - JProgressBar查询

java:将对象添加到对象的ArrayList中;出现错误

java - 在 Java 中从 TableModel 中删除列

java - JTable 中未选中的复选框会给出 NullPointerException