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