O JButton está no JPanel, no qual não está, deve estar [fechado]
Olá, este é o meu problema concreto. Tentei adicionar um botão a um painel com o loop for.
Isto é para loop para criar JButtons.
nizButtona=new JButton[22];
for(int i=0;i<nizButtona.length;i++){
nizButtona[i] = new JButton();
if(i==0){
nizButtona[i].setText("Započni kviz"); //Start quiz
nizButtona[i].addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
cl.next(nizPanela[1]);
}
});
}else if(i==1){
nizButtona[i].setText("Izlaz"); //Quit
nizButtona[i].addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
System.exit(0);
}
});
}else if(i<12){
nizButtona[i].setText("Sledeće pitanje"); //Next question, on next panel
nizButtona[i].addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e){
cl.next(nizPanela[1]);
}
});
}
Este é um novo loop para adicionar botões nos painéis. Aqui nizButtona [i-1] é i-1 porque o primeiro botão da próxima pergunta tem um argumento que JPanel, onde ele precisa ser adicionado, e você GridBagLayout para todos os componentes, para que eu coloque todos no mesmo local de cada painel. Sem ele, o problema é o mesmo.
for(int i=3;i<=11;i++){
nizPanela[i].add(nizButtona[i-1]);
}
Aqui está como eu criei o array para o JPanels.
nizPanela = novo JPanel [13];
for (int i=0;i<nizPanela.length;i++ ){
nizPanela[i] = new JPanel();
if(i<=1){
okvir.getContentPane().add(nizPanela[i]);//Does i real need this getContentPane?
}else{
nizPanela[i].setLayout(new GridBagLayout());
nizPanela[1].add(nizPanela[i], String.valueOf(i));
}
}
cl=new CardLayout();
nizPanela[1].setLayout(cl);
cl.show(nizPanela[1],"2");
É assim que o programa se parecefoto Botão Sledeće pitanje visível neste painel, mas não deve ser. Só é visível se eu mover o ponteiro do mouse pelo lugar deste botão.