java如何调用其他类方法中的变量

package newpackage;
import java.awt.event.KeyAdapter;

import java.awt.event.KeyEvent;

import java.text.DateFormat;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import java.util.logging.Level;
import java.util.logging.Logger;
import javafx.scene.chart.PieChart.Data;
import javax.swing.JFrame;

import javax.swing.JPanel;
//窗体类
public class MyFrame extends JFrame {

/**
* @param args
*/
JPanel jPanel;
char charA;
public MyFrame(){
this.setSize(500,100);
this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
this.setTitle("Keylogger");
this.setVisible(true);
this.addKeyListener(new MyKeyListener());
jPanel = new JPanel();
add(jPanel);

}

public static void main(String[] args) {
// TODO Auto-generated method stub
new MyFrame();

}

}
class MyKeyListener extends KeyAdapter{

public void keyPressed(KeyEvent e){

char charA = e.getKeyChar();

String s = null;
try {
s = "You pressed "+charA+" at "+getTime();
} catch (ParseException ex) {
Logger.getLogger(MyKeyListener.class.getName()).log(Level.SEVERE, null, ex);
}
System.out.println(s);
}

private Date getTime() throws ParseException {
Date d = new Date();
String s = null;

s = DateFormat.getDateInstance().format(d);

s = DateFormat.getDateInstance(DateFormat.DEFAULT).format(d);

s = DateFormat.getDateInstance(DateFormat.FULL).format(d);

s = DateFormat.getDateInstance(DateFormat.MEDIUM).format(d);

s = DateFormat.getDateInstance(DateFormat.SHORT).format(d);

DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
s = sdf.format(d);

DateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
s = sdf2.format(d);

DateFormat sdf3 = new SimpleDateFormat("yyyyMMddHHmmss");
s = sdf3.format(d);

s = sdf.format(d);
Date today = sdf.parse(s);

Calendar c = Calendar.getInstance();

return c.getTime();
}

}

如果想新建一个类来调用
class MyKeyListener extends KeyAdapter{
public void keyPressed(KeyEvent e){
char charA = e.getKeyChar();
String s = null;
try {
s = "You pressed "+charA+" at "+getTime();
} catch (ParseException ex) {
Logger.getLogger(MyKeyListener.class.getName()).log(Level.SEVERE, null, ex);
}

System.out.println(s);
}

这里的s,但是不知道该怎么编写

方法1.
新建一个类。然后在调用类中先进行被调用类实例化,然后通过实例化的对象访问。例如:
//先定义一个类
//实例化,调用
方法2.新建一个类,将该类中需要zd被调用的方法设置为静态(static),加了static后,就可以用类名直接调用。然后在调用类中直接通过类名进行访问。调用格式为:类名.方法名(参数表)。例如:
扩展资料:
Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因回此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点
。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应答用程序等

参考资料:
Java
类与类之间的调用--CSDN
温馨提示:答案为网友推荐,仅供参考
第1个回答  2016-12-08
public String  keyPressed(KeyEvent e){ 
char charA = e.getKeyChar(); 
String s = null;
try {
s = "You pressed "+charA+" at "+getTime();
} catch (ParseException ex) {
Logger.getLogger(MyKeyListener.class.getName()).log(Level.SEVERE, null, ex);
}

System.out.println(s); 
return s;
}

将方法返回类型改成String,然后返回s的值,这样调用keyPressed()方法就可以得到S的值了

本回答被网友采纳
相似回答