Java JTable addRow不能与actionListner一起使用
我正在为一个简单的烘焙程序构建一个简单的GUI。 问题是在为JTable创建模型之后,添加了一行数据Java JTable addRow不能与actionListner一起使用,java,swing,user-interface,jtable,actionlistener,Java,Swing,User Interface,Jtable,Actionlistener,我正在为一个简单的烘焙程序构建一个简单的GUI。 问题是在为JTable创建模型之后,添加了一行数据 model.addRow(新字符串[]{“data”,“data”,“data”,“data”}) 在actionlistener中不起作用: public void actionPerformed(ActionEvent event) { String buttonText = event.getActionCommand(); 如果我尝试创建帐户,我会收到以下消息: Except
model.addRow(新字符串[]{“data”,“data”,“data”,“data”})代码>
在actionlistener中不起作用:
public void actionPerformed(ActionEvent event) {
String buttonText = event.getActionCommand();
如果我尝试创建帐户,我会收到以下消息:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createSavingsAccount(GUImain.java:145)
at svimag6.GUImain.actionPerformed(GUImain.java:124)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createSavingsAccount(GUImain.java:145)
at svimag6.GUImain.actionPerformed(GUImain.java:124)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createCreditAccount(GUImain.java:140)
at svimag6.GUImain.actionPerformed(GUImain.java:128)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createCreditAccount(GUImain.java:140)
at svimag6.GUImain.actionPerformed(GUImain.java:128)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
但是,如果我硬编码将新行添加到表中(在构造函数中),它就会工作。但我不能动态添加数据
代码如下:
package gui;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.*;
import java.awt.*;
//YOU NEED TO ADD A FIELD in the GUI FOR NAME, LASTNAME AND PNR
public class GUImain extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private BankLogic logic;
private JList<Object> customerList;
private JTable accountTable;
private JTable transactionTable;
private JTextField nameField;
private JTextField lastnameField;
private JTextField pNrField;
private DefaultTableModel model;
private DefaultTableModel model1;
private JButton addButton = new JButton("Add Customer");
private JButton showButton = new JButton("Show");
private JButton clearButton = new JButton("Rensa");
private JButton createSavingsAccountButton = new JButton("Create Savings Account");
private JButton createCreditAccountButton = new JButton("Create Credit Account");
private JButton deleteAccountButton = new JButton("Delete Account");
private JButton withdrawButton = new JButton("Withdraw");
private JButton depositButton = new JButton("Deposit");
String[] accountColumns = { "ID", "Account Type", "Balance", "Interest" };
String[] transactionColumns = { "Date", "Time", "Amount", "Balance" };
String testdata[][] = { { "101", "Amit", "670000" }, { "102", "Jai", "780000" }, { "101", "Sachin", "700000" } };
public GUImain() {
initiateInstanceVariables();
buildFrame();
}
private void initiateInstanceVariables() {
logic = new BankLogic();
customerList = new JList<Object>();
accountTable = new JTable();
DefaultTableModel model = new DefaultTableModel(0, 0);
model.setColumnIdentifiers(accountColumns);
accountTable.setModel(model);
transactionTable = new JTable();
DefaultTableModel model1 = new DefaultTableModel(0, 0);
model1.setColumnIdentifiers(transactionColumns);
transactionTable.setModel(model1);
model.addRow(new String[] {"data", "data","data", "data"});
nameField = new JTextField();
lastnameField = new JTextField();
pNrField = new JTextField();
nameField.setBorder(BorderFactory.createTitledBorder("Name"));
lastnameField.setBorder(BorderFactory.createTitledBorder("Lastname"));
pNrField.setBorder(BorderFactory.createTitledBorder("pNr"));
}
private void buildFrame() {
setTitle("Bank");
setSize(300, 250);
setLayout(new GridLayout(1, 2));
JPanel bankpanel = new JPanel(new GridLayout(5, 1));
bankpanel.add(nameField);
bankpanel.add(lastnameField);
bankpanel.add(pNrField);
bankpanel.add(addButton);
bankpanel.add(showButton);
bankpanel.add(clearButton);
bankpanel.add(createSavingsAccountButton);
bankpanel.add(createCreditAccountButton);
createSavingsAccountButton.setVisible(false);
createCreditAccountButton.setVisible(false);
addButton.addActionListener(this);
showButton.addActionListener(this);
clearButton.addActionListener(this);
createSavingsAccountButton.addActionListener(this);
createCreditAccountButton.addActionListener(this);
deleteAccountButton.addActionListener(this);
// // ACCOUNT TABLE
accountTable.setCellSelectionEnabled(true);
ListSelectionModel select = accountTable.getSelectionModel();
select.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// // ACCOUNT TABLE
add(bankpanel);
add(customerList);
add(new JScrollPane(accountTable), BorderLayout.CENTER);
add(new JScrollPane(transactionTable), BorderLayout.CENTER);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
// UI LOGIC. This activated the functions below.
public void actionPerformed(ActionEvent event) {
String buttonText = event.getActionCommand();
if (buttonText.equals("Add Customer")) {
addCustomer();
showAccountButtons();
}
if (buttonText.equals("Show")) {
showSelected();
}
if (buttonText.equals("Clear")) {
clear();
}
if (buttonText.equals("Create Savings Account")) {
createSavingsAccount();
}
if (buttonText.equals("Create Credit Account")) {
createCreditAccount();
}
}
private void addCustomer() {
logic.createCustomer(nameField.getText(), lastnameField.getText(), pNrField.getText());
customerList.setListData(logic.getAllCustomers().toArray());
clear();
}
public void createCreditAccount() {
logic.createCreditAccount(pNrField.getText());
model.addRow(new String[] {"data", "data","data", "data"});
}
public void createSavingsAccount() {
logic.createSavingsAccount(pNrField.getText());
model.addRow(new String[] {"data", "data","data", "data"});
}
private void showSelected() {
int position = customerList.getSelectedIndex();
if (position > -1) {
nameField.setText(logic.getNameForPersonAt(position));
lastnameField.setText(logic.getLastNameForPersonAt(position));
pNrField.setText(logic.getpNrAt(position));
} else {
JOptionPane.showMessageDialog(null, "You need a person in the list!");
}
}
private void showAccountButtons() {
createSavingsAccountButton.setVisible(true);
createCreditAccountButton.setVisible(true);
}
private void clear() {
nameField.setText("");
lastnameField.setText("");
pNrField.setText("");
}
}
packagegui;
导入javax.swing.*;
导入javax.swing.table.DefaultTableModel;
导入java.awt.event.*;
导入java.awt.*;
//您需要在GUI中为NAME、LASTNAME和PNR添加一个字段
公共类GUImain扩展JFrame实现ActionListener{
私有静态最终长serialVersionUID=1L;
私有银行逻辑;
私人JList客户列表;
私有JTable账表;
私有JTable事务表;
私有JTextField nameField;
私有JTextField lastnameField;
私人JTextField pNrField;
私有模型;
模型1;
私有JButton addButton=新JButton(“添加客户”);
私有JButton showButton=新JButton(“Show”);
私有JButton clearButton=新JButton(“Rensa”);
私有JButton createSavingsAccountButton=新JButton(“创建储蓄账户”);
私有JButton createCreditAccountButton=新JButton(“创建信用账户”);
私有JButton deleteAccountButton=新JButton(“删除帐户”);
私有JButton ReturnButton=新JButton(“Return”);
私有JButton存款按钮=新JButton(“存款”);
字符串[]accountColumns={“ID”、“帐户类型”、“余额”、“利息”};
字符串[]transactionColumns={“日期”、“时间”、“金额”、“余额”};
字符串testdata[][]={{“101”、“Amit”、“670000”}、{“102”、“Jai”、“780000”}、{“101”、“Sachin”、“700000”};
公共服务{
initiateInstanceVariables();
buildFrame();
}
私有void initiateInstanceVariables(){
逻辑=新的BankLogic();
customerList=新JList();
accountTable=新的JTable();
DefaultTableModel=新的DefaultTableModel(0,0);
model.setColumnIdentifiers(accountColumns);
accountTable.setModel(model);
transactionTable=新的JTable();
DefaultTableModel1=新的DefaultTableModel(0,0);
模型1.setColumnIdentifiers(transactionColumns);
transactionTable.setModel(model1);
addRow(新字符串[]{“数据”、“数据”、“数据”、“数据”});
nameField=新的JTextField();
lastnameField=newjtextfield();
pNrField=新的JTextField();
nameField.setboorder(BorderFactory.createTitledBorder(“名称”));
setboorder(BorderFactory.createTitledBorder(“Lastname”);
pNrField.setboorder(BorderFactory.createTitledBorder(“pNr”));
}
私有void buildFrame(){
设定所有权(“银行”);
设置大小(300250);
setLayout(新的GridLayout(1,2));
JPanel bankpanel=新JPanel(新网格布局(5,1));
bankpanel.add(名称字段);
bankpanel.add(lastnameField);
bankpanel.add(pNrField);
bankpanel.add(添加按钮);
bankpanel.add(显示按钮);
bankpanel.add(clearButton);
bankpanel.add(创建储蓄账户按钮);
bankpanel.add(createCreditAccountButton);
createSavingsAccountButton.setVisible(false);
createCreditAccountButton.setVisible(false);
addButton.addActionListener(此);
showButton.addActionListener(此);
clearButton.addActionListener(这个);
createSavingsAccountButton.addActionListener(此);
createCreditAccountButton.addActionListener(此);
deleteAccountButton.addActionListener(此);
////科目表
accountTable.setCellSelectionEnabled(true);
ListSelectionModel select=accountTable.getSelectionModel();
select.setSelectionMode(ListSelectionModel.SINGLE_选择);
////科目表
添加(银行面板);
添加(客户列表);
添加(新的JScrollPane(accountTable),BorderLayout.CENTER);
添加(新的JScrollPane(transactionTable),BorderLayout.CENTER);
setDefaultCloseOperation(关闭时退出);
}
//UI逻辑。这激活了以下功能。
已执行的公共无效操作(操作事件){
String buttonText=event.getActionCommand();
if(buttonText.equals(“添加客户”)){
addCustomer();
showAccountButtons();
}
if(buttonText.equals(“Show”)){
showSelected();
}
如果(按钮文本等于(“清除”)){
清除();
}
if(buttonText.equals(“创建储蓄账户”)){
createSavingsAccount();
}
if(buttonText.equals(“创建信用账户”)){
createCreditAccount();
}
}
私有void addCustomer(){
logic.createCustomer(nameField.getText(),lastnameField.getText(),pNrField.getText());
customerList.setListData(logic.getAllCustomers().toArray());
清除();
}
公共无效createCreditAccount(){
logic.createCreditAccount(pNrField.getText());
addRow(新字符串[]{“数据”、“数据”、“数据”、“数据”});
}
public void createSavingsAccount(){
logic.createSavingsAccount(pNrField.getText());
addRow(新字符串[]{“数据”、“数据”、“数据”、“数据”});
}
私有void showSelected(){
int position=customerList.getSelectedIndex();
如果(位置>-1){
nameField.setText(logic.getNameForPersonAt(position));
setText(logic.getLastNameForPersonAt(position));
pNrField.setText(logic.getpNrAt(位置));
}否则{
showMessageDialog(null,“列表中需要一个人!”);
}
}
私有void showcountbuttons(){
createSavingsAccountButton.setVisible(true);
createCreditAccountButton.setVisible(true);
}
私人空位清除(){
nameField.setText(“”);
lastnameField.setText(“”);
pNrField.setText(“”);
}
}
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createSavingsAccount(GUImain.java:145)
at svimag6.GUImain.actionPerformed(GUImain.java:124)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createSavingsAccount(GUImain.java:145)
at svimag6.GUImain.actionPerformed(GUImain.java:124)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createCreditAccount(GUImain.java:140)
at svimag6.GUImain.actionPerformed(GUImain.java:128)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at svimag6.GUImain.createCreditAccount(GUImain.java:140)
at svimag6.GUImain.actionPerformed(GUImain.java:128)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$500(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.awt.EventQueue$3.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
package gui;
import javax.swing.*;
import javax.swing.table.DefaultTableModel;
import java.awt.event.*;
import java.awt.*;
//YOU NEED TO ADD A FIELD in the GUI FOR NAME, LASTNAME AND PNR
public class GUImain extends JFrame implements ActionListener {
private static final long serialVersionUID = 1L;
private BankLogic logic;
private JList<Object> customerList;
private JTable accountTable;
private JTable transactionTable;
private JTextField nameField;
private JTextField lastnameField;
private JTextField pNrField;
private DefaultTableModel model;
private DefaultTableModel model1;
private JButton addButton = new JButton("Add Customer");
private JButton showButton = new JButton("Show");
private JButton clearButton = new JButton("Rensa");
private JButton createSavingsAccountButton = new JButton("Create Savings Account");
private JButton createCreditAccountButton = new JButton("Create Credit Account");
private JButton deleteAccountButton = new JButton("Delete Account");
private JButton withdrawButton = new JButton("Withdraw");
private JButton depositButton = new JButton("Deposit");
String[] accountColumns = { "ID", "Account Type", "Balance", "Interest" };
String[] transactionColumns = { "Date", "Time", "Amount", "Balance" };
String testdata[][] = { { "101", "Amit", "670000" }, { "102", "Jai", "780000" }, { "101", "Sachin", "700000" } };
public GUImain() {
initiateInstanceVariables();
buildFrame();
}
private void initiateInstanceVariables() {
logic = new BankLogic();
customerList = new JList<Object>();
accountTable = new JTable();
DefaultTableModel model = new DefaultTableModel(0, 0);
model.setColumnIdentifiers(accountColumns);
accountTable.setModel(model);
transactionTable = new JTable();
DefaultTableModel model1 = new DefaultTableModel(0, 0);
model1.setColumnIdentifiers(transactionColumns);
transactionTable.setModel(model1);
model.addRow(new String[] {"data", "data","data", "data"});
nameField = new JTextField();
lastnameField = new JTextField();
pNrField = new JTextField();
nameField.setBorder(BorderFactory.createTitledBorder("Name"));
lastnameField.setBorder(BorderFactory.createTitledBorder("Lastname"));
pNrField.setBorder(BorderFactory.createTitledBorder("pNr"));
}
private void buildFrame() {
setTitle("Bank");
setSize(300, 250);
setLayout(new GridLayout(1, 2));
JPanel bankpanel = new JPanel(new GridLayout(5, 1));
bankpanel.add(nameField);
bankpanel.add(lastnameField);
bankpanel.add(pNrField);
bankpanel.add(addButton);
bankpanel.add(showButton);
bankpanel.add(clearButton);
bankpanel.add(createSavingsAccountButton);
bankpanel.add(createCreditAccountButton);
createSavingsAccountButton.setVisible(false);
createCreditAccountButton.setVisible(false);
addButton.addActionListener(this);
showButton.addActionListener(this);
clearButton.addActionListener(this);
createSavingsAccountButton.addActionListener(this);
createCreditAccountButton.addActionListener(this);
deleteAccountButton.addActionListener(this);
// // ACCOUNT TABLE
accountTable.setCellSelectionEnabled(true);
ListSelectionModel select = accountTable.getSelectionModel();
select.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
// // ACCOUNT TABLE
add(bankpanel);
add(customerList);
add(new JScrollPane(accountTable), BorderLayout.CENTER);
add(new JScrollPane(transactionTable), BorderLayout.CENTER);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
// UI LOGIC. This activated the functions below.
public void actionPerformed(ActionEvent event) {
String buttonText = event.getActionCommand();
if (buttonText.equals("Add Customer")) {
addCustomer();
showAccountButtons();
}
if (buttonText.equals("Show")) {
showSelected();
}
if (buttonText.equals("Clear")) {
clear();
}
if (buttonText.equals("Create Savings Account")) {
createSavingsAccount();
}
if (buttonText.equals("Create Credit Account")) {
createCreditAccount();
}
}
private void addCustomer() {
logic.createCustomer(nameField.getText(), lastnameField.getText(), pNrField.getText());
customerList.setListData(logic.getAllCustomers().toArray());
clear();
}
public void createCreditAccount() {
logic.createCreditAccount(pNrField.getText());
model.addRow(new String[] {"data", "data","data", "data"});
}
public void createSavingsAccount() {
logic.createSavingsAccount(pNrField.getText());
model.addRow(new String[] {"data", "data","data", "data"});
}
private void showSelected() {
int position = customerList.getSelectedIndex();
if (position > -1) {
nameField.setText(logic.getNameForPersonAt(position));
lastnameField.setText(logic.getLastNameForPersonAt(position));
pNrField.setText(logic.getpNrAt(position));
} else {
JOptionPane.showMessageDialog(null, "You need a person in the list!");
}
}
private void showAccountButtons() {
createSavingsAccountButton.setVisible(true);
createCreditAccountButton.setVisible(true);
}
private void clear() {
nameField.setText("");
lastnameField.setText("");
pNrField.setText("");
}
}
private DefaultTableModel model;
private DefaultTableModel model1;
DefaultTableModel model = new DefaultTableModel(0, 0);
...
DefaultTableModel model1 = new DefaultTableModel(0, 0);
model = new DefaultTableModel(0, 0);
...
model1 = new DefaultTableModel(0, 0);