代码已经大大简化,只是突出了问题。我不确定这是解决这个问题的最好方法。
我正在尝试创建一个对象,该对象可以包含任何单个swing组件和一组通用方法来编辑组件。在这种情况下,如果组件是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玩得很好?
答案 0 :(得分:4)
将其投放到JLabel
((javax.swing.JLabel)comp).setText(S);
答案 1 :(得分:4)
班级Component
没有名为setText
的方法。
您必须先将comp
强制转换为JLabel,然后才能调用该方法,例如:
((javax.swing.JLabel)comp).setText(S);
答案 2 :(得分:0)
因为comp.setText(S); //error
不可用
尝试comp.setName()