我使用JFrame和JPanels时遇到了烦人的问题。我有一个扩展JFrame的类,在构造函数中我有一个字符串。我想在构造函数中将此值传递给JPanel。我想不出怎么做。这就是我所做的:
public class NewFileMaker extends JFrame{
private String name;
public NewFileMaker(JPanel j, String newfilename){
setTitle("New File");
setResizable(false);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.add(j);
this.pack();
this.name = newfilename;
}
有没有办法传递值“name”?我可以扩展JPanel并创建一个新类和一个新方法,但它需要对很多其他类进行大量的修改。
更多信息: 我接受了建议并扩展了JPanel,这实际上是非常无痛的。
NewFileMaker类在另一个类中调用,如
new NewFileMaker(new GeneratePanel(getFileName()));
其中getfileName()获取我想要的名称。实际上解决方案很简单,我必须向所有人道歉。抱歉浪费你的时间!
答案 0 :(得分:0)
我认为最好的解决方案是扩展jpanel。 无论如何,如果你不能这样做,你可以添加到jframe一个PropertyChangeListener。
答案 1 :(得分:0)
JPanel没有字符串构造函数,因此您无法以这种方式传递它。
您可以尝试拨打panel.setName(name)
。