Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    Puntatore di un ListIterator in JTextArea

    Ciao a tutti ragazzi.
    Devo creare un progetto per l'uni, in cui creo una lista concatenata con relativi metodi e relativa interfaccia grafica.
    Se per esempio ho questa lista:
    [pippo, topolino, paperino, pluto]
    e il ListIterator è appena stato creato sulla JTextArea starà così:
    [pippo, topolino, paperino, pluto]
    ^
    Se la posizione è 0 così:
    [pippo, topolino, paperino, pluto]
    .........^
    se la posizione è 1 così:
    [pippo, topolino, paperino, pluto]
    .................... ^

    Mi è venuta così la brillante idea di:
    -creare un cont che fa +1 nel next e -1 nel previous
    -creare il toString dell'iteratore in questo modo:
    {
    if(cor==null)
    return"^";
    StringBuilder st= new StringBuilder();
    ListaConcatenata tmp=new ListaConcatenata();
    ListIterator li=listIterator();
    T elem;
    for(int i=0;i<GUI.cont;i++)
    {
    elem=li.next();
    tmp.add(elem);
    }
    for(int i=0;i<tmp.toString().length()+1;i++){
    st.append(" ");}
    st.append("^");
    return st.toString();
    }

    Il problema è che l'apice non sta mai esattamente sotto la virgola!
    Per caso qualcuno può aiutarmi?

  2. #2

    Re: Puntatore di un ListIterator in JTextArea

    Originariamente inviato da OniTakeda
    Il problema è che l'apice non sta mai esattamente sotto la virgola!
    Per caso qualcuno può aiutarmi?
    Ti propongo questa soluzione sotto forma di esempio:
    codice:
    public class Example {
        public static void main(String[] args) {
            LinkedList<String> list = new LinkedList<String>();
            list.add("pippo");
            list.add("topolino");
            list.add("paperino");
            list.add("pluto");
            
            for(int k = -1; k < list.size(); k++){
            	System.out.println( list );
            	System.out.println( example(list, k) );
            	System.out.println();
            }
        }
        
        public static String example(LinkedList<String> list, int index){
        	StringBuffer buffer = new StringBuffer();
        	
        	for(int i = 0; i <= index; i++){
        		for(int j = 0; j < list.get(i).length() + 1; j++)
        			buffer.append(' ');
        	}
        	for(int i = 0; i < index; i++)
        		buffer.append(' ');
        	buffer.append("^");
        	
        	return buffer.toString();
        }
    }
    Stampa tutti i possibili stati.

  3. #3
    Mmmmh, lo provo, il get(i) cosa fa?

  4. #4
    Originariamente inviato da OniTakeda
    Mmmmh, lo provo, il get(i) cosa fa?
    Restituisce l'oggetto in posizione i nella lista.

  5. #5
    Il problema è che nella JTextArea lo spazio occupa meno rispetto agli altri caratteri, quindi se per ogni carattere appendo uno spazio alla fine l'apice non sarà allineato.

  6. #6
    Ho risolto settando un font monospazio come Courier.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.