2011-09-16 7 views
1

コンソールアプリケーションを書くと(ここで言及する価値のない日常的なI/Oタスクのために)、私は可読性のためにテキストを多色にする必要があると決めました。私はSwingに慣れていないコマンドプロンプトにそれを保存したいと思っていましたが、それを行う方法がない限り、私はSwing APIを見て何も見つけられませんでした。Javaで簡単に色付けされたテキスト

理想的には、私は私が以前に印刷されていたテキストを単にループ、発色情報を挿入することができるように

for(int i=0; i<aString.length(); i++){ 
    if(aString.charAt(i) == '?'){ 
     String pre = aString.substring(0,i); 
     String post = aString.substring(i); 
     aString = pre + red("?") + post; //As you can see by red("?"), I have no idea what I'm doing 
    } 
} 

ようなものを使用し、それを表示することができると思います。

誰でも正しい方向に向けることができますか?メソッド、クラス、スニペット、何か?

+0

私はすべてのコンソールは、色と色のマークアップを扱うことができないので、コンソール移植性の問題があるかもしれないと思います。 Linuxには 'ncurses'がありますが、Java APIを持っていますか? – pupssman

答えて

1

私はあなたがMessage Consoleからいくつかのアイデアを得るかもしれないスイング

と経験の浅いもの、コマンドプロンプトでそれを維持するのが好きたでしょう。

enter image description here

1

swing api

Link参照は、テキストの色を含むJLabelで利用可能なすべての機能を使用するための小さな一例です。

あなたはちょうどその異なった色でテキストを表示したい場合は、次の

import java.awt.Color; 
import java.awt.Dimension; 
import java.awt.Font; 
import java.awt.Graphics; 

import javax.swing.JFrame; 
import javax.swing.JPanel; 

public class MainClass extends JPanel { 

    public void paint(Graphics g) { 
    Dimension d = this.getPreferredSize(); 
    int fontSize = 20; 

    g.setFont(new Font("TimesRoman", Font.PLAIN, fontSize)); 

    g.setColor(Color.red); 

    g.drawString("Hello 1", 10, 20); 

    g.setColor(Color.black); 

    g.drawString("Hello 2", 30, 50); 
    } 

    public static void main(String[] args) { 
    JFrame frame = new JFrame(); 
    frame.getContentPane().add(new MainClass()); 

    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); 
    frame.setSize(200,200); 
    frame.setVisible(true); 
    } 
} 
4

を着色が期待されるところHTML形式で出力あなたの文字列がタグを追加することができます。次に、HTMLをJLabelまたはJTextPaneに割り当てます。

関連する問題