如何添加组件并将其置于 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
组件放在前面,现在隐藏在后面他们。简而言之,我无法控制别人已经添加的组件。我也听说过 MyGlassPane
和 JLayeredPane
,但不能让它们与我的概念一起工作。
所以我的主要问题是如何将这个 myJTable
放在 incomingForm
上所有先前添加的组件的前面?
Swing默认的绘制逻辑是先绘制最后添加到面板的组件。
您可以在尝试处理注释掉的代码时通过使用 ZOrder 来更改此设置。
然而,Swing 并不是真正设计用于将组件绘制在彼此之上的。组件通常定位在 2D 区域,而不是 3D。您这样做的原因尚不清楚。
我建议你可以:
- 使用子
JDialog
来显示 table 及其数据(您可以使对话框未装饰以删除边框)。
- 也许使用 GlassPane 来显示 table。
我正在制作一个 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
组件放在前面,现在隐藏在后面他们。简而言之,我无法控制别人已经添加的组件。我也听说过 MyGlassPane
和 JLayeredPane
,但不能让它们与我的概念一起工作。
所以我的主要问题是如何将这个 myJTable
放在 incomingForm
上所有先前添加的组件的前面?
Swing默认的绘制逻辑是先绘制最后添加到面板的组件。
您可以在尝试处理注释掉的代码时通过使用 ZOrder 来更改此设置。
然而,Swing 并不是真正设计用于将组件绘制在彼此之上的。组件通常定位在 2D 区域,而不是 3D。您这样做的原因尚不清楚。
我建议你可以:
- 使用子
JDialog
来显示 table 及其数据(您可以使对话框未装饰以删除边框)。 - 也许使用 GlassPane 来显示 table。