0

JMenuBar と JPanel を JFrame に追加する際に問題が発生しています。これが私のメイン メソッドです。

public static Timer timer = new Timer(100, ActionListener.repaint);


public static void main(String[] args) {
    Insets in;
    frame.setSize(600, 500);
    frame.pack();
    in = frame.getInsets();
    frame.setSize(600 + (in.left + in.right) - 10, 500 + (in.top + in.bottom) - 10);
    frame.setResizable(false);

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setLocationRelativeTo(null);
    add.addActionListener(new ActionListener());
    frame.setJMenuBar(menuBar);


    menuBar.add(file);
    file.add(add);
    file.add(sub);

    frame.add(gui);
    timer.start();

    frame.setVisible(true);
}

フィールド「gui」は私のJPanelクラスです:

@Override
public void paintComponent(Graphics g) {


}

これが私の再描画タイマーです:

public static java.awt.event.ActionListener repaint = new java.awt.event.ActionListener() {

    @Override
    public void actionPerformed(ActionEvent e) {
        GUI.gui.repaint();
    }
};

出力は次のとおりです。

私のJMenuBarが複製されていることがわかります

JMenuBar がどのように複製されたかがわかりますか? その JPanel にペイントされたすべてのものに対してそれを行います。解決策はありますか?

4

1 に答える 1