如何在Java中添加组件并将其放在JFrame的前面



我正在制作一个 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来显示表格。

相关内容

  • 没有找到相关文章

最新更新