日期:2014-05-20  浏览次数:20841 次

java文件和类的安排
java文件中可以写多个类
也可以写一个类

但是在写图形界面的时候我遇到了问题

假设我就想实现单击button时改变textField中的文字这一功能

如果我把所有的类写在一个文件中,我添加时间相应的时候就可以直接写txtFiled.setText("TEXT");
但是如果我要分开写的话,我就必须把txtField设置成static

请问有什么更好的方法?

------解决方案--------------------
传界面对象给其他类,或者在界面对象设置public static 的方法。
------解决方案--------------------
举个示例,这样好解决问题嘛
------解决方案--------------------
可以设定一个大总管,这个大总管持有对方的引用,举个例子:

所有的类都分开写,不在同一个文件里.
Java code

//大总管
public class Test{
  myAwt m = new myAwt(); 
  public static void main(String[] args) {
     System.out.println(m.i);
  }

}

//另外一个文件的一个类
class myAwt{
  private int i=100;
}

------解决方案--------------------
不是很明白楼主的意思,不知道是不是这样,直接传个引用过去
Java code
package MainUI.java;
import javax.swing.*;
import Listener.java.*;
 
public class MainUI extends JFrame{ 
private JButton jbtn=null; 
private JTextField textField=null; //这里这么写 
public MainUI(){ 
    jbtn=new JButton("click me"); 
    textField=new JTextField(10); 
    Listener ls=new Listener(textField);
    jbtn.addActionListener(ls); 
    //此出省略UI代码若干 
}
public static void main(String[] args){ 
    new MainUI(); 
}
} 

package Listener.java;
import javax.swing.*;
import java.awt.event.*;

public class Listener implements ActionListener{   
private JTextField textField=null;
public Listener(JTextField tf){
    textField=tf;
}
public void actionPerformed(ActionEvent e){ 
        textField.setText("Clicked!");//这里这么写 
} 
}

------解决方案--------------------
探讨
引用:
不是很明白楼主的意思,不知道是不是这样,直接传个引用过去

Java codepackage MainUI.java;
import javax.swing.*;
import Listener.java.*;

public class MainUI extends JFrame{
private JButton jbtn=null;
private JTextField textField=null; //这里这么写
public MainUI(){
jbtn=new JButton("click me");
textField=new JTextField(10);
Listener ls=new …

------解决方案--------------------
探讨
不是很明白楼主的意思,不知道是不是这样,直接传个引用过去

Java codepackage MainUI.java;
import javax.swing.*;
import Listener.java.*;

public class MainUI extends JFrame{
private JButton jbtn=null;
private JTextField textField=null; //这里这么写
public MainUI(){
jbtn=new JButton("click me");
textField=new JTextField(10);
Listener ls=new Listener(textField);
j…