2016-12-19 9 views
0

終了ボタンは、画面全体を何が問題にしていますか?終了ボタンは、画面全体をカバーします。

境界は、Exitがx-280、y-385、width-70、height-20になるように設定します。

The Image of the button covering the whole Frame

注フレーム全体をカバーするボタンの画像:私は私のラップトップで同じコードを試してみましたが、それはcomepletely正常に動作しますが、私は私の学校のコンピュータでそれを実行したとき、それはすべての演技を開始奇妙な!

import java.awt.event.ActionEvent; 
    import java.awt.event.ActionListener; 
    import java.awt.*; 
    import javax.swing.*; 

@SuppressWarnings({ "unused", "serial" }) 
public class FinalBlowzXC extends JFrame{ 

    public JLabel bgmainmenu; 
    public JButton start; 
    public JButton exit; 
    public static JPanel mainmenu; 
    public static JPanel login; 

    public static void main(String []args) 
    { 
     new FinalBlowzXC().setVisible(true); 
    } 

    public FinalBlowzXC() 
    { 
     super("Final Blowz Xchanged"); 
     setSize(640,480); 
     setResizable(false); 
     setDefaultCloseOperation(EXIT_ON_CLOSE); 

     bgmainmenu = new JLabel(); 
     start = new JButton(); 
     exit = new JButton(); 

     mainmenu=new JPanel(); 

     bgmainmenu.setIcon(new ImageIcon(getClass().getResource("/FF-XV.jpg"))); 
     bgmainmenu.setBounds(0,0,640,480); 
     add(bgmainmenu); 
     add(start); 
     start.setBounds(280, 360, 70, 20); 
     start.setBorder(null); 
     start.setBorderPainted(false); 
     start.setContentAreaFilled(false); 
     start.setOpaque(false); 
     start.addActionListener(new Start()); 
     exit.setBounds(280, 385, 70, 20); 
     add(exit); 
     exit.setBorder(null); 
     exit.setBorderPainted(false); 
     exit.setContentAreaFilled(false); 
     exit.setOpaque(false); 
     exit.addActionListener(new ActionListener() { 
      public void actionPerformed(ActionEvent e) 
      { 
       System.exit(0); 
      } 
     });  

    } 

    } 

答えて

3

フレームのコンテンツペインのデフォルトのレイアウトマネージャはBorderLayoutあります。 BorderLayoutにコンポーネントを追加し、制約を指定しない場合、コンポーネントはCENTERに移動します。追加された最後のコンポーネントのみがCENTERに表示されます。

複数のボタンを表示する場合は、枠をパネルにネストする必要があります。ような何か:

JPanel buttonPanel = new JPanel(); 
buttonPanel.add(start); 
buttonPanel.add(exit); 
add(buttonPanel, BorderLayout.PAGE_START); 

はどのようBorderLayout作品の詳細および例についてUsing Layout Managers上のSwingのチュートリアルからのセクションをお読みください。

1

add(Component comp)で何かを追加すると、JFrameのコンテンツペインにはデフォルトのレイアウトマネージャーとしてBorderLayoutがあり、中央に追加され、全体のスペースを占有します。

コンテナのレイアウトがnull(setLayout(null))の場合を除き、境界を設定することはできません。

nullレイアウトの場合、境界が考慮されますが、ニーズに合った実際のレイアウトマネージャを選択することをお勧めします。

ここをクリック。A Visual Guide to Layout Managers

関連する問題