0

代码已大大简化,仅突出显示问题。我也不确定这是否是解决此问题的最佳方法。

我正在尝试制作一个可以具有任何单个摆动组件和一组通用方法来编辑组件的对象。在这种情况下,如果组件是 JLabel 并返回是否成功,则具有设置组件文本的方法。

package table;

import java.awt.Component;

public class CompTest
{
    private Component comp;
    public CompTest(Component C)
    {
        comp=C;
    }

    public boolean setText(String S)
    {
        if(comp instanceof javax.swing.JLabel)
        {
            comp.setText(S); //error
            return true;
        }
        return false;
    }
}

该对象的创建方式类似于;

...
CompTest comp1=new CompTest(new javax.swing.JLabel());
...

我正在使用 Netbeans IDE 7.2,并在包含“//error”的行(在第一个代码块中)给我一个错误;

cannot find symbol
 symbol: method setText(String)
 location: variable comp of type Component

我该如何解决这个问题,如果没有(我怀疑)我如何让 Netbeans 玩得很好?

4

3 回答 3

4

投射到JLabel

((javax.swing.JLabel)comp).setText(S);
于 2013-01-16T09:33:31.943 回答
4

该类Component没有名为 的方法setText

您必须comp先转换为 JLabel,然后才能调用该方法,例如:

((javax.swing.JLabel)comp).setText(S);
于 2013-01-16T09:34:29.273 回答
0

因为 comp.setText(S); //error不可用

尝试comp.setName()

于 2013-01-16T09:35:09.840 回答