Gridbaglayout проблема с макетом (Java качели) - PullRequest
0 голосов
/ 06 октября 2018

Добрый день всем, так как я новичок в программировании на Java, хотел бы спросить здесь некоторых опытных программистов.поэтому я пытаюсь создать систему инвентаризации, но есть проблема с моим макетом Ссылка на изображение Панель «Годовой баланс» должна быть ниже панели «Запись продаж», тогда панель «Запись продаж» должназаполните пространство выше по горизонтали.У любого есть представление о том, в чем проблема.

public MainViewForm(String text)
{



       setTitle("Computer Warehouse ni SeQuoia");  
       setLayout(new GridBagLayout());
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
       setSize(1200,900);        
       setResizable(true);
       setVisible(true);



       mBar = new JMenuBar();
        setJMenuBar(mBar);

       mFile = new JMenu("FILE");
    mBar.add(mFile);

    mEdit = new JMenu("EDIT");
    mBar.add(mEdit);

    mView = new JMenu("VIEW");
    mBar.add(mView);

    mSave = new JMenu("SAVE");
    mBar.add(mSave);

    tBSave = new JToggleButton("SAVE");
    mSave.add(tBSave);

    mHelp = new JMenu("HELP");
    mBar.add(mHelp);

     mOption = new JMenu("OPTION");
     mBar.add(mOption);

     mEnd = new JMenu("END");
     mBar.add(mEnd);

     tbExit = new JToggleButton("EXIT");
     mEnd.add(tbExit);


   dlyForm = new DailyForm();
   mtlyForm = new MonthlyForm();
   tForm = new TableForm();
   abForm = new AnnualBalanceForm();

   GridBagConstraints gbc_dlyForm = new GridBagConstraints();
   gbc_dlyForm.anchor=GridBagConstraints.FIRST_LINE_START;
   gbc_dlyForm.weightx=1;
   gbc_dlyForm.weighty=1;
   gbc_dlyForm.gridx=0;
   gbc_dlyForm.gridy=0;
   add(dlyForm,gbc_dlyForm );

   GridBagConstraints gbc_mtlyForm = new GridBagConstraints();
   gbc_mtlyForm.weightx=1;
   gbc_mtlyForm.weighty=1;
   gbc_mtlyForm.gridx=0;
   gbc_mtlyForm.gridy=0;
   gbc_mtlyForm.insets=new Insets(225,0,0,0);
   gbc_mtlyForm.anchor=GridBagConstraints.LINE_START;
   add(mtlyForm,gbc_mtlyForm);

   GridBagConstraints gbc_tForm = new GridBagConstraints();
   gbc_tForm.fill=GridBagConstraints.HORIZONTAL;
   gbc_tForm.weightx=0.1;
   gbc_tForm.weighty=0.1;
   gbc_tForm.anchor= GridBagConstraints.CENTER;
   add(tForm,gbc_tForm);

   GridBagConstraints gbc_abForm = new GridBagConstraints();
   gbc_abForm.anchor= GridBagConstraints.PAGE_END;
   gbc_abForm.weightx=1;
   gbc_abForm.weighty=1;

   add(abForm,gbc_abForm);

   pack();
}

1 Ответ

0 голосов
/ 06 октября 2018

Вы не указали gridx / gridy для этих ограничений.По умолчанию они имеют значение RELATIVE, поэтому следующий компонент перемещается как по горизонтали, так и по вертикали.

(Если есть одна вещь, которую я бы больше всего хотел изменить в вашем коде, это наименование. Я непозаботьтесь о типе (в названии), поэтому удалите его и не сокращайте оставшиеся полезные слова. Также стоит отметить, что данные GridBagConstraints копируются, поэтому вы можете использовать их при необходимости.)

...