2013-06-30 2 views
1

Я создал форму jFrame в пакете в netbeans. Проект не имеет основного класса. Я положил кнопку из палитры. Ниже приведен код кнопки:Создание объектов в форме JFrame

int x = jButton1.getHorizontalAlignment(); 
int y = jButton1.getVerticalAlignment(); 
    JButton button2=new JButton();    
    button2.setBounds(200, 200, 100, 100);  
    button2.setVisible(true); 

Вторая кнопка не отображается. Зачем? x и y должны использоваться позже для относительного позиционирования. Я также хотел бы знать, как это сделать, кроме x + что-то и y + что-то в координатных параметрах .setBounds().

+3

1) Вам нужно добавить кнопку в панель содержимого JFrame или JPanel? 2) Не используйте setBounds(), если вы просто не возитесь. Вместо этого разместите свои виджеты с менеджерами компоновки и дайте им установить точный размер и положение. – 7stud

+0

@ 7stud Я пытаюсь добавить кнопку в область объекта. Как использовать менеджеры компоновки для создания объектов в относительных позициях? –

+0

@DeeparthGupta: каждый «Компонент» виден по умолчанию, нельзя допускать явно писать 'setVisible (true)' для каждого компонента. Достаточно установить видимое свойство Top Most Container. –

ответ

4

Вторая кнопка не отображается. Зачем?

Потому что вы не добавили кнопку в JPanel.

Я также хотел бы знать, как сделать это, кроме х + что-то и у + что-то в координатных параметров .setBounds().

Для работы setBounds вам необходимо установить макет контейнера равным нулю, что является очень плохой практикой. Потому что это уменьшает переносимость приложения по всей платформе, а также очень важно поддерживать код с помощью setBounds. Вы должны позволить встроенным макетам качания выполнять свою работу. Посмотрите здесь: A Visual Guide to Layout Managers

+0

Я не добавил JPanel. Я все еще пытался использовать функцию JPanel.add(). Он просит меня присвоить новое значение возврату variabl. Нажатие на это дает мне Компонент add = JPanel.add (button2); Что еще дает и ошибка. –

+0

@DeeparthGupta: ваши вопросы подсказывают, что вы пытаетесь запрограммировать Swing, не пройдя сначала учебник или два. Пожалуйста, прекратите угадывать и читайте учебники, иначе вы будете очень разочаровывающими. –

+0

@Hovercraft Full Eels: Я думаю, что должен, потому что материал, который они учат в школе, не покрывает этого. Какие-нибудь хорошие подсказки, чтобы предложить? –

Смежные вопросы