带有JPanel的Java组件
我试图用Java创建一个JFrame,其中包含一个JPanel,它将保存一个组件。 我知道如何使用 panelname.addcomponent; 但是我正在基于JTextField创建一个类,并希望将整个类作为组件添加到JPanel中,但是当我这样做时,Eclipse告诉我: 类型容器中的方法addComponent不适用于参数BetterText BetterText是该类的名称 所以它基本上就是一个带有JTextField设置和方法的类,但我想将该类作为组件添加到JPanel中。我查看了JTextField.java类,在那里看不到任何有趣的内容,它看起来像是一个普通类,但您可以将该类的实例添加到JPanel中,而使用我的,您不能。 任何帮助都将不胜感激,谢谢。 另外,如果您知道解决方案,请发布一个示例类 编辑:添加代码带有JPanel的Java组件,java,swing,jframe,jpanel,jtextfield,Java,Swing,Jframe,Jpanel,Jtextfield,我试图用Java创建一个JFrame,其中包含一个JPanel,它将保存一个组件。 我知道如何使用 panelname.addcomponent; 但是我正在基于JTextField创建一个类,并希望将整个类作为组件添加到JPanel中,但是当我这样做时,Eclipse告诉我: 类型容器中的方法addComponent不适用于参数BetterText BetterText是该类的名称 所以它基本上就是一个带有JTextField设置和方法的类,但我想将该类作为组件添加到JPanel中。我查看了J
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 {
如果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);
验证您是否正在导入javax.swing.JComponent,然后使BetterText类从JTextField继承。请添加一些代码。BetterText从何扩展?BetterText应该扩展JTextField,您可能使用的是组合,而不是继承。感谢您提供的示例,我已经这样做了,但它只是告诉我将“textField”的类型更改为Component。@user3640377奇怪,JTextField是一个组件。你确定你没有在什么地方打错字吗?也许可以添加一些代码。谢谢,出于某种原因,它神奇地开始工作后,一些摆弄。再次感谢您的快速回复。请记住扩展您的自定义类,如果没有它,它只是另一个随机自定义类。