У меня есть следующий код, который создает массив JButton при нажатии кнопки. Ope[]
публично объявляется в классе. У меня проблема, что я получил нулевой указатель. То есть он не печатает 2-й в цикле, т.е. не входит во внутреннюю итерацию. Скажите, пожалуйста, как обращаться с слушателями для массива. Заранее спасибо.добавление слушателей в массив JButton;
for(int i=0,y=30; i<counter;i++,y+=15)
{
open[i]=new JButton("Open");
open[i].setBounds(380, y, 70, 15);
open[i].addActionListener(this);
panelDisplay.add (open[i]);
System.out.println(""+i);
}
Регулируя в функции actionPerformed событие следующим образом:
for(int j=0; j<open.length; j++)
{
System.out.println("1st in a loop"+j);
if(ae.getSource() != null)
{
if(ae.getSource() == open[j])
{
System.out.println("2nd in a loop" +j);
int id;
String stringid;
System.out.println("open of"+j+"is clicked");
stringid = ""+table.getValueAt(j, 0);
id = Integer.parseInt(stringid);
fetchData(id);
//ae.getSource().equals(null);
}
}
}
Не используйте 'SetBounds()'. Используйте диспетчер компоновки для компоновки кнопок. Опубликуйте свой SSCCE, который демонстрирует проблему. – camickr