2017-07-30 15 views
1

私は2つのボタン、「再開」、「メインメニューに戻る」というメニューを用意しています。問題は、JPanelが何の問題もなく表示されていることですが、JButtonは追加されていますが、そこには存在しません。コードの次の部分は、メニューのグラフィカルな側面の処理です。JButtonがJPanelに表示されない

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); 

    } 
+0

ボタンの位置で再生しようとしましたか? –

+0

はい、私はxとyの両方に負の値を入れようとしましたが、何も起こりそうにありません:/ –

+1

1)助けを早くするために[MCVE]または[短く、自己完結型の正しい例](http:// www .sscce.org /)。 2) 'exit.setFont(新しいフォント(" Sans-serif "、Font.BOLD、18));'定数を使用する方が良い。 3) 'menu.setLayout(null);' ** Java GUIは異なるOSで動作しなければならず、画面のサイズは変更されません。 'exit.setFont(new Font(Font.SANS_SERIF、Font.BOLD、18));' –

答えて

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); 
関連する問題