Ciao a tutti ho un problema con l'overriding del etodo compareTo(): praticamente dovrei ordinare delle stringhe in un ArrayList ma in base all'ordine alfabetico di un loro carattere...ad esempio ho le stringhe:
- ciao
- abbastanza
- scemo

e le voglio ordinare in base al 2 carattere, dovrebbero comparirmi così:

- abbastanza
- scemo
- ciao
(b - c -i)

Io ho scritto il seguente codice:

public int compareTo(Object o) {

int carat = Integer.valueOf(carattere.getText());
String frase = String.valueOf((stringa.getText()).charAt(carat));
String fraseO = String.valueOf(((String)(o)).charAt(carat));

System.out.println(carat+" "+frase+" "+fraseO);

if (frase.compareTo(fraseO) == 1) return 1;
if (frase.compareTo(fraseO) == -1) return -1;
if (frase.compareTo(fraseO) == 0) return 0;

throw new UnsupportedOperationException("Not supported yet.");
}

dove carat è il numero del carattere in base al quale fare l'ordinamento, frase è la stringa che prende dalla JTextArea e fraseO è la stringa che confronta...al di là della correttezza dei confronti, quello che non capisco è come mai poprio non entra nel compare (infatti non stampa niente del system.out)..di seguito il contesto del codice:

codice:
public class Ordina extends JPanel implements Comparable,ActionListener {

    private JTextArea stringa,carattere;
    static int x=10, y=10;
    private ArrayList stringhe;
    
    public Ordina(JTextArea stringa, JTextArea carattere) {
        
        this.stringa = stringa;
        this.carattere = carattere;
        stringhe = new ArrayList();
        
    }
    
    
    public void paintComponent(Graphics g){
        
        super.paintComponent(g);
        
        y = 10;
        
        for (int i=0;i<stringhe.size();i++) {
           
        g.drawString((String)stringhe.get(i), x, y);
        
        y += 10;
        
        }
        
    }

    public void actionPerformed(ActionEvent e) {
        
        Graphics g = this.getGraphics();
        
        stringhe.add(stringa.getText());
        
        System.out.println("sono in sort");
        
        Collections.sort(stringhe);
        
        y = 10;
        
        for (int i=0;i<stringhe.size();i++) {
           
        this.repaint();
        
        }
        
        //throw new UnsupportedOperationException("Not supported yet.");
    }

    public int compareTo(Object o) {
        
        int carat = Integer.valueOf(carattere.getText());
        String frase = String.valueOf((stringa.getText()).charAt(carat));
        String fraseO = String.valueOf(((String)(o)).charAt(carat));
        
        System.out.println(carat+"  "+frase+"  "+fraseO);
        
        if (frase.compareTo(fraseO) == 1) return 1;
        if (frase.compareTo(fraseO) == -1) return -1;
        if (frase.compareTo(fraseO) == 0) return 0;
        
        throw new UnsupportedOperationException("Not supported yet.");
    }

}
Ciao ciao grazie