2014-01-24 4 views
0

У меня есть панель, которая содержит горизонтальную коробку в коробке, есть 2 кнопки. Теперь я расширяю этот класс и хочу добавить новую кнопку в начале окна. Что я пробовал добавить кнопку в конец окна.Как добавить кнопку в начале макета окна?

любое тело знает, как это сделать?

private class MyBoxPanel extends BoxPanel { 
     public JButton btnPrint; 
     public MyConfirmationPanel() { 
      btnPrint = new JButton("print"); 
      add(btnPrint); 
      add(Box.createRigidArea(new Dimension(5, 0))); 
     } 

     protected void confirmActionPerformed(ActionEvent e) { 
      for (PrinterInputListener listener : listeners) 
       listener.printConfirmed(printerPanel.getPrint().getId()); 
     } 

     protected void cancelActionPerformed(ActionEvent e) { 
      for (PrinterInputListener listener : listeners) 
       listener.printCancelled(); 
     } 
    } 
+2

> Что я пытался кнопку addes до конца коробки. - последний JComponent добавлен в конец (ZOrder), 1. вам нужно getComponentAt (int), 2. добавить JButton 3. перемещение с текущим JCmoponet в индекс +1, 4. затем вызвать revalidate и repaint – mKorbel

+1

Cant вы создаете панель с borderlayout с этой панелью, а набор 2 основных кнопок центра и востока, добавив 3 на запад? – Fabiotocchi

+0

В MyBoxPanel я могу добавить любую вещь, которую хочу, но в BoxPanel я не могу ничего менять или добавлять. – michdraft

ответ

1

Что я пытался кнопку addes до конца коробки.

Да, метод add(component) просто добавляет компонент в конец контейнера.

Если вы хотите добавить компонент в начало, вам нужно указать значение индекса 0. Прочтите API контейнера для соответствующего метода. Я не помню, было ли это add(component, index) или add(index, component).

Затем после добавления компонента необходимо вызвать

panel.revalidate(); 
panel.repaint();