W3R1 – Add a MenuBar

This commit is contained in:
bobbert committed 2025-02-15 13:25:50 +00:00
1 parent ff35eb0464
commit 3311290080
3 files changed
+98 -42

No files matched your search

@@ -4,11 +4,50 @@
*/ */
package userprofilebuilder.model; package userprofilebuilder.model;
import java.io.BufferedReader;
import java.io.FileReader;
/** /**
* *
* @author * @author
* This is model class may be handy for putting data relevant to the User Profile in * This is model class may be handy for putting data relevant to the User Profile in
*/ */
public class User { public class User {
public String getUser(int row, String Pname, String file) {
String text = "Default Text";
String[] values = null;
try (BufferedReader csvReader = new BufferedReader(new FileReader(file))) {
while (csvReader.ready()) {
String line = csvReader.readLine();
values = line.split(",");
for (int i =0; i < values.length; i=i+4)
{
if ( row == Integer.parseInt(String.valueOf(values[i].charAt(4))) )
{
if (Pname.equals("User Title"))
{
text = values[i+1];
System.out.println("Set radio button text to :" + text);
return text;
}
else if (Pname.equals("User Name")) {
text = values[i+2];
System.out.println("Set radio button text to :" + text);
return text;
}
else if (Pname.equals("User Email")) {
text = values[i+3];
System.out.println("Set radio button text to :" + text);
return text;
}
}
}
}
}
catch (Exception e) {
System.out.println("error with reader");
}
return text;
}
} }
@@ -4,6 +4,9 @@
*/ */
package userprofilebuilder.model; package userprofilebuilder.model;
import java.io.*;
/** /**
* *
* @author * @author
@@ -11,4 +14,5 @@ package userprofilebuilder.model;
*/ */
public class UserGroup { public class UserGroup {
} }
@@ -6,6 +6,7 @@ package userprofilebuilder.view;
import java.awt.*; import java.awt.*;
import javax.swing.*; import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*; import java.awt.event.*;
import java.io.*; import java.io.*;
@@ -24,23 +25,16 @@ public class MainViewer {
public String Reader(int row, String Pname) { public String Reader(int row, String Pname) {
String text = "Default Text"; String text = "Default Text";
//hi
String[] values = null; String[] values = null;
try (BufferedReader csvReader = new BufferedReader(new FileReader(file))) { try (BufferedReader csvReader = new BufferedReader(new FileReader(file))) {
while (csvReader.ready()) { while (csvReader.ready()) {
String line = csvReader.readLine(); String line = csvReader.readLine();
// System.out.println(line);
values = line.split(","); values = line.split(",");
for (int i =0; i < values.length; i=i+4) for (int i =0; i < values.length; i=i+4)
{ {
// System.out.println(i);
// System.out.println(row);
// System.out.println(values[i].charAt(4));
if ( row == Integer.parseInt(String.valueOf(values[i].charAt(4))) ) if ( row == Integer.parseInt(String.valueOf(values[i].charAt(4))) )
{ {
// System.out.println("row checker passed.");
if (Pname.equals("User Title")) if (Pname.equals("User Title"))
{ {
text = values[i+1]; text = values[i+1];
@@ -59,62 +53,45 @@ public class MainViewer {
} }
} }
} }
} }
//assigning them to the correct panel and row.
// math for it == 4 values per csv row. -> char at [4] of 0 or 4 or 8 --> corresponds to the row it affects.
// get total amount of values. -> 11(array form) -> + 1 then div 4(values per row) = amount of rows needed
// get row. if Pname = "title", RadioB.setText(values[row*4+1]);
// get row. if Pname = "user name", RadioB.setText(values[row*4+2]);
// get row. if Pname = "user email", RadioB.setText(values[row*4+3]);
// if row == values.charAt[4] then do above.
// for (int i = 0; i < values.length; i++) debug code...
// {
// System.out.println(values[i]);
// }
// System.out.println(row);
// System.out.println(values[0].charAt(4));
} }
catch (Exception e) { catch (Exception e) {
System.out.println("error with reader"); System.out.println("error with reader");
} }
// System.out.println(text);
return text; return text;
} }
// end of reader // end of reader
private void CreateRow(int count, JPanel jp, String Pname) // Function to create a row // holds all the data of a row in the grid layout below. private void CreateRow(int count, JPanel jp, String Pname)
{ {
int row = count+1; int row = count+1;
//String name = "Name";
// Temporary row distinguishing rename
String name = Reader(row, Pname); String name = Reader(row, Pname);
// end of temporary row rename JPanel minipanel = new JPanel();
JRadioButton JR = new JRadioButton(name); // temporary use of name as label for JRadioButton - to allow for the use of text being manipulated // changed. JRadioButton JR = new JRadioButton(name);
JButton JEdit = new JButton("Edit"); JButton JEdit = new JButton("Edit");
JButton JDelete = new JButton("Delete"); JButton JDelete = new JButton("Delete");
// setting the border title to the correct title
jp.add(JR); TitledBorder rowtitle;
jp.add(JEdit); rowtitle = BorderFactory.createTitledBorder("User "+ row);
jp.add(JDelete); minipanel.setBorder(rowtitle);
// end of border title code
// below are action listeners minipanel.add(JR);
minipanel.add(JEdit);
minipanel.add(JDelete);
jp.add(minipanel);
ButtonGroup group = new ButtonGroup();
group.add(JR);
System.out.println("Row number: "+ row + " Has been created!"); System.out.println("Row number: "+ row + " Has been created!");
@@ -129,6 +106,11 @@ public class MainViewer {
}; };
JR.addActionListener(RadioListener); JR.addActionListener(RadioListener);
ActionListener Deleter = e -> {
System.out.println("Delete attempted for row: "+ row);
};
JDelete.addActionListener(Deleter);
} }
@@ -171,7 +153,15 @@ public class MainViewer {
JPanel page = new JPanel(); JPanel page = new JPanel();
page.setLayout(new GridLayout(0,3)); // Because i cant remember the orientation of grid layout params it's (x,y) AKA rows , columns page.setLayout(new GridLayout(0,1)); // Because i cant remember the orientation of grid layout params it's (x,y) AKA rows , columns
// setting the border title to the correct title
TitledBorder titled;
String[] Tname = Pname.split(" ");
titled = BorderFactory.createTitledBorder(Tname[1]);
page.setBorder(titled);
// end of border title code
JT.addTab(Pname, page); JT.addTab(Pname, page);
@@ -183,17 +173,40 @@ public class MainViewer {
public MainViewer() // main viewer window public MainViewer() // main viewer window
{ {
viewer = new JFrame(); viewer = new JFrame();
viewer.setTitle("User Profile Builder"); viewer.setTitle("User Profile Builder");
viewer.setSize(800,500); viewer.setSize(800,500);
viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JTabbedPane JT = new JTabbedPane(); JTabbedPane JT = new JTabbedPane();
JMenuBar menuBar = new JMenuBar();
JMenu menu = new JMenu("file");
menuBar.add(menu);
JMenuItem open = new JMenuItem("Open");
menu.add(open);
ActionListener opener = e -> {
System.out.println("Open file?");
};
open.addActionListener(opener);
JMenuItem quit = new JMenuItem("Quit");
menu.add(quit);
ActionListener quitter = e -> {
viewer.dispose();
};
quit.addActionListener(quitter);
viewer.setJMenuBar(menuBar);
TabMaker("User Title", JT); TabMaker("User Title", JT);
TabMaker("User Name", JT); TabMaker("User Name", JT);
TabMaker("User Email", JT); TabMaker("User Email", JT);
viewer.add(JT); viewer.add(JT);
JT.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT); JT.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);