JFrame 不与 ActionListener 一起出现
JFrame doesn't appear with ActionListener
我是初学者,我已经编写了这段代码,但它似乎不起作用。我有 运行 代码,但由于某些原因 JFrame
没有出现(class 名称是匈牙利语,请不要介意)。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class főMásolgató implements ActionListener {
JButton b;
JLabel label;
JTextField tfield;
JFrame frame;
public void főMásolgató(){
frame = new JFrame();
b = new JButton("Másolás");
label = new JLabel("");
tfield = new JTextField();
frame.add(b);
frame.add(label);
frame.add(tfield);
b.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
label.setText(tfield.getText());
}
}
public class másolgatóHasználata {
public static void main(String args[]){
new főMásolgató();
}
}
void 方法 főMásolgató 不是 class 构造函数。
当您实例化一个新的 főMásolgató 时,您只是调用默认的 no-args 构造函数,而不是显示 JFrame
.
的无效方法 főMásolgató
你应该re-write这样:
public class főMásolgató implements ActionListener {
JButton b;
JLabel label;
JTextField tfield;
JFrame frame;
//This is now YOUR no-args constructor not the default one provided by Java
public főMásolgató(){
frame = new JFrame();
b = new JButton("Másolás");
label = new JLabel("");
tfield = new JTextField();
frame.add(b);
frame.add(label);
frame.add(tfield);
b.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
label.setText(tfield.getText());
}
}
你的错误是
public void főMásolgató(){ ... }
是一个函数不是构造函数。
如果您这样做,您的代码将起作用:
public class másolgatóHasználata {
public static void main(String args[]){
new főMásolgató().főMásolgató();
}}
因为这里他会使用默认构造函数。然后他会调用你的函数。
或者您可以通过更改来修复它:
public void főMásolgató(){ ... }
到
public főMásolgató(){ ... }
那么你的块就是构造函数。
提示:你可以通过运行逐行调试。这会让您知道您的区块是否 运行。
我是初学者,我已经编写了这段代码,但它似乎不起作用。我有 运行 代码,但由于某些原因 JFrame
没有出现(class 名称是匈牙利语,请不要介意)。
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class főMásolgató implements ActionListener {
JButton b;
JLabel label;
JTextField tfield;
JFrame frame;
public void főMásolgató(){
frame = new JFrame();
b = new JButton("Másolás");
label = new JLabel("");
tfield = new JTextField();
frame.add(b);
frame.add(label);
frame.add(tfield);
b.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
label.setText(tfield.getText());
}
}
public class másolgatóHasználata {
public static void main(String args[]){
new főMásolgató();
}
}
void 方法 főMásolgató 不是 class 构造函数。
当您实例化一个新的 főMásolgató 时,您只是调用默认的 no-args 构造函数,而不是显示 JFrame
.
你应该re-write这样:
public class főMásolgató implements ActionListener {
JButton b;
JLabel label;
JTextField tfield;
JFrame frame;
//This is now YOUR no-args constructor not the default one provided by Java
public főMásolgató(){
frame = new JFrame();
b = new JButton("Másolás");
label = new JLabel("");
tfield = new JTextField();
frame.add(b);
frame.add(label);
frame.add(tfield);
b.addActionListener(this);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setVisible(true);
}
@Override
public void actionPerformed(ActionEvent e) {
label.setText(tfield.getText());
}
}
你的错误是
public void főMásolgató(){ ... }
是一个函数不是构造函数。
如果您这样做,您的代码将起作用:
public class másolgatóHasználata {
public static void main(String args[]){
new főMásolgató().főMásolgató();
}}
因为这里他会使用默认构造函数。然后他会调用你的函数。 或者您可以通过更改来修复它:
public void főMásolgató(){ ... }
到
public főMásolgató(){ ... }
那么你的块就是构造函数。
提示:你可以通过运行逐行调试。这会让您知道您的区块是否 运行。