抱歉,我刚刚审核了我的小项目,并意识到我不想在JFrame之间传输数据。
就像
Public Class JFrame2 Extends javax.swing.JFrame
{
public void tryingToDoSomething(int i)
{
/*Do something to call setSomething().*/
}
}
Public Class JFrame1 Extends javax.swing.JFrame
{
private int something;
public int setSomething(int something)
{
this.something = something;
}
private JFrame2 jFrame2 = new JFrame2();
public void runThings()
{
jFrame2.setVisible(true);
}
}
我在第一个JFrame中有一些内容,我调用第二个JFrame,第二个JFrame,我想要更改第一个JFrame的内容(就像在我的例子中,JFrame1有" int something"和方法" setSomething()",我调用了JFrame2并使用它的方法" tryingToDoSomething(int i)"来设置" int的内容"的JFrame1 )。
非常感谢你的答案。
答案 0 :(得分:0)
你应该尝试这样做:
public Class JFrame1 extends javax.swing.JFrame{
private int something;
public int getSomething()
{
return something;
}
private JFrame2 jFrame2 = new JFrame2();
public void runThings()
{
jFrame2.tryingToDoSomething();
jFrame2.setVisible(true);
}
}
然后
public Class JFrame2 extends JFrame1 {
public void tryingToDoSomething() {
/*Do something to call getSomething().*/
getSomething();
}
}
答案 1 :(得分:0)
如何通过第二个JFrame调用第一个JFrame的方法 方法
您需要在第二帧中使用相同的引用。您可以尝试以下方法:
public class JFrame2 extends javax.swing.JFrame
{
private JFrame1 frame1;// reference
public JFrame2(JFrame1 frame1) {
this.frame1 = frame1;// save reference
}
public void tryingToDoSomething(int i)
{
frame1.setSomething(i);//do something here
}
}
public class JFrame1 extends javax.swing.JFrame
{
private int something;
public int getSomething()
{
return something;
}
public int setSomething(int something)
{
this.something = something;
}
private JFrame2 jFrame2 = new JFrame2(this);// note `this`
public void runThings()
{
jFrame2.setVisible(true);
}
}