我在主窗口中为我的主JPanel
设置了卡片布局管理器。
public class MainFrame extends JFrame{
JPanel contentPanel;
public MainFrame(){}
contentPanel = new JPanel();
contentPanel.setLayout(new CardLayout());
contentPanel.removeAll();
contentPanel.add(new ContentPanel1());
contentPanel.repaint();
contentPanel.revalidate()
}
现在我在ContentPanel1
课程中有一个按钮。点击它后,它会转到新的Panel(WorkPlace panel)
。我希望为这个面板(WorkPlace
)提供一个关键监听器,但它不起作用。
public class WorkPlace extends JPanel implements key{
public WorkPlace(){
this.setFocusable(true);
this.requestFocusInWindow();
}
@Override
public void keyTyped(KeyEvent e) {}
@Override
public void keyReleased(KeyEvent e) {}
@Override
public void keyPressed(KeyEvent e) {
System.out.println("Pressed " + e.getKeyChar());
}
}
点击ContentPanel1
中的按钮后,WorkPlace
面板出现在MainFrame
中,但其键盘记录器无效。这有什么不对?
请注意,我只带来这些类中的一些代码,每个类都在单独的文件中。