JButtons没有出现在JPanel上

时间:2017-07-30 15:13:09

标签: java swing jpanel jbutton

我正在制作一个菜单,应该会出现2个按钮,“恢复”和“退出到主菜单”。问题是JPanel显示没有任何问题,但JButton不存在,即使我已添加它们。以下部分代码是处理菜单的图形方面。

if(secMenuFlag){
        JPanel menu = new JPanel();
        JButton resume = new JButton("Resume"), exit = new JButton("Exit to Main Menu");
        menu.setLayout(null);

        menu.setLocation((frame.getWidth() - menuSize[0]) / 2, (frame.getHeight() - menuSize[1]) / 2);
        menu.setSize(menuSize[0], menuSize[1]);
        menu.setBackground(new Color(0, 0, 0));

        resume.addActionListener(this);
        resume.setFont(new Font("Sans-serif", Font.BOLD, 18));
        resume.setBackground(Color.white);
        resume.setLocation(100, 100);

        exit.addActionListener(this);
        exit.setFont(new Font("Sans-serif", Font.BOLD, 18));
        exit.setBackground(Color.white);
        exit.setLocation(200, 100);

        menu.add(resume);
        menu.add(exit);
        super.add(menu, 0);

    }

1 个答案:

答案 0 :(得分:2)

设置按钮的界限。我已经为简历做了,请按照相同的程序退出。

    JPanel menu = new JPanel();
    JButton resume = new JButton("Resume"), exit = new JButton("Exit to Main Menu");
    menu.setLayout(null);

    JFrame frame;
    frame = new JFrame("check");
    frame.setLayout(null);
    frame.setSize(300, 300);
    int[] menuSize = new int[2];
    menuSize[0] = 200;
    menuSize[1] = 300;

    menu.setLocation((frame.getWidth() - menuSize[0]) / 2, (frame.getHeight() - menuSize[1]) / 2);
    menu.setSize(menuSize[0], menuSize[1]);
    menu.setBackground(new Color(255, 255, 255));

    // resume.addActionListener((ActionListener) this);
    resume.setBounds(20, 20, 100, 100);
    resume.setFont(new Font("Sans-serif", Font.BOLD, 18));
    resume.setBackground(Color.BLACK);
    resume.setLocation(100, 100);

    resume.setVisible(true);

    // exit.addActionListener((ActionListener) this);
    exit.setFont(new Font("Sans-serif", Font.BOLD, 18));
    exit.setBackground(Color.BLACK);
    exit.setLocation(200, 100);
    exit.setVisible(true);

    menu.add(resume);
    menu.add(exit);
    frame.add(menu);
    frame.setVisible(true);