Witam
Pisze prosta aplikacja, ktora ma wyswietlac dwa okienka w jedenm na byc pytanie i po nacisnieciu przycisku ma sie wysietlic odpowiedz ... mam problem ze stworzeniem klasy ktora pomagala by w reprezentacji danych, ktore maja sie wyswietlac na karteczkach... ponizej zamieszcam kod stworzony przeze mnie klas
KartaKwizowaEdytor

package kartakwizowaedytor;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;

public class KartaKwizowaEdytor {
    
    private JTextArea pytanie;
    private JTextArea odpowiedz;
    private ArrayList<KartaKwizowa> listaKart;
    private JFrame ramka;
    
    public static void main(String[] args) {
       KartaKwizowaEdytor edytor= new KartaKwizowaEdytor();
       edytor.doDziela();
    }
    
    public void doDziela(){
        ramka=new JFrame("Edytor kart kwizowych");
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panelGlowny= new JPanel();
        Font czcionkaDuza= new Font("sanserif", Font.BOLD, 24);
        pytanie= new JTextArea(6, 20);
        pytanie.setLineWrap(true);
        pytanie.setFont(czcionkaDuza);
        
        JScrollPane przewijaniePyt= new JScrollPane(pytanie);
        przewijaniePyt.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        przewijaniePyt.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        
        odpowiedz= new JTextArea(6,20);
        odpowiedz.setLineWrap(true);
        odpowiedz.setWrapStyleWord(true);
        odpowiedz.setFont(czcionkaDuza);
        
        JScrollPane przewijanieOdp= new JScrollPane(odpowiedz);
        przewijanieOdp.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        przewijanieOdp.setVerticalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        
        JButton przyciskNastepna= new JButton("Nastepna karta");
        
        listaKart= new ArrayList<KartaKwizowa>();
        
        JLabel etykietaPyt= new JLabel("Pytanie: ");
        JLabel etykietaOdp= new JLabel("Odpowiedz: ");
        
        panelGlowny.add(etykietaPyt);
        panelGlowny.add(przewijaniePyt);
        panelGlowny.add(etykietaOdp);
        panelGlowny.add(przewijanieOdp);
        panelGlowny.add(przyciskNastepna);
        przyciskNastepna.addActionListener(new NastepnaKartaListener());
        JMenuBar menu= new JMenuBar();
        JMenu menuPlik= new JMenu("Plik");
        JMenuItem opcjaNowa= new JMenuItem("Nowy");
        JMenuItem opcjaZapisz= new JMenuItem("Zapisz");
        opcjaNowa.addActionListener(new NowyMenuListener());
        
        opcjaZapisz.addActionListener(new ZapiszMenuListener());
        menuPlik.add(opcjaNowa);
        menuPlik.add(opcjaZapisz);
        menu.add(menuPlik);
        ramka.setJMenuBar(menu);
        ramka.getContentPane().add(BorderLayout.CENTER, panelGlowny);
        ramka.setSize(500,600);
        ramka.setVisible(true);
    }
    
    public class NastepnaKartaListener implements ActionListener{
        public void actionPerformed(ActionEvent zd){
            KartaKwizowa karta= new KartaKwizowa(pytanie.getText(), odpowiedz.getText());
            listaKart.add(karta);
            czyscKarte();
        }
    }
    
    public class ZapiszMenuListener implements ActionListener{
        public void actionPerfomed(ActionEvent zd){
            KartaKwizowa karta= new KartaKwizowa(pytanie.getText(), odpowiedz.getText());
            listaKart.add(karta);
            
            JFileChooser plikDanych= new JFileChooser();
            plikDanych.showSaveDialog(ramka);
            zapiszPlik(plikDanych.getSelectedFile());
        }
    }
    
    public class NowyMenuListener implements ActionListener{
        public void actionPerformed(ActionEvent zd){
            listaKart.clear();
            czyscKarte();
        }
    }
    
    private void czyscKarte(){
        pytanie.setText("");
        odpowiedz.setText("");
        pytanie.requestFocus();
    }
    
    private void zapiszPlik(File plik){
        try{
            BufferedWriter pisarz= new BufferedWriter(new FileWriter(plik));
            
            for(KartaKwizowa karta: listaKart){
                pisarz.write(karta.getPytanie()+"/");
                pisarz.write(karta.getOdpowiedz()+"\n");
            }
            pisarz.close();
        }catch (Exception ex){
            System.out.println("Nie mozna zapisac pliku kart");
            ex.printStackTrace();
        }
    }
}

KwizGra

package kartakwizowaedytor;
import java.util.*;
import java.awt.event.*;
import javax.swing.*;
import java.awt.*;
import java.io.*;

public class KwizGra {
    
