ArrayList-co i jak?

0

Witam mam problem z ArrayList, mam otoz taki programik w ktorym podaje dane klikam zapisz i powino mi to wyswietlic w textarea, no ale nie dziala:(

w ogóle nie wiem czy dobrze rozumuje jak to ma wygladac:
-tworze ArrayList dane=new ArrayList();
-pozniej pobieram z pola w ktorym podaje dane:
s=podaj.getText();//zapieram dane w stringu
i teraz dopiero dodaje wartosc tego stringa to arrayList:
dane.add(s); ??
a pozniej to:

for(int i=0;i<dane.size();i++)
            {
                a=(String)dane.get(i);
            }
        }
        wypisz.setText(a);

czyli sprawdz ile danych masz i tyle wyswietl, konwersja do stringa, i pozneij przez setText wyswietl??

import javax.swing.*;
import java.util.*;
import java.io.*;
import java.awt.event.*;
public class test9 extends JFrame implements ActionListener
{
    ImageIcon ikona=new ImageIcon("save.gif");
    JButton zapisz=new JButton(ikona);
    JTextField podaj=new JTextField(20);
    JTextArea wypisz=new JTextArea(6,30);
    ArrayList dane=new ArrayList();//pojemnik arraylist na dane
    String s,a;
    public test9()
    {
        setSize(370,210);
        setTitle("moj programik:)");
        JPanel panel=new JPanel();
        wypisz.setEditable(false); // czy mozna pisac true-tak, false-nie
        wypisz.setLineWrap(true);
        //wypisz.setWrapStyleWord(true);
        zapisz.addActionListener(this);
        JLabel pisz=new JLabel("teskt:",SwingConstants.RIGHT);
        panel.add(wypisz);
        panel.add(pisz);
        panel.add(podaj);
        panel.add(zapisz);

        setContentPane(panel);
    }
    public void actionPerformed(ActionEvent zdarzenie)
    {
        Object klik=zdarzenie.getSource();
        if(klik==zapisz)
        {
            s=podaj.getText();// 2 //
            dane.add(s);
            for(int i=0;i<dane.size();i++)
            {
                a=(String)dane.get(i);
            }
        }
        wypisz.setText(a);
             podaj.setText("");
        repaint();

    }

    public static void main(String argv[])
    {
        test9 okienko=new test9();
        okienko.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        okienko.setVisible(true);

    }

}
0

Witam!
To tak. Jak dajesz wypisz.setText to nie dodajesz linijki ale musisz caly tekst dodac. Czyli w tej petli musisz sobie caly tekst wrzucic do jednego stringa.

lines ArrayList<String> = new ArraList();
String text = "";

for(int i = 0; lines.size(); i++)
{
      text = text + "\n" + lines.get(i);
}

wypisz.setText( text );

To powinno dzialac ale nie jestem pewien czy:

                Object klik=zdarzenie.getSource();
                if(klik==zapisz)

to dziala dobrze.

Ten repaint nie jest potrzebny, ale odkomentuj linijke

//wypisz.setWrapStyleWord(true);

Jezeli wartosc jest true to zawija wiersze do slowa anie do litery.

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0