Richten Sie Zeichenfolgen in Spalten in JTextArea

Will ich drucken Strings in JTextArea, und richten Sie Sie ordnungsgemäß. Es ist schwer zu erklären, so werde ich hochladen, der Screenshot von dem, was ich bin versucht zu erreichen.

Richten Sie Zeichenfolgen in Spalten in JTextArea

Also Strings printed in jeder Zeile gedruckt aus Papier-Objekt, das die Parameter (id, Titel, Autor, Datum, Titel). Das Lesen der Daten aus einer text-Datei gespeichert ist, in eine LinkedList mit loadPaper () - Funktion.

Dann displayPapers () - Funktion wird verwendet, um display-Inhalte von der Papier-Objekt, um die JTextArea.
displayPapers() ist nachfolgend aufgeführt:

/** Print all Paper object present in the LinkedList paperList to textArea */
public void displayPapers(){
    //clear textArea before displaying new content
    displayTxtArea.setText("");

    Paper currentPaper;
    ListIterator<Paper> iter = paperList.listIterator();

    while(iter.hasNext()){
        currentPaper = iter.next();
        String line = currentPaper.toString();

        if("".equals(line)){
            continue;
        } //end if

        String[] words = line.split(",");
        displayTxtArea.append   ("  " 
                                + padString(words[0],30) 
                                + padString(words[1],30) 
                                + "    " 
                                + padString(words[2],30) 
                                + "  " 
                                + padString(words[3],30)  
                                + padString(words[4],30) 
                                + "\n");

        System.out.println(words);
        //displayTxtArea.append(currentPaper.toString());
    } //end while

    displayTxtArea.append("  Total " + noOfPapers + " entries!");

} //end showAllPaper

Den padString () - Funktion fügt Leerzeichen an den String so, dass alle von Ihnen haben die gleiche Anzahl von Wörtern. PadString() ist nachfolgend aufgeführt:

/** Add spaces to Strings so that all of the are of same number of characters
 *  @param str  String to be padded
 *  @param n    total number words String should be padded to
 * @return str  Padded string 
 */
private String padString(String str, int n){
    if(str.length() < n){
        for(int j = str.length(); j < n; j++){
            str += " ";
        } //end for
    } //end if
    return str;
} //end padString

Habe ich gearbeitet für eine Weile, aber kann immer noch nicht die Lösung zu erhalten. Wie Sie sehen können das Bild oben, nicht alles ist perfekt aufeinander abgestimmt, wie vorgesehen.

Wie kann ich richten Sie Sie optimal aus, so dass es später schöner aussieht? Danke.

  • Warum nimmst du nicht eine JTable? Es scheint besser geeignet für die Anzeige von Daten in Spalten.
  • Ich gehe lieber für eine JTable, die wird geben Ihnen die Flexibilität, um das Spiel mit Spalte Größe und Lage usw.
InformationsquelleAutor Subash | 2011-12-16
Schreibe einen Kommentar