gpt4 book ai didi

java - 将 JPanel 添加到 JMenuItem

转载 作者:行者123 更新时间:2023-12-01 12:00:36 24 4
gpt4 key购买 nike

我已将按钮和文本字段添加到面板,但是当我尝试将面板添加到MenuItem时,什么也没有发生。我已经为要在其中添加 JPanelMenuItem 定义了一个 ActionListener。编译器没有检测到错误,但当我单击 MenuItem 时没有任何反应。我该如何解决这个问题?

public class MenuFrame extends JFrame {
private JMenu customers;
private JMenu purchase;
private JPanel panel1 = new JPanel();

public MenuFrame() {
JButton button = new JButton();
panel1.add(button);
customers = new JMenu("Customers");

JMenuItem createInvoice = new JMenuItem("Create");
JMenuItem updateInvoice = new JMenuItem("Update");
JMenuItem deleteInvoice = new JMenuItem("Delete");

sales.add(createInvoice);
PanelHandler p = new PanelHandler(panel1);
createInvoice.addActionListener(p);
}

private class PanelHandler implements ActionListener {
private JPanel panel;

public PanelHandler(JPanel p) {
this.panel = p;
}

public void actionPerformed(ActionEvent e) {
// getContentPane().removeAll();
// getContentPane().setVisible(true);
// JButton b=new JButton("Enter");
// panel.add(b);
panel.setVisible(true);
add(panel, BorderLayout.SOUTH);
getContentPane().doLayout();
// update(getGraphics());
}
}
}

最佳答案

不要直接调用 doLayout()。

当从可见的 GUI 添加(或删除)组件时,基本代码是:

panel.add(...);
panel.realidate(); // to invoke the layout manager
panel.repaint(); to repaint components

关于java - 将 JPanel 添加到 JMenuItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28004190/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com