2012-01-14 76 views
7

cách tôi có thể thêm khoảng trắng giữa JFrame và chèn JPanel vào JFrame này? Tôi sẽ chèn không gian theo cách các phần tử bên trong JPanel không xuất hiện quá gần tại JFramethêm khoảng cách giữa JFrame và JPanel

Trả lời

11

Đặt đường viền của JPanel với EmptyBorder với các tham số thích hợp.

tức,

// caveat: code not tested 
myPanel.setBorder(BorderFactory.createEmptyBorder(10, 10, 10, 10)); 

Nếu JPanel đã có một biên giới, sau đó bạn có thể sử dụng một biên giới hợp chất hoặc quấn JPanel trong một JPanel, nói sử dụng BorderLayout và ở vị trí BorderLayout.CENTER, và cung cấp cho bao bọc JPanel một đường viền rỗng.

+1

Đối với tấm 'nội' rằng sẽ bên trong các tấm khác, một cách khác để giới thiệu không gian bằng cách cung cấp đối số cho các nhà xây dựng của cách bố trí bảng điều khiển cha mẹ . Bố cục thường có một hàm tạo cho phép khoảng cách ngang và dọc giữa các thành phần được chỉ định. –

+0

@Andrew: đúng vậy. Cảm ơn bạn đã làm rõ! –

0

Tại sao bạn không sử dụng GridBagLayout và setBounds cho các thành phần? các thành phần sẽ ở vị trí bạn muốn.

đây một ví dụ: `

'import javax.swing.*; 
import java.awt.*; 
public class set_Components_where_i_want { 
    public static void main(String[] args){ 
     JFrame frame = new JFrame(); 
     frame.setLayout(null); 
     //make new Components 
     JButton b1 = new JButton("One"); 
     JButton b2 = new JButton("Two"); 
     JButton b3 = new JButton("Three"); 
     //add Components first 
     frame.add(b1); 
     frame.add(b2); 
     frame.add(b3); 
     //get frame inserts 
     Insets insets = frame.getInsets(); 
     Dimension size = b1.getPreferredSize(); 
     //set position here 
     b1.setBounds(50 + insets.left, 10 + insets.top, 
       size.width, size.height); 
     size = b2.getPreferredSize(); 
     b2.setBounds(110 + insets.left, 80 + insets.top, 
       size.width, size.height); 
     size = b3.getPreferredSize(); 
     b3.setBounds(300 + insets.left, 60 + insets.top, 
       size.width + 100, size.height + 40); 
     //set size for the frame so it can contain all Components 
     frame.setSize(600 + insets.left + insets.right, 
        250 + insets.top + insets.bottom); 
     // make the frame be visible 
     frame.setVisible(true); 
} 

}`

Các vấn đề liên quan