gpt4 book ai didi

java - 我不明白为什么我的 ActionListeners 在按下 JButton 时不起作用?

转载 作者:行者123 更新时间:2023-12-02 05:53:05 25 4
gpt4 key购买 nike

我使用 Action 监听器,然后将其调用到中继函数的类。我不想在类中使用 implements ActionListener 因为处理多个按钮比较复杂。您可以从 ActionListener 访问方法吗?

我还收到了可序列化警告。我不确定这是什么意思。我压制了这些警告并在网上查找了它,但是,我仍然不明白它的上下文。第一个 GUI 项目,非常感谢任何帮助。

import javax.swing.*;
import javax.swing.table.DefaultTableModel;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;


public class GUI extends JFrame{
public JFrame j;
public JPanel p;
public JButton NEW;
public JButton update;
public DefaultTableModel model;
public JTable jt;

public GUI(){
setVisible(true);
setSize(600,400);
setTitle("Student Record Management System");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel p = new JPanel();
JButton NEW = new JButton("Additional Student");
NEW.setBounds(10,10,20,20);
NEW.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
NEWpressed();
}
});
p.add(NEW);
JButton update = new JButton("Update Exam Scores");
update.setBounds(50,40,20,20);
update.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
updatepressed();
}
});
p.add(update);
String [] col = {"Last Name", "First Name", "HKID", "Student ID", "Final Exam Score"};
String [][] data = {{"Rollins", "Zachary", "1234", "4321", "88"},{"Preston","John", "4321", "1234", "94"}};
DefaultTableModel model = new DefaultTableModel(data, col);
JTable jt = new JTable(model);
jt.setEnabled(false);
jt.setPreferredScrollableViewportSize(new Dimension(400,300));
jt.setFillsViewportHeight(true);
jt.setBackground(Color.BLUE);
jt.setAlignmentY(BOTTOM_ALIGNMENT);
JScrollPane jps = new JScrollPane(jt);
p.add(jps);
add(p);
}
public void NEWpressed(){
model.addRow(new Object[]{"col 1", "col 2", "col 3", "col 4", "col 5"});
}
public void updatepressed(){
jt.setEnabled(true);
p.add(jt);
add(p);
}
public static void main(String args []){
GUI a = new GUI();
a.setVisible(true);

}

}

最佳答案

是的,您可以从 onclicklistener 调用方法,但问题出在您调用的方法中,您正在调用

model.addRow()

在尚未定义的 DefaultTableModel 上。在调用按下的方法之前初始化您的“模型”变量。

关于java - 我不明白为什么我的 ActionListeners 在按下 JButton 时不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23358464/

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