import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
public class GUIClass extends JFrame {
public static void main (String[] args){
// TODO Auto-generated method stub
JFrame fm = new JFrame();
final JTextField tf = new JTextField();
JButton butn = new JButton("Click ME");
tf.setBounds(50, 20, 130, 40);
butn.setBounds(50, 80, 120, 30);
butn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(this, tf.getText());
}
});
fm.add(tf);
fm.add(butn);
fm.setLayout(null);
fm.setVisible(true);
fm.setSize(400, 300);
}
}
最佳答案
所以问题出在......
butn.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
JOptionPane.showMessageDialog(this, tf.getText());
}
});
this
在此上下文中指的是ActionListener
的匿名实例,而不是父类。
一个简单的解决方案可能是使用 JOptionPane.showMessageDialog(tf, tf.getText());
关于java - JOptionPane 类型中的方法 showMessageDialog(Component, Object) 不适用于参数 (new ActionListener(){}, String),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43107861/