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"; public String getStr(){
return this.str;
}
} 现在在写一个比较大型的程序,遇到了一个类似上面的一个问题:
1.把StrParam类中的str参数传递给TestCfgGUI类中TextField,不要改变此4个文件的大体结构,可以添加声明、方法;
2.StrParam类,TestGUI类,TestCfgGUI类中只能写方法;其方法的实现最好在Test类中
3.一些不直接实例化StrParam类,然后直接传递给TextField的就不要说了
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"; public String getStr(){
return this.str;
}
} 现在在写一个比较大型的程序,遇到了一个类似上面的一个问题:
1.把StrParam类中的str参数传递给TestCfgGUI类中TextField,不要改变此4个文件的大体结构,可以添加声明、方法;
2.StrParam类,TestGUI类,TestCfgGUI类中只能写方法;其方法的实现最好在Test类中
3.一些不直接实例化StrParam类,然后直接传递给TextField的就不要说了
this.testGUI = testGUI;
setSize(200, 100);
this.add(aTextField);
setVisible(true);
}
} 给TestCfgGUI增加一个set方法,把StrParam传过去,
这个构造函数就不要了,改成init方法.不然的话 你就只有改constructor的参数.
TestGUI testGUI;
private StrParam param ;
private JTextField aTextField = new JTextField();
TestCfgGUI(TestGUI testGUI,StrParam param){
this.param=param;aTextField.setText(param.getStr());this.testGUI = testGUI;
setSize(200, 100);
this.add(aTextField);
setVisible(true);
}
} 差不多就这样子了,楼主努力阿.
对了,参数传递我也曾想过,可是你能明确的说一下,各个类里还需要加什么声明,
还有StrParam没有实例话啊,在那个位置上实例化StrParam~~~~~能在详细一点吗???
比如说new TestCfgGUI(test.testGUI)应该改成什么??
public void actionPerformed(ActionEvent e){
//实例化StrParam
StrParam param = new StrParam();
//传递过去
new TestCfgGUI(test.testGUI,param);
}
}
}
楼主的实践太少,慢慢练习吧.
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,test.sp); //更改
}
}
}import javax.swing.*;
import java.awt.*;
import java.awt.event.*;/*TestCfgGUI类*/
public class TestCfgGUI extends JDialog{
TestGUI testGUI;
/*添加*/
StrParam strParam;
/*****/
private JTextField aTextField = new JTextField();
TestCfgGUI(TestGUI testGUI,StrParam strParam){ //更改
this.testGUI = testGUI;
/*添加*/
this.strParam = strParam;
/*****/
setSize(200, 100);
this.add(aTextField);
aTextField.setText(strParam.getStr());
setVisible(true);
}
}
/*Test类*/
public class Test {
TestGUI testGUI;
/*添加*/
StrParam sp;
/***/
Test(){
sp = new StrParam();
/*添加*/
testGUI = new TestGUI(this);
/****/
}
public static void main(String [] args){
new Test();
}
}/*StrParam类*/
public class StrParam {
private String str = "Test";
public String getStr() {
return str;
}
}