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
7
A
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.
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);
}
}`
Đố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. –
@Andrew: đúng vậy. Cảm ơn bạn đã làm rõ! –