-1

查看下面的代码片段,该方法maxFont.LabelFont(Label tmp, String tmp2)只接受字符串输入,而不接受字符串数组中的元素。当我尝试使用x[i].toString()时,字符串会显示为Label{xxxx}而不是只是xxxx.

// for each column, prompt user to Insert data for that category
for (int i = 0; i < c; i++) {
    maxFont.textFont(y[i]);

    // Add label x[i] prompting for category value
    x[i].setParent(mUpdate);
    maxFont.labelFont(x[i],x[i].toString());
    // Add text field tmp2 to input the new data
    y[i].setParent(mUpdate);
}       
4

4 回答 4

0

由于toString()在这种情况下总是返回Label(xxxx),您可以使用 substrings 或 split 来提取xxxx

这是使用拆分的简洁方法:

Label(xxxx).split( "[\\\\(\\\\)]")[1]

所以在你的代码中你会使用

maxFont.labelFont(x[i],x[i].split( "[\\\\(\\\\)]")[1]);

请注意,需要双反斜杠,括号也是[]

于 2013-04-15T18:35:07.937 回答
0

你试过String.valueOf吗?

于 2013-04-15T18:37:26.873 回答
0

如果x确实是 SWT Label,那么您想要:

x[i].getText()

代替

x[i].toString();
于 2013-04-15T18:39:02.567 回答
0

如果 x 是您的对象 - 覆盖 toString() 或添加您的私有方法。

否则 - 可能您可以将 x 转换为它的类型并使用 apppropeiated 属性。

于 2013-04-15T18:41:39.323 回答