Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/346.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将值从JFrame传递到JPanel_Java_Jframe_Jpanel - Fatal编程技术网

Java 将值从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

我在使用JFrames和JPanel时遇到了一个恼人的问题。我有一个扩展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()获取我想要的名称。事实上,解决办法很简单,我不得不向大家道歉。对不起,浪费了你的时间

我认为最好的解决方案是扩展jpanel。
无论如何,如果你不能做到这一点,也许你可以在jframe中添加一个PropertyChangeListener。

JPanel没有字符串构造函数,所以你不能以那种方式传递它


您可以尝试调用
panel.setName(name)

JPanel应该如何处理此字符串(name)?正如Bogdan所说,这取决于您将如何处理此字符串各种事情,但主要是创建一个以名称为标题的文本文件,并在文件中的各个位置使用该名称。我现在正在尝试。j、 setName(name),并且在面板内是this.getName(),但它一直返回null。@JJG“在”面板内是什么意思?请给我们看一些代码