    private JTextArea pytanie;
    private JTextArea odpowiedz;
    private ArrayList<KartaKwizowa> listaKart;
    private KartaKwizowa biezacaKarta;
    private int indeksBiezacejKarty;
    private JFrame ramka;
    private JButton przyciskNastepnaKarta;
    private boolean czyPrezentowanaOdpowiedz;
    
    public static void main(String[] args){
        KwizGra gra= new KwizGra();
        gra.doDziela();
    }
    
    public void doDziela(){
        ramka= new JFrame("Kwiz");
        ramka.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        JPanel panelGlowny= new JPanel();
        Font czcionkaDuza= new Font("sanserif", Font.BOLD,24);
        
        pytanie= new JTextArea(10,20);
        pytanie.setFont(czcionkaDuza);
        pytanie.setLineWrap(true);
        pytanie.setEditable(false);
        
        JScrollPane przewijanieP= new JScrollPane(pytanie);
        przewijanieP.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        przewijanieP.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        przyciskNastepnaKarta= new JButton("Pokaz pytanie");
        panelGlowny.add(przewijanieP);
        panelGlowny.add(przyciskNastepnaKarta);
        przyciskNastepnaKarta.addActionListener(new NastepnaKartaListener());
        
        JMenuBar pasekMenu= new JMenuBar();
        JMenu menuPlik= new JMenu("Plik");
        JMenuItem opcjaOtworz= new JMenuItem("Otworz zbior kart");
        opcjaOtworz.addActionListener(new OtworzMenuListener());
        menuPlik.add(menuPlik);
        ramka.setJMenuBar(pasekMenu);
        ramka.getContentPane().add(BorderLayout.CENTER, panelGlowny);
        ramka.setSize(640,500);
        ramka.setVisible(true);
    }
    
    public class NastepnaKartaListener implements ActionListener{
        public void actionPerformed(ActionEvent zd){
            if(czyPrezentowanaOdpowiedz){
                pytanie.setText(biezacaKarta.getOdpowiedz());
                przyciskNastepnaKarta.setText("Nastepna karta");
                czyPrezentowanaOdpowiedz= false;
            }else{
                if(indeksBiezacejKarty<listaKart.size()){
                    pokazNastepnaKarte();
                }else{
                    pytanie.setText("To była ostatnia karta");
                    przyciskNastepnaKarta.setEnabled(false);
                }
            }
        }
    }
    
    public class OtworzMenuListener implements ActionListener{
        public void actionPerformed(ActionEvent ev){
            JFileChooser dialogFile= new JFileChooser();
            dialogFile.showOpenDialog(ramka);
            wczytajPlik(dialogFile.getSelectedFile());
        }
    }
    
    public void wczytajPlik(File file){
        listaKart= new ArrayList<KartaKwizowa>();
        try{
            BufferedReader czytelnik= new BufferedReader(new FileReader(file));
            String wiersz=null;
            while((wiersz=czytelnik.readLine())!=null){
                tworzKarte(wiersz);
            }
            czytelnik.close();
        }catch (Exception ex){
            System.out.println("Nie mozna odczytac pliku z kartami!");
            ex.printStackTrace();
        }
        pokazNastepnaKarte();
    }
    
    private void tworzKarte(String wieszDanych){
        String[] wyniki= wierszDanych.split("/");
        KartaKwizowa card= new KartaKwizowa(wyniki[0], wyniki[1]);
        listaKart.add(card);
        System.out.println("utworzono karte");
    }
    
    private void pokazNastepnaKarte(){
        biezacaKarta= listaKart.get(indeksBiezacejKarty);
        indeksBiezacejKarty++;
        pytanie.setText(biezacaKarta.getPytanie());
        przyciskNastepnaKarta.setText("Pokaz odpowiedz");
        czyPrezentowanaOdpowiedz=true;
    }
}

i ostania w ktorej jest problem KartaKwizowa

package kartakwizowaedytor;
import javax.swing.*;
class KartaKwizowa {
    private JTextArea pytanie;
    private JTextArea odpowiedz;
    private String[] tablicaPytan;
    private String[] tablicaOdpowiedzi;
    private String wierszDanych;
    
    public String getPytanie(){
        String listaPytan="";
        for(int i=0; i<tablicaPytan.length; i++){
            listaPytan +=tablicaPytan[i]+" ";
        }
        return listaPytan;
    }
    
    public String getOdpowiedz(){
        String listaOdpowiedzi="";
        for(int i=0; i<tablicaOdpowiedzi.length; i++){
            listaOdpowiedzi +=tablicaOdpowiedzi[i]+" ";
        }
        return listaOdpowiedzi;
    }
    }


Jak stworzyć klasę, ktora pomagala by w reprezentacji danych, ktore maja sie wyswietlac na karteczkach (okienkach)?
Dziekuje za jakie kolwiek odpowiedzi