2016-01-20 2 views
0

Я делаю для меня небольшую программу с NetBeans. Мне не нужно создавать много JButtons на JPanel, но я не могу этого сделать. JPanel сгенерирован редактор NetBeans на JFrame (также его редактор NetBeans)JPanel и JButton

Это код:

public static ArrayList<Account> accounts = Account.accounts; 
public verCuenta() { 
    initComponents(); 
    panel.setVisible(true); 
    Account ac; 
    JButton button; 

    int size= accounts.size(); 

    for(int i=0;i<size;i++){ 
     button = new JButton(accounts.get(i).getName()); 
     button.setVisible(true); 
     button.addActionListener(null); 
     button.setPreferredSize(new Dimension(50,30)); 
     panel.add(button); 
    } 
+1

Изменить менеджер компоновки, имеют вид на [Разбивку компонентов в контейнере] (HTTP: // документы .oracle.com/javase/tutorial/uiswing/layout/index.html) для получения более подробной информации – MadProgrammer

+0

Даже с этой помощью я не могу решить проблему ... Я имею в виду ... JButton не может быть напечатан на JPanel ? – zasaz

+0

Ну, я предполагаю, что 'панель' была добавлена ​​к тому, что когда-либо было в контейнере, которое вы пытаетесь показать. Рассмотрите возможность предоставления [runnable example] (https://stackoverflow.com/help/mcve), который демонстрирует вашу проблему. Это не дамп кода, а пример того, что вы делаете, что подчеркивает проблему, с которой вы сталкиваетесь. Это приведет к меньшему путанице и лучшим ответам – MadProgrammer

ответ

-1

вам нужно добавить все элементы на панель, а затем вызвать setVisible способ.

Дополнения после вызова метода setVisible не учитываются сами по себе.

1

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

// Create a new button: 
JButton b1 = new JButton("ok"); 
// Set the location and size of the button: 
b1.setSize(100, 26); 
// Add the button to the window: 
jPanel1.add(b1); 
//Repaint the Panel to make visible 
jPanel1.repaint(); 

Он работает только тогда, когда вы устанавливаете размер, просто проверен в Netbeans. Вы также можете указать местоположение, используя

b1.setLocation(100, 100); 

Кстати, весь кадр в GridBag макете