You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

能否将两个不同JFrame关联至单个类?NetBeans下OO实现问题

问题排查与解决步骤

核心问题定位

你代码里output.lbNim.setText(kls.getNim())没生效,但直接调用tKode.getText()能成功,说明问题出在子类kls的Nim数据未被正确存入,或是kls对象的生命周期有问题。

第一步:补全数据存入逻辑

当前代码里缺少将输入框的Nim值存入kls的操作,必须先存再取:

private void bCetakActionPerformed(java.awt.event.ActionEvent evt) {                                       
    // 先把输入的Nim存入kls对象(假设tNim是输入Nim的文本框)
    kls.setNim(tNim.getText());
    
    // 再从kls中读取数据赋值给第二个窗体
    output.lbNim.setText(kls.getNim());
    output.lbKode.setText(tKode.getText());
    output.lbJudul.setText(tJudul.getText());
    output.lbPinjam.setText(tTgl.getText());
    
    this.setVisible(false);
    output.show();
}

第二步:确认kls对象的实例化方式

如果已经存了数据还是拿不到,检查kls是否被重复实例化:

  • 禁止在按钮事件里新建kls对象(比如kls = new 子类A()),否则每次点击都会重置数据。
  • 正确做法是把kls作为窗体类的成员变量,在窗体初始化时仅实例化一次:
// 把kls定义为类的成员变量
private 子类A kls;

// 在窗体构造方法中初始化
public 第一个窗体类() {
    initComponents();
    kls = new 子类A(); // 仅实例化一次,保留数据状态
}

第三步:检查子类A的getNim()方法正确性

确保子类A的getNim()能正确返回存入的数值,示例代码如下:

class 子类A {
    private String nim;
    
    // 赋值方法
    public void setNim(String nim) {
        this.nim = nim;
    }
    
    // 取值方法
    public String getNim() {
        return nim; // 必须返回成员变量nim,不能返回空值或固定字符串
    }
}

内容的提问来源于stack exchange,提问作者Mile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.22 18:34:49