我是新來的java編程。訪問變量的調用類java
我的問題是:
如何從式2或幀3訪問變量在調用類(內幀1的容器)?
例如:在下面的代碼中,我想要在Frame2中的文本框a1(在PanelA嵌套在Frame1中)中顯示值,並在框架Frame3中顯示Textfield a2(在PanelB嵌套在Frame1中)的值。
這是一個示例代碼:
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
class PanelA extends JPanel implements ActionListener
{
JTextField a1;
JButton b1;
PanelA()
{
a1=new JTextField("");
b1=new JButton("Click me");
b1.addActionListener(this);
add(a1);
add(b1);
}
public void actionPerformed(ActionEvent e)
{
if(e.getSource()==b1){
SwingUtilities.getWindowAncestor(this).setVisible(false);
Frame2 x=new Frame2("Frame2");
x.setSize(Toolkit.getDefaultToolkit().getScreenSize());
x.setVisible(true);
}
}
}
class PanelB extends JPanel implements ActionListener
{
JTextField a2;
JButton b2;
PanelA()
{
a2=new JTextField("");
b2=new JButton("Click me");
b2.addActionListener(this);
add(a2);
add(b2);
}
public void actionPerformed(ActionEvent e)
{
SwingUtilities.getWindowAncestor(this).setVisible(false);
Frame3 x=new Frame3("Frame3");
x.setSize(Toolkit.getDefaultToolkit().getScreenSize());
x.setVisible(true);
}
}
public class Frame1 extends JFrame
{
Frame1(String s)
{
super(s);
setLayout(newFlowLayout(FlowLayout.CENTER));
PanelA x=new PanelA();
x.setSize();
x.setVisible(true);
PanelB y=new PanelB();
y.setSize();
y.setVisible(true);
JTabbedPane pan1=new JTabbedpane();
pan1.addTab("A",x);
pan1.addTab("B",y);
add(pan1);
}
}
public class Frame2 extends JFrame
{
}
public class Frame3 extends JFrame
{
}
調用類幀1是一樣的東西
public class FrameMain
{
public static void main(String[] args)
{
Frame1 x= new Frame1("Frame1");
x.setSize(Toolkit.getDefaultToolkit().getScreenSize());
x.setVisible(true);
}
}
感謝所有的快速回復。 – Ray 2014-09-10 11:46:31