Java JLayeredPane从“隐藏”面板显示对象
我对Java Swing有一个问题,特别是对JLayeredPane。 我有一个Deck manager,它在一个JLayeredPane中包含4个JPanel,但当我向一个窗格添加一个对象,然后切换到另一个窗格时,这些对象开始会不可见,但当我打开鼠标通过时,即使我在另一个面板上,它也会返回可见,代码如下:Java JLayeredPane从“隐藏”面板显示对象,java,swing,jlayeredpane,Java,Swing,Jlayeredpane,我对Java Swing有一个问题,特别是对JLayeredPane。 我有一个Deck manager,它在一个JLayeredPane中包含4个JPanel,但当我向一个窗格添加一个对象,然后切换到另一个窗格时,这些对象开始会不可见,但当我打开鼠标通过时,即使我在另一个面板上,它也会返回可见,代码如下: deckSelector = new JLayeredPane();
deckSelector = new JLayeredPane();
Point origin = new Point(30, 0);
for (int i = 0; i < types.length; i++) {
Deck deck = new Deck(types[i], colors[i], origin);
deckSelector.add(deck, i);
decks[i] = deck;
}
我有一个牌组管理器,它是主要的JLayerdPane,它有4个叠加的牌组,我可以在其中添加牌,但是当我从一个牌组切换到另一个牌组时,牌仍然可见。有人能帮我吗
但是当我带着鼠标走过的时候
将为组件生成鼠标悬停事件。在JButton的情况下,边框被更改,因此组件需要重新绘制自身。这就是为什么组件变得可见的原因
使用JLayeredPane的目的是同时查看所有层。它只是一些组件将堆叠在其他组件之上
如果一次只想看到一个面板,那么应该使用。然后,您可以在任何给定时间交换可见的面板
如果您认为确实需要使用JLayeredPane,请尝试在您不想看到的面板上使用setVisiblefalse。这将防止事件传递到该层面板上的组件。感谢您的帮助,我想使用JLayeredPane bc,我想在离面板本身很远的按钮的面板之间交换,而卡片布局将按钮连接到面板上,否则我会使用它。我将尝试使用setVisiblefalse@GabLog,并且卡片布局的按钮会附着在窗格上-不,不是这样,你不是这样设计的。您显然没有阅读教程或下载代码并测试示例代码。@GabLog,我只是陈述了一个事实。您说过,卡片布局的按钮附在窗格上。这完全不是真的,所以我纠正了你的说法,并告诉你阅读有关CardLayout的教程。我完全不知道标签窗格是从哪里进入对话的。我在回答中从来没有提到过。我不是一个读心术的人。我不知道你打算说什么,我只能根据你的实际陈述来评论。根据你的陈述,你不理解卡片布局是如何工作的。所以我花了额外的时间来澄清这个问题。这就是所谓的帮助@别忘了点击答案旁边的复选标记接受答案,这样人们就知道问题已经解决了。
int j = 0;
boolean found = false;
for(int i=0; i<types.length; i++){
if(selectors[i].isSelected()){
deckSelector.setLayer(decks[i], 3);
found = true;
j=2;
} else
if(!selectors[i].isSelected()){
deckSelector.setLayer(decks[i], j);
if(found) j--;
else j++;
};
}
Card btnNewButton = new Card("Name Card");
add(btnNewButton);