Java 将值从JFrame传递到JPanel
我在使用JFrames和JPanel时遇到了一个恼人的问题。我有一个扩展JFrame的类,在构造函数中有一个字符串。我想把这个值也传递到构造函数中的JPanel中。我想不出怎么做。这就是我所做的:Java 将值从JFrame传递到JPanel,java,jframe,jpanel,Java,Jframe,Jpanel,我在使用JFrames和JPanel时遇到了一个恼人的问题。我有一个扩展JFrame的类,在构造函数中有一个字符串。我想把这个值也传递到构造函数中的JPanel中。我想不出怎么做。这就是我所做的: public class NewFileMaker extends JFrame{ private String name; public NewFileMaker(JPanel j, String newfilename){ setTitle("New File"); set
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()获取我想要的名称。事实上,解决办法很简单,我不得不向大家道歉。对不起,浪费了你的时间 我认为最好的解决方案是扩展jpanel。
无论如何,如果你不能做到这一点,也许你可以在jframe中添加一个PropertyChangeListener。JPanel没有字符串构造函数,所以你不能以那种方式传递它
您可以尝试调用
panel.setName(name)
。JPanel应该如何处理此字符串(name)?正如Bogdan所说,这取决于您将如何处理此字符串各种事情,但主要是创建一个以名称为标题的文本文件,并在文件中的各个位置使用该名称。我现在正在尝试。j、 setName(name),并且在面板内是this.getName(),但它一直返回null。@JJG“在”面板内是什么意思?请给我们看一些代码