jdialog如何更新父jframe的数据

可以在jframe的main方法中自身new出的类保留起来,这里比方你的JFrame叫ListPrice

public class ListPrice extends JFrame
 {
  private static ListPrice thisClass;
  //你的其他操作。。。。
}

public static void main(String[] args)
   {
    SwingUtilities.invokeLater(new Runnable()
     {
      public void run()
       {
        thisClass = new ListPrice();
        thisClass.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        thisClass.setVisible(true);
       }
     });
   }

//这个ListPrice中有一个JComboBox,列举了打印机的种类。有一个方法是刷新表中的DefaultComboBoxModel,一个方法是从数据库中获得打印机的类型。现在要做的是,如何在弹出的PrintSetDialog中变动了打印机之后,能在ListPrice中立即显示。

//ListPrice添加如下操作
public DefaultComboBoxModel getPrintsDefaultComboBoxModel()
   {
        //从数据库中查出打印机
   }

//刷新打印机Model
public void flushJComboBox()
   {
    jComboBox.setModel(getPrintsDefaultComboBoxModel());
   }

//生成JComboBox
private JComboBox getJComboBox()
   {
    if (jComboBox == null)
     {
      jComboBox = new JComboBox(getPrintsDefaultComboBoxModel());
     }
    return jComboBox;
   }

//创建打印机设置窗口是将,父jframe的参数传递进去
PrintSetDialog pb = new PrintSetDialog(thisClass);

//在弹出的PrintSetDialog中的添加关闭操作
private ListPrice pl;

public class PrintSetDialog extends JDialog
 {
    public PrintSetDialog(ListPrice owner) //获得父窗体的对象
   {
    super(owner);
    initialize();
    pl = owner;
   }

//你的其他操作。。。。

//添加一个关闭PrintSetDialog 时,刷新ListPrice 中的JComboBox的方法。
this.addWindowListener(new java.awt.event.WindowAdapter()
     {
      public void windowClosing(java.awt.event.WindowEvent e)
       {
        System.out.println("设置打印机窗口准备关闭!"); 
        pl.flushJComboBox();  //对父窗体刷新
       }
     });

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值