我是初学者,我已经编写了这段代码,但它似乎不起作用。我已经运行了代码,由于某些原因,
JFrame
没有出现(类名是匈牙利语,不要介意)。
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ó
不是类构造函数。
在您的情况下,如果您想创建
főMásolgató
的实例,则需要调用 Java 定义的默认无参数构造函数,而不是 void
方法 főMásolgató
。
这是一个调整代码的示例:
public class főMásolgató implements ActionListener {
JButton b;
JLabel label;
JTextField tfield;
JFrame frame;
// this is still a no-arg constructor, but unlike in your code,
// this is defined by you, and not automatically 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ó(){ ... }
那么你的块就是 构造函数。
提示:您可以通过逐行运行来调试它。这会让您知道您的块是否已运行。