如何确定添加到JPanel的组件的顺序

时间:2013-04-02 12:43:57

标签: java swing jpanel jtextpane

我有一个名为MainPanel的空布局JPanel。单击按钮我在mainPanel上添加JTextpane。在第一次单击时,我正在创建一个背景颜色为白色的文本窗格。在第二次点击时,我正在创建另一个蓝色的文本窗格。我想要的是将蓝色文本窗格放在白色文本窗格上,但蓝色文本窗格位于白色文本窗格后面。如何将其放在白色窗格上?

这里的代码非常简单。 Onclick我正在创建一个新的JTextpane,为它设置尺寸并将其放在主面板上。

放置一个更好地描述问题的示例屏幕截图。在这里,蓝色文本框已经落后于白色文本框。我希望它在白色texpane之上。我怎么做? enter image description here

2 个答案:

答案 0 :(得分:2)

如果您想坚持使用当前的组件,(我认为您应该使用kellax的解决方案,但我不知道是否有额外的要求迫使您使用当前的方法)可以查看Container.setComponentZOrder(Component comp,int index)来直接确定组件的显示顺序。

答案 1 :(得分:1)

您必须将JPanel "MainPanel"替换为LayeredPanel

然后你可以说:

JLayeredPane mainPanel = new JLayeredPane();

JTextPane whitePane = new JTextPane("White text pane on top");
JTextPane bluePane  = new JTextPane("Blue text pane behind");

mainPanel.add(whitePane, 2, 0);
mainPanel.add(bluePane, 1, 0);

编辑: 您可以在此处详细了解LayeredPane:LayeredPane