Как добавить заполнение с помощью контейнера? - PullRequest
3 голосов
/ 03 апреля 2012

Я пытаюсь сделать поверх несколько отступов, но как это сделать с контейнером?

    JFrame frame = super.screen.getFullScreenWindow();
    //Container contentPane = frame.getContentPane();
    //JPanel contentPane = new JPanel();

    // Make sure the content pane is transparent
    if (contentPane instanceof JComponent) {
        ((JComponent)contentPane).setOpaque(false);
    } 
    else {
      // ??
    }

    contentPane.setBorder(new EmptyBorder(10, 10, 10, 10) );
    //frame.getContentPane().add(contentPane, BorderLayout.CENTER);

Вывод

 [javac] symbol  : method setBorder(javax.swing.border.EmptyBorder)
 [javac] location: class java.awt.Container 
 [javac] contentPane.setBorder(new EmptyBorder(10, 10, 10, 10) );
 [javac]

Ответы [ 4 ]

15 голосов
/ 03 апреля 2012

Разве вы не можете просто добавить JPanel, который будет содержать все, и установить для него пустую границу?

 JPanel containerPanel = new JPanel();
 containerPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
 containerPanel.setLayout(new BorderLayout());
 //panel to test
 JPanel testPanel = new JPanel();
 testPanel.setBackground(Color.blue);        
 containerPanel.add(testPanel,BorderLayout.CENTER);

 //assuming you are extending JFrame
 getContentPane().setLayout(new BorderLayout());
 getContentPane().add(containerPanel, BorderLayout.CENTER);
3 голосов
/ 03 апреля 2012
  • JFrame / Frame и его ContentPane не реализует Borders, это доисторическое Componenet

  • поставить прямо туда JPanel с EmptyBorders

  • для Java5 и выше не требуется для вызова ContentPane (только для setBackground:-), вы можете напрямую добавить JComponents к JFrame#add(myJComponent), уведомление Swing Top-Level Containers выполнено BorderLayout по умолчанию

2 голосов
/ 03 апреля 2012

Вы можете переопределить Container # getInsets , хотя вы должны использовать компоненты Swing.

0 голосов
/ 03 апреля 2012

Вы не предпочитаете использовать свинг?Компоненты имеют метод для добавления полей.Swing намного лучше, чем устаревшая библиотека awt.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...