2016-02-26 58 views
0

以下代碼創建JDialogBoxLayout如何將按鈕移動到中心?

public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Border border1 = BorderFactory.createLineBorder(Color.GREEN, 5); 

JDialog j7=new JDialog(); 
JPanel j8=new JPanel(); 
JButton j10=new JButton("OK"); 
BoxLayout c1=new BoxLayout(j8,1); 
j8.setLayout(c1); 
j8.setBorder(border1); 
JLabel j9=new JLabel("Yeeks!!Game was about to crash.We managed it.Numbers Only!"); 
j9.setFont(new Font("Serif", Font.BOLD, 25)); 
j8.add(j9); 
j8.add(j10,1); 
j7.add(j8); 
Dimension d=new Dimension(710,200); 
j7.setSize(d); 
j7.setTitle("Humans"); 
j7.setEnabled(true); 


j7.setVisible(true); 

j7.setLocation(400, 200); 

} 

如何居中JButton

還有一個問題是,當我改變JDialog的大小時,組件不會調整大小。

回答

2

在框架/對話框上居中組件的最簡單方法是使用GridBagLayout。

JPanel panel = new JPanel(new GridBagLayout()); 
panel.add(new JButton("Centered"), new GridBagConstraints()); 
frame.add(panel, BorderLayout.CENTER); 

如果你想使用BoxLayout,那麼你需要在第一個組件之前和最後一個之後添加「glue」。請閱讀有關How to Use BoxLayout的Swing教程以瞭解更多信息。

+0

「BoxLayout」不可能嗎? –

+0

以及爲什麼JDialog調整大小時組件不能調整大小? –

+0

查看更新。我不知道你期望在調整大小時會發生什麼。 BoxLayout尊重組件的最大尺寸。 – camickr