2013-05-19 94 views
0

所以,我有以下畫面:組織JPanels和佈局

Screen

這是我的代碼:

setLayout(new BorderLayout()); 

JLabel lblTitulo = new JLabel("Sistema Generador de Examenes");  
lblTitulo.setFont(new Font("Tahoma", Font.BOLD, 18)); 

JPanel panel1 = new JPanel(); 
panel1.setBackground(Color.white); 
panel1.add(lblTitulo); 
add(panel1, BorderLayout.NORTH); 

JButton btnCrear = new JButton("Crear Examen"); 
JButton btnRendir = new JButton("Rendir Examen"); 
JButton btnCorregir = new JButton("Corregir Examen"); 
JButton btnVerCorrecciones = new JButton("Ver Correcciones"); 

btnCrear.setBounds(15, 100, 450, 35); 
btnRendir.setBounds(15, 150, 450, 35); 
btnCorregir.setBounds(15, 200, 450, 35); 
btnVerCorrecciones.setBounds(15, 250, 450, 35); 

JPanel panel2 = new JPanel(); 
panel2.setBackground(Color.white); 
panel2.setLayout(null); 
panel2.add(btnCrear); 
panel2.add(btnRendir); 
panel2.add(btnCorregir); 
panel2.add(btnVerCorrecciones); 

add(panel2, BorderLayout.CENTER); 

1 - 我使用的是BorderLayout的。如果我想讓北部的JLabel和中心的JButton組合,我是否需要2個JPanel來分隔組件(JLabel和JButtons)?或者有什麼辦法只使用一個JPanel?

2 - 我想取出在我的JButtons中使用的setBounds,並使用一些Layout來讓我的JButton在屏幕中間那樣。我怎麼能這樣做?

+1

嵌套JPanels,每個使用自己的佈局,你可以很容易地實現這一點。佈局管理器教程將告訴你每個佈局可以做什麼。我的錢,我儘量避免使用GridBagLayout或GroupLayout,而是嵌套幾個更簡單和更易於使用的佈局。 –

回答

1

我正在使用BorderLayout。如果我想讓北部的JLabel和中心的JButton組合,我是否需要2個JPanel來分隔組件(JLabel和JButtons)?或者有什麼辦法只使用一個JPanel?

是的,你可以使用一個JPanel和一個GridBagLayout與單個列和一些Insets來從標籤中間隔按鈕。

但是,無論您如何調整JFrame的大小,嵌套佈局都會將按鈕保持在中心位置。

我想取出在我的JButtons中使用的setBounds,並使用一些Layout來讓我的JButton在屏幕中間那樣。我怎麼能這樣做?

GridBagLayout將用insets隔開按鈕。

查看本文中的Sudoku Solver Swing GUI,瞭解使用GridbagLayout的幾個對話示例。