2013-12-21 77 views
2

我想用i.add(jp, BorderLayout.EAST);設置我的JPanel的位置,但它不起作用。任何想法爲什麼?我在這裏先向您的幫助表示感謝。JPanel使用邊框佈局不工作的定位

/* INSTANCE DECLARATIONS */ 
private JTextField tf;//text field instance variable 
private JLabel jl2;//label instance variable 


/***************** 
* WINDOW METHOD * 
* ***************/ 
public void window() { 

    LoadImageApp i = new LoadImageApp();//calling image class 

    JFrame gameFrame = new JFrame();//declaration 
    JPanel jp = new JPanel(); 
    JLabel jl = new JLabel("Enter a Letter:");//prompt with label 

    tf = new JTextField(1);//length of text field by character 
    jl2 = new JLabel("Letters Used: "); 

    jp.add(jl);//add label to panel 
    jp.add(tf);//add text field to panel 
    jp.add(jl2);//add letters used 

    gameFrame.add(i); //adds background image to window 
    i.add(jp, BorderLayout.EAST); // adds panel containing label to background image panel 

    gameFrame.setTitle("Hangman");//title of frame window 
    gameFrame.setSize(850, 600);//sets size of frame 
    gameFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);//exit when 'x' button pressed 
    gameFrame.setIconImage(new ImageIcon("Hangman-Game-grey.png").getImage());//set the frame icon to an image loaded from a file 
    gameFrame.setLocationRelativeTo(null);//window centered 
    gameFrame.setResizable(false);//user can not resize window 
    gameFrame.setVisible(true);//display frame 


}//end window method 

回答

5

i,你LoadImageApp例如,使用什麼樣的佈局管理器?我打賭這不是BorderLayout。我敢打賭,LoadImageApp類延伸JPanel,如果是這樣,如果你從來沒有明確地設置它的佈局,那麼默認情況下它使用FlowLayout,並且當你發現,FlowLayout不尊重BorderLayout.EAST int常量。

的解決方案是可能很簡單:讓使用BorderLayout

setLayout(new BorderLayout()); 

編輯
幽州的評論:

當我設置的邊界佈局我到東部,我的背景圖像也轉移到右邊,有沒有辦法解決這個問題?

不,你錯過了這一點。您需要將LoadImageApp的佈局設置爲BorderLayout。你不應該添加我BorderLayout.EAST。這從未被推薦給你。

public class LoadImageApp extends JPanel { 

    // in the constructor 
    public LoadImageApp() { 
    setLayout(new BorderLayout()); 
    } 

    // .... etc.... 
} 

的LoadImageApp實例(我會說出loadImageApp,不i),應補充BorderLayout.CENTER,你做之前。請閱讀佈局管理器教程,您可以找到here

+0

當我將我的邊界佈局設置爲EAST時,我的背景圖像也向右移動,是否有辦法解決這個問題? – Anon

+0

@Anon:請參閱編輯。 –