[problem] Button kliknięcie

[problem] Button kliknięcie
ST
  • Rejestracja:ponad 14 lat
  • Ostatnio:około 14 lat
  • Postów:4
0

Witam W sumie to jestem zielony jeśli chodzi o język Java, chociaż wydaję mi się, że podstawy znam, no ale nieważne przejdźmy do sedna sprawy: Chciałbym aby po kliknięciu w przycisk nastąpiła akcja :) Wydawało mi się to proste, ale okazało się, że nie umiem sobie z tym poradzić. O to część kodu (myślę że starczy):
Tworze przycisk:

Kopiuj
 JButton sortuj=new JButton("sortuj wg.Ceny");
		        sortuj.setBounds(new Rectangle(0, 160, 130, 20));
			    frame.add(sortuj);  

następnie tworze Arrayliste :

Kopiuj
final ArrayList<book> lista = new ArrayList<book>(); 
                
		        lista.add(new book("Nazwa", "Autor", cena));  

Oczywiście z konkretnymi danymi książki zamiast nazwy,autora,ceny.
Dalszy kod wygląda następująco:

Kopiuj
 sortuj2.addActionListener(new ActionListener()
		        {
		           public void actionPerformed (ActionEvent e)
		           {
		        	   Collections.sort(lista, new AutorComparator(true)); 
		           }
		        });
		        
		        
		        String[][] dane = new String[lista.size()][]; 
                
		        for (int i = 0; i < dane.length; i++) { 
		           dane[i]=lista.get(i).getData(); 
		        } 
		         
		        
		        
		        JTable table = new JTable(dane, lista.get(0).getHeader()); 
			    JScrollPane scrollPane = new JScrollPane(table);
		        frame.add(scrollPane, BorderLayout.CENTER);

Lista wypisuje się w postaci tabeli, posortować daną kolumnę chcę poprzez Comperator - i to działa póki nie umieszczam Collections.sort w ActionListenerze :) Myślałem, że tak powinien wyglądać ActionListener i aktywować sortowanie, gdy przycisk zostanie kliknięty... Proszę was o pomoc bo czytam, szukam, kombinuje i nie potrafię tego zrobić. Idę nie tą drogą?
Bardzo proszę o pomoc
Pozdrawiam Stagi

edytowany 1x, ostatnio: stagi
AB
  • Rejestracja:ponad 16 lat
  • Ostatnio:ponad rok
0

Sortujesz listę, natomiast w JTable dane masz z dwuwymiarowej tablicy - tak to nie zadziała. Możesz dodać aby za każdym razem po sortowaniu tworzył model (np. DefaultTableModel) i ustawiał go w JTable. Najlepiej jednak przeczytaj sobie o sortowaniu w samym JTable: http://download.oracle.com/javase/tutorial/uiswing/components/table.html#sorting

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.