import javax.swing.*;
import java.awt.*;
import java.awt.event.*;/*TestCfgGUI类*/
public class TestCfgGUI extends JDialog{
TestGUI testGUI;

private JTextField aTextField = new JTextField();
TestCfgGUI(TestGUI testGUI){
this.testGUI = testGUI;
setSize(200, 100);
this.add(aTextField);
setVisible(true);
}
}/*Test类*/
public class Test {
TestGUI testGUI;


Test(){
testGUI = new TestGUI(this);
}

public static void main(String [] args){
new Test();
}
}
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;/*TestGUI类*/
public class TestGUI extends JFrame{
Test test;
private JButton testButton = new JButton("Test");
TestGUI(Test test){
this.test = test;
this.setSize(200, 100);
this.add(testButton);
testButton.addActionListener(new ButtonEvent());
this.addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent we){
System.exit(0);
}
});
this.setVisible(true);
}

class ButtonEvent implements ActionListener{
public void actionPerformed(ActionEvent e){
new TestCfgGUI(test.testGUI);
}
}
}
/*StrParam类*/
public class StrParam {
private String str = "Test";}
要求:1.实现StrParam类中的str参数显示在TestCfgGUI的JTextField中

解决方案 »

  1.   

    2.任意添加声明,方法,原则上不改变private的属性。
      

  2.   

    /*Test类*/ 
    public class Test { 
    TestGUI testGUI;
    /*********新添加****/
    StrParam sp;
    /***************/
    Test(){ 
    testGUI = new TestGUI(this); 
    sp = new StrParam();
    } public static void main(String [] args){ 
    new Test(); 


    /*StrParam类*/ 
    public class StrParam { 
    private String str = "Test"; 
    /*********新添加*********/
    String getStr() {
    return str;
    }
    /******************/
    } /*TestGUI类*/ 
    public class TestGUI extends JFrame{ 
    Test test; 
    private JButton testButton = new JButton("Test"); 
    TestGUI(Test test){ 
    this.test = test; 
    this.setSize(200, 100); 
    this.add(testButton); 
    testButton.addActionListener(new ButtonEvent()); 
    this.addWindowListener(new WindowAdapter(){ 
    public void windowClosing(WindowEvent we){ 
    System.exit(0); 

    }); 
    this.setVisible(true); 

    /********新添加*************/
    String getTestStr() {
    return test.getStr();
    }
    /*********************/
    class ButtonEvent implements ActionListener{ 
    public void actionPerformed(ActionEvent e){ 
    new TestCfgGUI(test.testGUI); 



    /*TestCfgGUI类*/ 
    public class TestCfgGUI extends JDialog{ 
    TestGUI testGUI; //修改
    private JTextField aTextField = null;TestCfgGUI(TestGUI testGUI){ 
    this.testGUI = testGUI; // 添加
     aTextField = new JTextField(testGUI.getTestStr()); 
    aTestField.setString
    setSize(200, 100); 
    this.add(aTextField); 
    setVisible(true); 

      

  3.   

    你都命名为StrParam了,为什么不直接把这个对象直接传过去呢
      

  4.   

    /*TestGUI类*/  中好像
    /********新添加*************/ 
    String getTestStr() { 
    return test.getStr(); 

    /*********************/ 
    有问题
      

  5.   

    package test;import javax.swing.*;
    import java.awt.*;
    import java.awt.event.*;/*******************************************************************************
     * @create date Apr 3, 2008
     ******************************************************************************/
    /* TestCfgGUI类 */public class Test {
    TestGUI testGUI; Test() {
    testGUI = new TestGUI(this);
    } public static void main(String[] args) {
    new Test();
    }
    }class TestCfgGUI extends JDialog {
    TestGUI testGUI; private JTextField aTextField = new JTextField(); TestCfgGUI(TestGUI testGUI) {
    this.testGUI = testGUI;
    setSize(200, 100);
    this.add(aTextField);
    aTextField.setText(testGUI.getSS().getString());
    setVisible(true);
    }
    }/* TestGUI类 */
    class TestGUI extends JFrame {
    Test test;
    private JButton testButton = new JButton("Test");
    private StrParam ss; TestGUI(Test test) {
    ss = new StrParam();
    this.test = test;
    this.setSize(200, 100);
    this.add(testButton);
    testButton.addActionListener(new ButtonEvent());
    this.addWindowListener(new WindowAdapter() {
    public void windowClosing(WindowEvent we) {
    System.exit(0);
    }
    });
    this.setVisible(true);
    }

    public StrParam getSS(){
    return ss;
    } class ButtonEvent implements ActionListener {
    public void actionPerformed(ActionEvent e) {
    new TestCfgGUI(test.testGUI);
    }
    }
    }class StrParam { 
    private String str = "Testing";  public String getString(){
    return str;
    }

    合成一个java文件了,直接编译一下运行就行了
      

  6.   

    1.实现StrParam类中的str参数显示在TestCfgGUI的JTextField中你既然需要把StrParam类中的str参数传递给TestCfgGUI,那你就在StrParam类里添加一个public String getStr(),
    然后在TestCfgGUI类里添加一个private String parm;然后写一个构造方法 
    public TestCfgGUI() {
    parm = new StrParam().getStr();
    }
    这下ok了吧?