, вероятно, простой вопрос, связанный с обучением графическому интерфейсу с использованием качелей и легким движением вперед, но с другой скоростью. Я пытаюсь сохранить компоненты GUI, сгруппированные в разных классах, чтобы мои классы были небольшими и позволяли использовать более гибкий графический интерфейс, но у меня есть один компонент, как я его называю в моем основном классе. Ниже приведен код для создания кадра и компонента. Я бы предположил, что есть проблема с тем, как я звоню, но у меня заканчиваются идеи о том, как еще назвать это. Любые мысли были бы оценены ..... Было не очень понятно вопрос о том, чтобы добавить компонент в JFrame в frmMainMenu, проблема заключается в том, что компонент не отображается в кадре при запуске в настоящее времяКомпоненты Swing в разных классах
Главный класс с JFrame
public class frmMainMenu {
public static void main(String main[]){
//Create Frame
JFrame frmMainMenu = new JFrame();
//Define Layout Manager
GridBagLayout gridBag = new GridBagLayout();
GridBagConstraints c = new GridBagConstraints();
frmMainMenu.setLayout(gridBag);
//Add Components
//Create Left Container
c.fill = GridBagConstraints.VERTICAL;
c.weighty = 1;
c.gridx = 0;
c.gridy = 1;
c.ipadx = 30;
frmMainMenu.add(new comLeftToolBar(),c);
frmMainMenu.setExtendedState(JFrame.MAXIMIZED_BOTH);
frmMainMenu.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
//Display Frame
frmMainMenu.setVisible(true);
}
}
код компонента
public class comLeftToolBar extends JPanel{
public comLeftToolBar() {
JPanel comLeftContainer = new JPanel();
GridBagLayout leftGridBag = new GridBagLayout();
comLeftContainer.setLayout(leftGridBag);
GridBagConstraints b = new GridBagConstraints();
JToolBar comLeftToolBar = new JToolBar(JToolBar.VERTICAL);
b.gridx = 0;
b.gridy = 0;
b.ipady = 50;
JButton comNavButton = new JButton();
JButton comProButton = new JButton();
comLeftToolBar.add(comNavButton);
comLeftToolBar.add(comProButton);
comLeftContainer.add(comLeftToolBar,b);
comLeftContainer.setBorder(BorderFactory.createLineBorder(Color.black));
}
}
Что не работает? Я также посмотрю на [Начальные темы] (http://docs.oracle.com/javase/tutorial/uiswing/concurrency/initial.html) – MadProgrammer
'как я могу назвать его в моем основном классе' - что делать ты имеешь в виду? Вы используете 'new comLeftToolBar()', который является способом создания экземпляра класса. Кроме того, имена классов должны начинаться с символа верхнего регистра. Так что это должен быть 'ComLeftToolBar'. – camickr
1) Не расширяйте панель в этом случае. Вместо этого создайте & используйте экземпляр одного. 2) Используйте последовательный и логический отступ для кодовых блоков. Отступ кода предназначен для того, чтобы помочь людям понять поток программы. –