добавить пространство между JFrame и JPanel - PullRequest
7 голосов
/ 14 января 2012

как я могу добавить пространство между вставками JFrame и JPanel в этот JFrame?Я бы вставил пробел так, чтобы элементы внутри JPanel не появлялись слишком близко в JFrame

Ответы [ 2 ]

10 голосов
/ 14 января 2012

Установите границу JPanel с помощью EmptyBorder с соответствующими параметрами.

т.е.

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

Если JPanel уже имеет границу, то вы можете использовать составную границу или обернутьJPanel в другом JPanel, скажем, используя BorderLayout и в позиции BorderLayout.CENTER, и дайте оболочке JPanel пустую границу.

0 голосов
/ 26 июня 2015

Почему вы не используете GridBagLayout и setBounds для компонентов? Компоненты останутся в нужной позиции.

Вот пример: `

'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);
}

} `

...