所以我想有2个JPanels。向上JPanel(内嵌面板)和向下JPanel(主面板)。我想在JFrame中添加keyListener,所以当我按下任何键时,面板隐藏,这样我们就可以看到向下的面板。代码应该如何工作?
class MainFrame extends JFrame {
private MainPanel mainPanel = new MainPanel();
private IntroPanel introPanel = new IntroPanel();
MainFrame() {
add(mainPanel);
add(introPanel);
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
addKeyListener(new KeyAdapter() {
@Override
public void keyReleased(KeyEvent ev) {
introPanel.setVisible(false);
}
});
pack();
setVisible(true);
}
}
此代码不隐藏内部面板。发生了什么?
您只能将一个组件放置在BorderLayout. CENTER
位置中,因此添加时,intPanel
将替换main Panel
。如果希望显示main Panel
,则必须添加它:
add(mainPanel);
revalidate();
repaint();
考虑使用CardLayout。它支持以这种方式“堆叠”组件的概念。
与KeyListeners
不同,Key Bindings不需要焦点来与KeyEvents
交互。
我有一个重新组合一些JPanel的主框架。我的JFrame已经完全填满了。 我希望能够在左侧JFrame中的另一个JPanel上显示/隐藏一个小JPanel。此JPanel是用户的配置区域。 所以这里是我的问题,在我的JFrame中,在一个小区域中显示JPanel的最好方式是什么? 我试过了,但没有按预期工作(这是单击设置图标时执行的代码): 谢谢
在我的Swing应用程序中,我有2个JFrameA和B。当我单击JFrameA上的按钮时,它会打开JFrameB并隐藏它自己(我设法完成了这部分) 在JFrame B上,我在JTabbedPane上放置了4个JPanels。每个JPanel有2个JButtons。 我该怎么做? //JPanel类 公共类AddItemPanel扩展javax.swing.jPanel{
我想在一个JFrame中用另一个Jpanel替换一个Jpanel,我已经搜索并尝试了我的代码,但什么也没有发生,这是我的代码: 有人能帮帮我吗?多谢
问题内容: 不幸的是,我必须在该程序中使用多个窗口,而且我认为CardLayout不能正常工作,因为在不同布局之间我无法保持任何按钮不变。因此,我尝试编写一个按钮以隐藏当前的JPanel(thePanel)并显示一个新的JPanel(thePlacebo)。 我试图在这样的ActionListener中隐藏thePanel: 我以为这可以用,但是只要按一下按钮,它就会冻结程序。 这是上下文代码的一
问题内容: 将包含图形的添加到时,效果很好。但是,当我尝试添加 其中添加了其他图形的时,它不会显示在中。请参见下面的代码 问题答案: 请注意类的构造函数,使其成为您的习惯,以遵循本示例中所示的顺序。首先向中添加组件,然后再进行调用,例如 ,而不是在此之前。 始终把它当作习惯,每当您覆盖方法时,也要覆盖方法。 并始终像在EDT- 事件调度线程中那样发出呼叫。请阅读Swing中的Concurrency
一个jFrame:HomeView、一个jPanel:TopicListView、另一个jPanel:ReplyListView。 在HomeView中,我有一个菜单项,可以单击它来显示TopicListView。在TopicListView中,我希望有一个可以单击以显示ReplyListView的按钮。单击按钮时,它将调用openReplyListView()方法。该方法将创建一个新的JPane