本来可以直接调用jdialog的,但是工作需要,我就尝试了,一个jframe来调用另一个jframe。
需求:
在一个jframe1按下按钮来调出另一个jframe2;
当在jframe2上面选择yes按钮的时候,jframe1有相应的变化。
做法:
第一个功能好实现:
jframe2.main(new String[]{});
或者是new jfram2(需要的参数).setVisible(true)
第二个功能:
刚开始的想法是自己在jframe1建一个static的方法,然后再jframe2上面进行调用。但是发现不行,如果是static的方法,那么是无法调用jframe1的各种组件的,所以,用第二种方法,做一个public,非static的方法,然后用第二种方法也就是构造函数调用jframe2,在构造的时候,把jframe1的对象传过去,然后在jframe2 中用set方法来接收,然后直接调用这个对象的刚才那个方法就可以了。
代码片段:
1.调用
MarketTradePOPUI marketTradePOPUI= new MarketTradePOPUI(tradeAllocationList,this);
marketTradePOPUI.setVisible(true);
2.方法
public void PopYes()
{
jButton8.setVisible(true);//把ok也就是提交按钮激活。
jButton9.setVisible(true);
jComboBox1.setEnabled(false);
jComboBox2.setEnabled(false);
}
3.调用
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
marketTradeUI.setEnabled(true);
marketTradeUI.PopYes();
this.dispose();
}