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;
import java.io.BufferedReader;
import java.io.FileReader;
/**
*
* @author
* This is model class may be handy for putting data relevant to the User Profile in
*/
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;
import java.io.*;
/**
*
* @author
@@ -11,4 +14,5 @@ package userprofilebuilder.model;
*/
public class UserGroup {
}
@@ -6,6 +6,7 @@ package userprofilebuilder.view;
import java.awt.*;
import javax.swing.*;
import javax.swing.border.*;
import java.awt.event.*;
import java.io.*;
@@ -24,23 +25,16 @@ public class MainViewer {
public String Reader(int row, String Pname) {
String text = "Default Text";
//hi
String[] values = null;
try (BufferedReader csvReader = new BufferedReader(new FileReader(file))) {
while (csvReader.ready()) {
String line = csvReader.readLine();
// System.out.println(line);
values = line.split(",");
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))) )
{
// System.out.println("row checker passed.");
if (Pname.equals("User Title"))
{
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) {
System.out.println("error with reader");
}
// System.out.println(text);
return text;
}
// 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;
//String name = "Name";
// Temporary row distinguishing rename
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 JDelete = new JButton("Delete");
jp.add(JR);
jp.add(JEdit);
jp.add(JDelete);
// setting the border title to the correct title
TitledBorder rowtitle;
rowtitle = BorderFactory.createTitledBorder("User "+ row);
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!");
@@ -129,6 +106,11 @@ public class MainViewer {
};
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();
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);
@@ -183,17 +173,40 @@ public class MainViewer {
public MainViewer() // main viewer window
{
viewer = new JFrame();
viewer.setTitle("User Profile Builder");
viewer.setSize(800,500);
viewer.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
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 Name", JT);
TabMaker("User Email", JT);
viewer.add(JT);
JT.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);