2016-02-26 61 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