Nie mogę nigdzie znaleźć w dokumentacji jak po kliknięciu na jakiś Button wczytać dane z konkretnej komórki Table do pola TextField. Podpowie ktoś jak to wykonać?
Należy podczepić do przycisku listener na kliknięcia (albo lepiej na akcje), w którym pobierzesz wartość z komórki tabeli i wprowadzisz ją do pola...
Zawartość tabeli przechowywana jest w model
u.
Z czym konkretnie masz problem?
Chcesz wczytywać dane zawsze z tej samej komórki, czy z komórki wskazanej przez użytkownika? Jeśli to drugie, to lepiej podpiąć MouseListenera do JTable.
Powiedzmy , że mam jakiś wiersz w tej tabeli - imię, nazwisko,adres i chcę aby po najechaniu na ten wiersz i kliknięciu buttona te dane pojawiły się w nowym oknie w odpowiednich polach TextField.
W takim razie do buttona musisz podpiąć listener, który wczyta Ci dane z tabeli na podstawie zaznaczonego wiersza.
Możesz też zamiast buttona reagować po prostu np. na podwójne kliknięcie i w procedurze obsługi sprawdzać, który wiersz jest aktualnie zaznaczony.
Mniej więcej tak:
int index = table.getSelectedRow();
if(index < 0)
{
//komunikat, ze trzeba coś zaznaczyć
return;
}
index = table.convertRowIndexToModel(index); //konieczne jeżeli użytkownik może sortować tabelę
Szczegóły pobrania danych zależą od użytego modelu.
Też nie dawno z tym walczyłem, i mam coś takiego:
@Override
public void mouseClicked(MouseEvent e)
{
if (e.getButton() == MouseEvent.BUTTON1)
{
int row = table.getSelectedRow();
TF_ID.setText(model.getAllRows().get(row)[0] + "");
TF_IMIE.setText(model.getAllRows().get(row)[1] + "");
TF_NAZWISKO.setText(model.getAllRows().get(row)[2] + "");
TF_PESEL.setText(model.getAllRows().get(row)[3] + "");
TF_NARODOWOSC.setText(model.getAllRows().get(row)[4] + "");
}
}
Po kliknięciu w wiersz tabli wartości są wrzucane w TextField
Proponuję dodać
if(row>-1)