JTextPane在上一行之后打印文本

时间:2014-03-31 12:15:29

标签: java swing console output jtextpane

我有一个带有JTextPane的程序。当我想在其中打印时,我的问题出现了。每次,它将在第一行打印并将其余部分向下移动一行。 如何在文本末尾打印?

我明白了:

//...

public static enum Level {
    CLASSIC,
    MAJ,
    AJOUT,
    SUPRESSION,
    CONFIG;
}

public static void add(Level level,String Message){
    switch(level){
        case CLASSIC:
            try{
                Color BLACK = new Color(0, 0, 0);
                StyleConstants.setForeground(Colors, BLACK);
                Text.insertString(0, "\n\t- Mise à jour # " + Message + " -\n\n", Colors);
            }catch(Exception e) { ConsoleError(); }
            break;
        case MAJ:
            try{
                Color ORANGE = new Color(252, 156, 51);
                StyleConstants.setForeground(Colors, ORANGE);
                Text.insertString(0, Message + "\n", Colors);
            }catch(Exception e) { ConsoleError(); }
            break;
        case AJOUT:
            Color GREEN = new Color(58, 157, 52);
            StyleConstants.setForeground(Colors, GREEN);
            try{
                Text.insertString(0, Message + "\n", Colors);
            }catch(Exception e) { ConsoleError(); }
            break;
        case SUPRESSION:
            Color RED = new Color(183, 19, 0);
            StyleConstants.setForeground(Colors, RED);
            try{
                Text.insertString(0, Message + "\n", Colors);
            }catch(Exception e) { ConsoleError(); }
            break;
        case CONFIG:
            Color BLACK = new Color(0, 0, 0);
            StyleConstants.setForeground(Colors, BLACK);
            try{
                Text.insertString(0, Message + "\n", Colors);
            }catch(Exception e) { ConsoleError(); }
            break;
    }
}
//...

1 个答案:

答案 0 :(得分:2)

而不是做

Text.insertString(0, Message + "\n", Colors);

这样做

Text.insertString(Text.getLength(), Message + "\n", Colors)

0是索引位置,插入文本。使用Text.getLength(),它将始终插入到最后。

有关详细信息,请参阅此处:JTextPane appending a new string