我正在尝试在Java中创建一个JFrame,其中包含一个JPanel,它将包含一个组件。
我知道如何使用
添加组件
panelname.add(组分);
但我正在创建一个基于JTextField的类,并希望将整个CLASS作为组件添加到JPanel中,但是当我这样做时,Eclipse告诉我:
类型Container中的方法add(Component)不适用于参数(BetterText)
(BetterText是班级的名称)
所有它基本上都是,是一个带有方法等的JTextField设置的类,但我想将该类作为组件添加到JPanel。我查看了JTextField.java类,并且看不到任何有趣的东西,它看起来像普通类一样,但是你能够将该类的实例添加到JPanel,而对于我的,你不能。
任何帮助将不胜感激,谢谢
此外,如果您知道解决方案,请发布示例类。
编辑:添加了代码。
public BetterText(String defaultText) {
super();
//Sets up the textFields colours and the defaultText to display in it.
setProperties();
hasDefault = true;
this.defaultText = defaultText;
textField.addActionListener(this);
}
另一个编辑:
它还扩展了JTextField。
public class BetterText extends JTextField implements ActionListener {
答案 0 :(得分:0)
确保您的JFrame,JPanel和JTextField扩展了正确的类(如果它们是自定义类)。
一些伪代码:
public class BetterText() extends JTextField{
public BetterText(){
super();
}
}
然后创建GUI:
JFrame frame = new JFrame();
JPanel panel = new JPanel();
BetterText textField = new BetterText();
frame.add(panel);
panel.add(textField);
panel.pack();
panel.setVisible(true);
答案 1 :(得分:0)
验证您是否正在导入javax.swing.JComponent,然后使BetterText类继承自JTextField。