0

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

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

4

1 回答 1

1

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

您可以通过使用 ZOrder 来更改这一点,就像您尝试使用注释掉的代码一样。

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

我建议你可以:

  1. 使用子JDialog显示表格及其数据(您可以使对话框不装饰以删除边框)。
  2. 也许使用GlassPane来显示表格。
于 2017-01-03T15:17:20.270 回答