gpt4 book ai didi

Java 对 getSource() 和 Action 监听器的理解

转载 作者:行者123 更新时间:2023-12-01 08:11:09 26 4
gpt4 key购买 nike

我正在尝试了解有关 actionListener 的更多信息。

如果单击“保存”按钮,我尝试打印消息“测试操作”。无论如何,我根本不明白。

这是我的代码,希望有人能帮助我。提前致谢。

import java.awt.Color;
import java.awt.Font;
import java.awt.GridLayout;
import java.awt.event.*;
import javax.swing.JApplet;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.SwingConstants;

public class applet extends JApplet implements ActionListener {

private static final long serialVersionUID = -5561312464056465383L;
private JTextField txtNameEingeben;
private JTextField txtPwEingeben;

public applet() {
getContentPane().setLayout(new GridLayout(1, 0, 0, 0));
JPanel panel = new JPanel();
panel.setBackground(Color.DARK_GRAY);
getContentPane().add(panel);
panel.setLayout(null);
JLabel lblANewLabel = new JLabel("Name");
lblANewLabel.setHorizontalAlignment(SwingConstants.LEFT);
lblANewLabel.setFont(new Font("Lucida Grande", Font.PLAIN, 20));
lblANewLabel.setBounds(33, 57, 117, 37);
lblANewLabel.setForeground(Color.WHITE);
panel.add(lblANewLabel);
//TEXTFELD NAME
txtNameEingeben = new JTextField();
txtNameEingeben.setText("");
txtNameEingeben.setBounds(162, 64, 134, 28);
panel.add(txtNameEingeben);
txtNameEingeben.setColumns(10);
//TEXTFELD PASSWORT
txtPwEingeben = new JTextField();
txtPwEingeben.setText("");
txtPwEingeben.setBounds(162, 113, 134, 28);
panel.add(txtPwEingeben);
txtPwEingeben.setColumns(10);
//LABEL ÜBERSCHRIFT
JLabel lblNamePasswort = new JLabel("Name & Passwort in einem Array speichern");
lblNamePasswort.setForeground(Color.WHITE);
lblNamePasswort.setHorizontalAlignment(SwingConstants.CENTER);
lblNamePasswort.setBounds(0, 23, 450, 16);
panel.add(lblNamePasswort);
JButton btnSave = new JButton("save");
btnSave.setBounds(308, 251, 117, 29);
panel.add(btnSave);
btnSave.addActionListener(new events());
}

public void save(ActionEvent event) {
System.out.println("Button gedrückt.");
}

public void actionPerformed(ActionEvent event) {
if (event.getSource(btnSave)) {
System.out.println("Test Action");
}
}

public static void main(String[] args) {
applet applet1 = new applet();
applet1.setVisible(true);
}
}

最佳答案

  1. 不要使用保留的 Java 类和方法名称作为项目的名称。 public class applet extends... 应该是 public class MyApplet extends...,

  2. 使用正确的Java Naming Convention

  3. 使用JFrame而不是JApplet,创建JFrame作为局部变量而不是扩展JFrame,类似于private JTextField txtNameEingeben;

  4. 使用LayoutManager而不是 AbsoluteLayout (setBounds(...))

  5. 来自 btnSave.addActionListener(new events()); 未声明 events()

  6. 您应该使用 event.getSource() == btnSave 而不是 event.getSource(btnSave)

  7. 阅读有关 How to Write an Action Listener 的 Oracle 教程

关于Java 对 getSource() 和 Action 监听器的理解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17217161/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com