【问题标题】:Passing a value from a JFrame to a JPanel将值从 JFrame 传递到 JPanel
【发布时间】:2011-02-11 12:10:36
【问题描述】:

我在使用 JFrame 和 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;



}

有没有办法传递值“名称”?我可以扩展 JPanel 并创建一个新类和一个新方法,但这需要对许多其他类进行大量修改。

更多信息: 我接受了建议并扩展了 JPanel,这实际上真的很轻松。

NewFileMaker 类在这样的另一个类中被调用

new NewFileMaker(new GeneratePanel(getFileName()));

getfileName() 在哪里得到我想要的名字。其实解决方法很简单,我要向大家道歉。很抱歉浪费了您的时间!

【问题讨论】:

  • JPanel 应该如何处理这个字符串(名称)?
  • 正如博格丹所说,这取决于你要如何处理这个字符串
  • 各种各样的东西,但主要是创建一个以名称为标题的文本文件,并在文件内的各个地方使用该名称。

标签: java jframe jpanel


【解决方案1】:

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

【讨论】:

    【解决方案2】:

    JPanel 没有字符串构造函数,所以不能这样传递。

    您可以尝试拨打panel.setName(name)

    【讨论】:

    • 我现在正在尝试。 j.setName(name) 和 Panel 内部 this.getName(),但它一直返回 null。
    • @JJG 面板“内部”是什么意思?请给我们一些代码
    猜你喜欢
    • 1970-01-01
    • 2021-09-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-02
    • 2013-12-17
    相关资源
    最近更新 更多