Mam arraylistę, którą chcę wyświetlić w okienku. Czy JPanel posiada coś na kolekcje?
O, i bardzo fajnie by to wyszło, dzięki wielkie. Ale jak przypisać arraylistę temu okienku. Bo chyba nie mogę się po prostu odwołać np. arraylist.imie ?
To ja może wrzucę listing: Łatwiej się będzie połapać co zamierzałem zrobić:
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import java.util.Collections;
import javax.swing.*;
public class Osoba extends Object implements Comparable <Osoba> {
String imie;
String nazwisko;
String uwagi;
float srednia;
public void Nadaj_nazwisko(String lan)
{ nazwisko=lan;}
public String Podaj_nazwisko()
{ return nazwisko;}
public void Nadaj_uwagi(String lan)
{ uwagi=lan;}
public String Podaj_uwagi()
{ return uwagi;}
public void Nadaj_srednia(float srednia_)
{ srednia=srednia_;}
public float Podaj_srednia()
{return srednia;}
public static Osoba Wstaw(String imie ,String nazwisko, String uwagi, String srednia){
Osoba dane= new Osoba();
dane.Nadaj_nazwisko(nazwisko);
dane.Nadaj_srednia(Float.parseFloat(srednia));
dane.Nadaj_uwagi(uwagi);
return dane;
}
public int compareTo(Osoba o) {
return nazwisko.compareTo(o.nazwisko);
}
}
public class Aplikacja extends JFrame{
/**
* @param args
*/
String a;
private JTextField jtf_imie;
private JTextField jtf_nazwisko;
private JTextField jtf_uwagi;
private JTextField jtf_srednia;
private JButton jb_dodaj;
private JButton jb_usun;
private JTextArea jta_arraylista;
static ArrayList<Osoba> arraylista= new ArrayList<Osoba>();
public Aplikacja() {
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLayout(null); //wyłącza autorozmieszczanie elementów w okienku
ActionListener al = new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(e.getSource()== jb_dodaj){
String imie= new String();
imie=jtf_imie.getText();
String nazwisko= new String();
nazwisko=jtf_nazwisko.getText();
String uwagi= new String();
uwagi=jtf_uwagi.getText();
String srednia= new String();
srednia=jtf_srednia.getText();
arraylista.add(Osoba.Wstaw(imie,nazwisko,uwagi,srednia));
Collections.sort(arraylista);
}
if(e.getSource()== jb_usun){
//tu coś trzeba włożyć
}
}
};
JLabel lab_imie = new JLabel("Imie:");
lab_imie.setBounds(10, 10, 120, 20);
JLabel lab_nazwisko = new JLabel("Nazwisko:");
lab_nazwisko.setBounds(150, 10, 120, 20);
JLabel lab_uwagi = new JLabel("Uwagi:");
lab_uwagi.setBounds(300, 10, 120, 20);
JLabel lab_srednia = new JLabel ("Średnia:");
lab_srednia.setBounds(450, 10, 120 ,20);
jtf_imie = new JTextField();
jtf_imie.setBounds(10, 40, 100, 20);
jtf_nazwisko = new JTextField();
jtf_nazwisko.setBounds(150, 40, 120, 20);
jtf_uwagi = new JTextField();
jtf_uwagi.setBounds(300, 40, 120, 20);
jtf_srednia = new JTextField();
jtf_srednia.setBounds(450, 40, 120, 20);
jb_dodaj = new JButton("Dodaj");
jb_dodaj.setBounds(235, 80, 100, 20);
add (lab_imie);
add (lab_nazwisko);
add (lab_uwagi);
add (lab_srednia);
add (jtf_imie);
add (jtf_nazwisko);
add (jtf_uwagi);
add (jtf_srednia);
add (jb_dodaj);
//add (jb_usun);
setSize(600, 200);
setVisible(true);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable(){
public void run() {
new Aplikacja();
}
});
}
}
Zapiszcie mi chociaż jeden wiersz, tak, żeby mi to chodziło, a dalej to już sam spróbuje.
W tym tutorialu co podałem jest to ładnie opisane i jest nawet podany przykład z kodem.
http://download.oracle.com/javase/tutorial/uiswing/examples/components/index.html#SimpleTableDemo
Poza tym nie używaj dziwolągów typu nadajDupa, podajDupa tylko setDupa, getDupa jak mówią Javowe konwencje. Nie używaj podkreślników w nazwach, nazwy metod czy zmiennych zaczynaj od małej litery itp itd Twój kod w Javie powinien wyglądać jak normalny kod Javowy, a nie powodować lawinę WTFów.