Question
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
} 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
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started