Dzięki za pomoc, stary poprawiony kod działał w sumie dobrze, ale proste, że zastosowałem Twój.
Nie wiem w dalszym ciągu jak zainicjować przycisk utworzony przy użyciu funkcji addButton z kodów z powyższych kodów.
Przy pojawieniu się pierwszego pytania, przycisk jbPrev, jest zdeaktywowany. Odblokowuje go naciśnięciem jbNext i odwrotnie przy ostatnim pytaniu.
private class NextPyt implements ActionListener {
@Override public void actionPerformed(ActionEvent e)
{
jlPytanie.setText(pytania[nr_pyt++].pytanie);
jbPrev.setEnabled(true);
if((nr_pyt >= pytania.length))
((JButton)e.getSource()).setEnabled(false);
}
}
private class PrevPyt implements ActionListener {
public void actionPerformed(ActionEvent e) {
jlPytanie.setText(pytania[--nr_pyt].pytanie);
jbNext.setEnabled(true);
if((nr_pyt <= 0))
((JButton)e.getSource()).setEnabled(false);
}
}
Powyższy kodzik zadziała gdy przyciski są na "sztywno" zaincjowane:
PrevPyt prev = new PrevPyt();
jbPrev = new JButton("<<<<<");
jbPrev.addActionListener(prev);
jpDolny.add(jbPrev);
//addButton(jpDolny, jbPrev, "<<<<<", null, prev); <--- w tym przypadku użycie przycisku zwraca null
NextPyt next = new NextPyt();
jbNext = new JButton(">>>>>");
jbNext.addActionListener(next);
jpDolny.add(jbNext);
//addButton(jpDolny, jbNext, ">>>>>", null, next); <--- w tym przypadku użycie przycisku zwraca null
Co zmienić w takiej funkcji aby przycisk przekazywany do funkcji stał się "realnie" zainicjalowany.
private void addButton(JPanel panel, JButton button, String label, GridBagConstraints c, ActionListener listener) {
button = new JButton(label);
panel.add(button, c);
button.addActionListener(listener);
}
Pozdrawiam