pobranie zawartości komórki tabeli

0

Witam :)
Dopiero zaczynam swoją przygodę z Javą, dlatego proszę o pomoc. Nie wiem, jak pobrać zawartość pewnej komórki, znajdującej się w podświetlonym wierszu tabeli i np. w pierwszej kolumnie tej tabeli. Następnie chcę wstawić ten tekst do etykiety JLabel.

0
int row = table.getSelectedRow();
if (row != -1){ /* Cos jest zaznaczone */
	int modelRow = table.convertRowIndexToModel(row); /* Potrzebne tylko, gdy jest sortowanie w tabeli */
	String text = (String) table.getModel().getValueAt(modelRow, 0); /* Pobranie wartości */
}
0

Dziękuję za zainteresowanie.

Niestety wciąż nie mogę sobie poradzić :(

Wśród kilku klas mam między innymi takie:
klasa Uruchom wyświetla w okienku tabelkę (JTable tabela)
klasa OknoUsun wywołuje okienko, w którym są etykiety (np. JLabel etykieta01)

Chciałabym, aby w tej etykiecie pojawił się tekst z komórki tabeli.

Próbowałam jakoś dopasować Twój kod do moich potrzeb, ale zagmatwałam się.

0

Skorzystałem z kodu _krzysiek85 i tu masz pełny przykład:

public class RowTableTest {

	public static void main(String[] args) {
		JFrame f = new TableFrame();

	}
	
	static class TableFrame extends JFrame {
		private static final Object[] columns = {"1", "2", "3", "4", "5", "6",};
		private static final Object[][] tableData;
		private JTextField textField;
		private JTable table;
		
		static {
			tableData = new Object[6][6];
			int value = 0;
			for(int i=0; i<6; i++)
				for(int j=0; j<6; j++)
					tableData[i][j]=value++;
			
		}
		
		public TableFrame() {
		   table = new JTable(tableData, columns);
		    
			table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){

				@Override
				public void valueChanged(ListSelectionEvent e) {
					int row = table.getSelectedRow();
					int col = table.getSelectedColumn();
					if (row != -1){ /* Cos jest zaznaczone */
					        int modelRow = table.convertRowIndexToModel(row); /* Potrzebne tylko, gdy jest sortowanie w tabeli */
					        Object value =table.getModel().getValueAt(modelRow, col); /* Pobranie wartości */
					        textField.setText(String.valueOf(value));
					}
					
				}
				
				
			});
			
			
			add(table, BorderLayout.CENTER);
			JPanel fieldPanel = new JPanel(new FlowLayout());
			textField = new JTextField(20);
			fieldPanel.add(textField);
			add(fieldPanel, BorderLayout.SOUTH);
			pack();
			setVisible(true);
		}
		
	}

}

Pozdrawiam

0

Dziękuję za pomoc. :)
Może wiecie, dlaczego pojawia się błąd:
The method getSelectedRow() is undefinied for the type Uruchom oraz
The method getModel() is undefinied for the type Uruchom ?
Klasa Uruchom to moja klasa główna (main). Klasa Dane to klasa, w której mam tabelę LinkedList<Film>.
Próbuję w klasie Uruchom wpisać:

public int getSelectedRow() {
return 0;
}

public Dane getModel() {
return null;
}

Ale to chyba za mało :-/

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