Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

Alright, I've worked on this problem some more. My issue is that changing a value in an arraylist is not showing up on my java

Alright, I've worked on this problem some more. My issue is that changing a value in an arraylist is not showing up on my java swing ui. I have checked the values of the arrayList elements and they do infact change. However, this change is not updated on the swing ui. Here is my code:

import javax.swing.JFrame; import javax.swing.JOptionPane;

public class editWindow extends JFrame {

public editWindow(taskBoardModel userBoard) { String test; System.out.println(userBoard.columns.get(0).columnName); userBoard.columns.get(0).changeColumnName("WORK"); //userBoard.columns.get(0).columnName = "NEW NAME"; } }

also:

public class mainScreen extends JPanel implements ActionListener { JFrame mainFrame = new JFrame("Task Board"); JPanel mainPanel = new JPanel(); editWindow ew; taskBoardModel userBoard;

JButton editButton = new JButton("Edit"); public void mainScreen(taskBoardModel getBoard) { userBoard = getBoard; JFrame mainFrame = new JFrame("Task Board");

this.drawMenu(userBoard); this.drawColumns(userBoard.columns);

} public void drawMenu(taskBoardModel userBoard) { JPanel menuPanel = new JPanel(); mainFrame.setLayout(new BorderLayout()); mainPanel.setLayout(new FlowLayout(FlowLayout.LEFT)); menuPanel.setLayout(new BorderLayout()); JPanel menuLeft = new JPanel(); JPanel menuRight = new JPanel(); menuLeft.setLayout(new FlowLayout()); menuRight.setLayout(new FlowLayout()); JLabel selectLabel = new JLabel("Select Project: "); JComboBox selectBox = new JComboBox(); selectBox.addItem(""); //JButton editButton = new JButton("Edit"); JButton saveButton = new JButton("Save"); JButton deleteButton = new JButton("Delete"); //JButton editButton = new JButton("Edit"); //editButton = new JButton("Edit"); editButton.addActionListener(this); menuLeft.add(selectLabel); menuLeft.add(selectBox); menuLeft.add(saveButton); menuLeft.add(editButton); menuLeft.add(deleteButton); JButton loadButton = new JButton("Load..."); JButton createButton = new JButton("Create new"); JButton logoutButton = new JButton("Logout"); menuRight.add(loadButton); menuRight.add(createButton); menuRight.add(logoutButton); menuPanel.add(menuLeft,BorderLayout.WEST); menuPanel.add(menuRight,BorderLayout.EAST); menuPanel.setBorder(BorderFactory.createLineBorder(Color.black)); //userBoard.columns.get(0).columnName = "WORK DAMNITG"; mainFrame.add(menuPanel,BorderLayout.NORTH); mainFrame.add(mainPanel,BorderLayout.CENTER); mainFrame.setSize(1000, 1000); mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

mainPanel.setVisible(true);

mainFrame.setVisible(true); mainFrame.revalidate(); mainFrame.repaint(); mainPanel.revalidate(); mainPanel.repaint();

} public void actionPerformed(ActionEvent ae) { if(ae.getSource() == editButton) { ew = new editWindow(userBoard);

} } public void drawColumns(ArrayList userColumn) { ArrayList array = new ArrayList(); columnModel currentColumn; for(int i=0;i { currentColumn = userColumn.get(i); JPanel panel = addPanel(currentColumn); JPanel testPanel = addTaskPanel(currentColumn,i); //testPanel.add(new JLabel("LABEL")); panel.add(testPanel); //JPanel taskPanel = addTaskPanel(currentColumn,i); array.add(panel); mainPanel.add(array.get(i)); mainPanel.revalidate(); mainPanel.repaint(); //mainPanel.add(taskPanel); /* currentColumn = userColumn.get(i); JPanel panel = new JPanel(); JLabel label = new JLabel(currentColumn.columnName); panel.add(label); //array.add(addPanel(currentColumn.columnName)); array.add(panel); mainPanel.add(array.get(i));*/

} /* ArrayList array = new ArrayList(); for(int i=0;i { JPanel panel = new JPanel(); array.add(panel) }*/ } public JPanel addPanel(columnModel userColumn) { JPanel panel = new JPanel(); panel.setBorder(BorderFactory.createLineBorder(Color.black)); panel.setLayout(new BorderLayout()); JPanel columnHeader = new JPanel(); JPanel columnTask = new JPanel(); columnHeader.setLayout(new BorderLayout()); JPanel columnNamePanel = new JPanel(); JPanel columnButtonPanel = new JPanel(); JLabel columnNameLabel = new JLabel(userColumn.columnName); columnNamePanel.add(columnNameLabel); JButton taskAddButton = new JButton("+"); columnButtonPanel.add(taskAddButton); columnHeader.add(columnNamePanel, BorderLayout.NORTH); columnHeader.add(columnButtonPanel, BorderLayout.SOUTH); panel.add(columnHeader,BorderLayout.NORTH); taskAddButton.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { openTask(userColumn); } }); return panel; } public JPanel addTaskPanel(columnModel userColumn,int columnIndex) { JPanel panel = new JPanel(); GridBagConstraints gbc = new GridBagConstraints(); panel.setLayout(new GridBagLayout()); int position = 0; for(int i=0;i { JPanel taskPanel = new JPanel(); taskPanel.setLayout(new FlowLayout()); JLabel taskLabel = new JLabel(userColumn.task.get(i).taskName);

taskPanel.add(taskLabel); gbc.fill = GridBagConstraints.VERTICAL; gbc.gridx = 0; gbc.gridy = position; panel.add(taskPanel,gbc); position++; } return panel; }

I am sure this is something small that I am missing but I just can't seem to get the value ""TITLE" to change by pressing the edit button.

Thanks.

Taskboardmodel class:

import java.util.ArrayList;

public class taskBoardModel {

String projectName; ArrayList columns = new ArrayList(); public taskBoardModel(String userName) { columnModel newColumn = new columnModel("FIX","BEFORE","WORK"); columnModel secondColumn = new columnModel("WORK","PLEAse","damn"); columns.add(newColumn); columns.add(secondColumn); taskModel firstTask = new taskModel("FIX","FIRST"); taskModel secondTask = new taskModel("Second","Second"); newColumn.task.add(firstTask); newColumn.task.add(secondTask); this.projectName = userName; } }

column model:

import java.util.ArrayList;

import javax.swing.JPanel;

public class columnModel {

String columnName; //String task1; //String task2; taskModel test = new taskModel("WORK1","WORK2"); ArrayList task = new ArrayList(); public columnModel(String userCol) { this.columnName = userCol;

} public void changeColumnName(String newName) { this.columnName = newName; } }

edit window

import javax.swing.JFrame; import javax.swing.JOptionPane; import javax.swing.JPanel;

public class editWindow extends JFrame { public editWindow(taskBoardModel userBoard) { this.setSize(250,250); userBoard.columns.get(0).columnName = "DUDE"; } }

task model

import java.sql.Date;

public class taskModel { String taskName; String taskDescription; Date taskDate; String status; public taskModel(String userName,String description) { this.taskName = userName; this.taskDescription = description; } public void setTaskName(String taskName) { this.taskName = taskName; this.taskDescription = taskName; } }

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

Objects And Databases International Symposium Sophia Antipolis France June 13 2000 Revised Papers Lncs 1944

Authors: Klaus R. Dittrich ,Giovanna Guerrini ,Isabella Merlo ,Marta Oliva ,M. Elena Rodriguez

2001st Edition

3540416641, 978-3540416647

More Books

Students also viewed these Databases questions

Question

How do we organise for international logistics?

Answered: 1 week ago

Question

What are the logistics implications of internationalisation?

Answered: 1 week ago