【问题标题】:How to have text with multiple colours in java?如何在java中拥有多种颜色的文本?
【发布时间】:2017-02-01 18:25:50
【问题描述】:

我正在尝试制作拼写检查器,结果应该是一个窗口,其中突出显示了拼写错误的单词。文本存储在一个数组中(当前),缺失单词的 id 被排序在另一个数组中。我该怎么做呢?

编辑:这是我目前所拥有的,但它似乎不起作用。

int l = 0;
String txtstring = "<html>";
for(int i = 0; i<textArray.length ; i++){
    if(placement[l].equals(i)){
        l++;
        txtstring = txtstring + "<font color = red>" + textArray[i] + "</font>" + " ";
     } else {
        txtstring = txtstring + textArray[i] + " ";
    }
}
txtstring = txtstring + "</html>";

【问题讨论】:

  • 可能通过编写代码。你以前写过代码吧?
  • 哇,感谢您的启发性回应。
  • 这并不意味着不屑一顾。在不知道您是否了解 Swing 的基础知识的情况下,我如何开始解决您的问题?事实上,我什至不确定你想在 Swing 中显示你的文本;我只是根据jlabel 标签的存在来猜测。您需要描述您的程序的当前状态,以及迄今为止您尝试过的内容,以便让我们知道您目前的经验水平。
  • 哦,对了。我的错。我以前用过swing,但在一个非常基础的水平上。还添加了我设法将其散列在一起的代码,这至少可以将其放入框架但不会对其着色。
  • 您首先将您的单词与placement[0] 匹配,并且只有当placement[0] 匹配时,您才会检查后续单词是否与placement[1] 匹配。这意味着如果placement{ "qwik", "broun", "fawx" },“quick broun fawx”将导致零个红色单词。这是你的意图吗?

标签: java arrays user-interface colors jlabel


【解决方案1】:

复制粘贴 OP 所做的最后一次编辑:

变化

if(placement[l].equals(i)){

if(Integer.parseInt(placement[l])==i){

成功了,结果是这样的:

int l = 0;
String txtstring = "<html>";
for(int i = 0; i<textArray.length ; i++){
    if(Integer.parseInt(placement[l])==i){
        l++;
        txtstring = txtstring + "<font color = red>" + textArray[i] + "</font>" + " ";
     } else {
        txtstring = txtstring + textArray[i] + " ";
    }
}
txtstring = txtstring + "</html>";

【讨论】:

    猜你喜欢
    • 2012-02-15
    • 2019-10-01
    • 2014-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-07-16
    • 2020-08-19
    • 1970-01-01
    • 2016-10-10
    相关资源
    最近更新 更多