java如何带颜色
在Java中实现带颜色的输出通常可以通过控制台的特殊转义序列或图形界面库(如Swing、JavaFX)完成。以下是几种常见方法:
控制台输出颜色(ANSI转义码)
适用于支持ANSI转义码的终端(如Linux/macOS终端或Windows 10+的PowerShell/CMD):
public class ConsoleColor {
// ANSI颜色代码
public static final String RESET = "\u001B[0m";
public static final String RED = "\u001B[31m";
public static final String GREEN = "\u001B[32m";
public static void main(String[] args) {
System.out.println(RED + "红色文本" + RESET);
System.out.println(GREEN + "绿色文本" + RESET);
}
}
常用ANSI颜色代码:

\u001B[30m黑色\u001B[31m红色\u001B[32m绿色\u001B[33m黄色\u001B[34m蓝色
Swing图形界面颜色
使用java.awt.Color类设置组件颜色:
import javax.swing.*;
import java.awt.*;
public class SwingColor {
public static void main(String[] args) {
JFrame frame = new JFrame("颜色示例");
JLabel label = new JLabel("彩色文本");
label.setForeground(Color.RED); // 文字颜色
label.setBackground(Color.YELLOW); // 背景色
label.setOpaque(true); // 启用背景色
frame.add(label);
frame.setSize(300, 200);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
}
JavaFX颜色设置
使用javafx.scene.paint.Color类:

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Label;
import javafx.scene.layout.StackPane;
import javafx.stage.Stage;
public class JavaFXColor extends Application {
@Override
public void start(Stage stage) {
Label label = new Label("彩色文本");
label.setStyle("-fx-text-fill: #FF0000; -fx-background-color: #00FF00;");
Scene scene = new Scene(new StackPane(label), 300, 200);
stage.setScene(scene);
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
第三方库(JColor)
通过Maven引入jcolor库简化控制台着色:
<dependency>
<groupId>com.diogonunes</groupId>
<artifactId>JColor</artifactId>
<version>5.3.1</version>
</dependency>
示例代码:
import com.diogonunes.jcolor.Attribute;
import static com.diogonunes.jcolor.Ansi.colorize;
public class JColorExample {
public static void main(String[] args) {
String text = colorize("彩色文本", Attribute.RED_TEXT(), Attribute.YELLOW_BACK());
System.out.println(text);
}
}
注意事项
- ANSI转义码在旧版Windows CMD中可能不生效,需通过
System.out.println(System.console() != null)检查支持性 - 图形界面方案需确保运行环境支持GUI
- 颜色代码需与背景色形成足够对比以保证可读性






