我的 actionPerformed 方法 (Java) 不起作用,我不知道为什么
My actionPerformed method(Java) is not working and I have no clue why
这是我的整个程序,不要怀疑我用的词,我是德国人。
从 l. 95到l。 103 是执行操作的方法,(我只执行了 System.out.println() 以查看它是否有效)。
我写了其他程序,我从来没有遇到过这样的问题,我尝试了很多东西,但我没有找到问题,也许这是一个非常简单的问题......
如果您能帮助我,我将不胜感激!
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GameFrame implements ActionListener {
String wochentag;
int itag = 0;
int imonat = 0;
int ijahrhundert = 0;
int ijahr = 0;
String stag;
String smonat;
String sjahr;
String sJahrhundert;
boolean rechnen = false;
JFrame frame = new JFrame();
JButton start = new JButton("Wochentag errechnen");
JButton update = new JButton("Datum anzeigen");
JPanel alles = new JPanel();
JLabel Tag = new JLabel("Tag");
JLabel Monat = new JLabel("Monat");
JLabel Jahr = new JLabel("Jahr");
JLabel Jahrhundert = new JLabel("Jahrhundert");
JTextField Datum = new JTextField(" Welchen Wochentag hatte der --.--.---- ");
JTextField Output = new JTextField(" Dieser Tag war ein ------tag");
JTextField tag = new JTextField();
JTextField monat = new JTextField();
JTextField jahr = new JTextField();
JTextField jahrhundert = new JTextField();
GameFrame(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.getContentPane().setBackground(Color.WHITE);
frame.setLayout(new BorderLayout());
frame.setVisible(true);
frame.setFocusable(false);
frame.setResizable(false);
alles.setBounds(0,0,500,500);
Datum.setBounds(75,40,280,40);
Datum.setEditable(false);
Tag.setBounds(175,100,45,25);
Monat.setBounds(175,150,55,25);
Jahr.setBounds(175,200,50,25);
Jahrhundert.setBounds(175,250,75,25);
Output.setBounds(118,400,202,40);
Output.setEditable(false);
tag.setBounds(250,100,75,25);
tag.setEditable(true);
monat.setBounds(250,150,75,25);
jahr.setBounds(250,200,75,25);
jahrhundert.setBounds(250,250,75,25);
start.setBounds(165,350,170,25);
start.setFocusable(false);
update.setBounds(175,300,150,25);
update.setFocusable(false);
frame.add(alles);
alles.add(Datum);
alles.add(Tag);
alles.add(Monat);
alles.add(Jahr);
alles.add(Jahrhundert);
alles.add(Output);
alles.add(tag);
alles.add(monat);
alles.add(jahr);
alles.add(jahrhundert);
alles.add(start);
alles.add(update);
}
public static void main(String[] args) {
GameFrame gameframe = new GameFrame();
}
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource() == update){
stag = tag.getText();
tag.setText("");
System.out.println(stag);
}
}
}
正如评论中提到的那些人,您还没有将侦听器添加到您的组件(更新按钮)。如果您使用的是按钮,则可以考虑改用 MouseListener
public class GameFrame implements MouseListener {
JButton update = new JButton("Datum anzeigen");
GameFrame()
{
//other code
update.addMouseListener(this);
}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
如果您想为单独的按钮设置多个侦听器,您也可以在构造函数中创建它们
update.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
System.out.println("Start button wurde geklickt");
}
};
start.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
System.out.println("Update button wurde geklickt");
}
};
这是我的整个程序,不要怀疑我用的词,我是德国人。 从 l. 95到l。 103 是执行操作的方法,(我只执行了 System.out.println() 以查看它是否有效)。 我写了其他程序,我从来没有遇到过这样的问题,我尝试了很多东西,但我没有找到问题,也许这是一个非常简单的问题...... 如果您能帮助我,我将不胜感激!
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class GameFrame implements ActionListener {
String wochentag;
int itag = 0;
int imonat = 0;
int ijahrhundert = 0;
int ijahr = 0;
String stag;
String smonat;
String sjahr;
String sJahrhundert;
boolean rechnen = false;
JFrame frame = new JFrame();
JButton start = new JButton("Wochentag errechnen");
JButton update = new JButton("Datum anzeigen");
JPanel alles = new JPanel();
JLabel Tag = new JLabel("Tag");
JLabel Monat = new JLabel("Monat");
JLabel Jahr = new JLabel("Jahr");
JLabel Jahrhundert = new JLabel("Jahrhundert");
JTextField Datum = new JTextField(" Welchen Wochentag hatte der --.--.---- ");
JTextField Output = new JTextField(" Dieser Tag war ein ------tag");
JTextField tag = new JTextField();
JTextField monat = new JTextField();
JTextField jahr = new JTextField();
JTextField jahrhundert = new JTextField();
GameFrame(){
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setSize(500, 500);
frame.getContentPane().setBackground(Color.WHITE);
frame.setLayout(new BorderLayout());
frame.setVisible(true);
frame.setFocusable(false);
frame.setResizable(false);
alles.setBounds(0,0,500,500);
Datum.setBounds(75,40,280,40);
Datum.setEditable(false);
Tag.setBounds(175,100,45,25);
Monat.setBounds(175,150,55,25);
Jahr.setBounds(175,200,50,25);
Jahrhundert.setBounds(175,250,75,25);
Output.setBounds(118,400,202,40);
Output.setEditable(false);
tag.setBounds(250,100,75,25);
tag.setEditable(true);
monat.setBounds(250,150,75,25);
jahr.setBounds(250,200,75,25);
jahrhundert.setBounds(250,250,75,25);
start.setBounds(165,350,170,25);
start.setFocusable(false);
update.setBounds(175,300,150,25);
update.setFocusable(false);
frame.add(alles);
alles.add(Datum);
alles.add(Tag);
alles.add(Monat);
alles.add(Jahr);
alles.add(Jahrhundert);
alles.add(Output);
alles.add(tag);
alles.add(monat);
alles.add(jahr);
alles.add(jahrhundert);
alles.add(start);
alles.add(update);
}
public static void main(String[] args) {
GameFrame gameframe = new GameFrame();
}
@Override
public void actionPerformed(ActionEvent e){
if(e.getSource() == update){
stag = tag.getText();
tag.setText("");
System.out.println(stag);
}
}
}
正如评论中提到的那些人,您还没有将侦听器添加到您的组件(更新按钮)。如果您使用的是按钮,则可以考虑改用 MouseListener
public class GameFrame implements MouseListener {
JButton update = new JButton("Datum anzeigen");
GameFrame()
{
//other code
update.addMouseListener(this);
}
public void mouseClicked(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mousePressed(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseReleased(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseEntered(MouseEvent e) {
// TODO Auto-generated method stub
}
public void mouseExited(MouseEvent e) {
// TODO Auto-generated method stub
}
}
如果您想为单独的按钮设置多个侦听器,您也可以在构造函数中创建它们
update.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
System.out.println("Start button wurde geklickt");
}
};
start.addMouseListener(new MouseAdapter() {
public void mouseClicked(MouseEvent e){
System.out.println("Update button wurde geklickt");
}
};