0

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

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

放置一个更好地描述问题的示例屏幕截图。在这里,蓝色文本窗格已落后于白色文本窗格。我想要它高于白色的texpane。我怎么做? 在此处输入图像描述

4

2 回答 2

2

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

于 2013-04-02T12:58:38.953 回答
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

于 2013-04-02T12:48:25.920 回答