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

How To Add A Component And Bring It To Front On A JFrame In Java?

我正在制作一个 Java Class 构造函数将从其参数中获取 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 :(      
    }
}

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

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

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

您可以在尝试处理注释掉的代码时通过使用 ZOrder 来更改此设置。

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

我建议你可以:

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