I have been searching high and low to find something remotely close to what I am trying to accomplish and have failed, miserably. I have read Oracle and tutorials, but have a hard time comprehending everything related to java. It is all so confusing. I would just be grateful for some advice in the correct direction because I want to cry and give up.
I am trying to create a program (with a GUI) that has several jtextfields. Across from them are a permanent string of shopping list items for reference. I am trying to get what the user inputs into the jtextfields added together and have the result displayed in the last jtextfield box "totalPrice." I have fixed it so that the user cannot alter the result.
Note: I must keep the random yes, maybe, no, caution, warning, exit buttons, jmenubar, and the jlabels in the array. I am building on an assignment from last week is why I mention this.
For whatever reason that is I have absolutely no idea. All the extra stuff seems to be irrelevant.
I apologize about the long back story. Here the code I have so far.
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;
public class PracticeCode2 extends JFrame {
int result;
//Initializing JPanels
private JPanel mainPanel, subPanel1, subPanel2;
//Setting up GUI
public PracticeCode2(){
Toolkit.getDefaultToolkit(); //gets the toolkit ready for screen size and position
this.getToolkit();
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); //chooses what happens when the user closes the JFrame
//Constructing Main JPanel with GridLayout of 1 row and 2 column
mainPanel = new JPanel();
mainPanel.setBorder(BorderFactory.createTitledBorder(""));
mainPanel.setLayout(new GridLayout(1,2));
//Constructing JPanel 1 and 2 with GridLayout of 1 row and 1 column
subPanel1 = new JPanel();
subPanel1.setBorder(BorderFactory.createTitledBorder("Tech Shopping List"));
subPanel1.setLayout(new GridLayout(0, 1, 0, 0));
subPanel2 = new JPanel();
subPanel2.setBorder(BorderFactory.createTitledBorder("Cost"));
subPanel2.setLayout(new GridLayout(0, 1, 0, 0));
//Adding JPanel 1 and 2 to main JPanel
mainPanel.add(subPanel1);
mainPanel.add(subPanel2);
//Setting up the container ready for the components to be added.
Container pane = getContentPane();
setContentPane(pane);
//Adding the main JPanel to the container
pane.add(mainPanel);
/**Array of Shopping Items listed as JLabels */
JLabel[] labs = new JLabel[ 6 ];
labs[0] = new JLabel( "Toshiba Laptop" );
labs[1] = new JLabel("Kenneth Cole Laptop Case");
labs[2] = new JLabel("Blank DVD-Rs");
labs[3] = new JLabel("Microsoft Student Office 2010");
labs[4] = new JLabel("AVG Antivirus");
labs[5] = new JLabel("TOTAL");
/**JTextFields to enter price of items */
JTextField lapPrice = new JTextField("Enter cost");
JTextField lapCasePrice = new JTextField("Enter cost");
JTextField blankPrice = new JTextField("Enter cost");
JTextField microPrice = new JTextField("Enter cost");
JTextField avgPrice = new JTextField("Enter cost");
JTextField totalPrice = new JTextField("");
totalPrice.setEditable(false); //Total field is not editable so the user can only view results and not change them
/**
int result = Integer.valueOf(lapCost.getText()) + Integer.valueOf(caseCost.getText()) + Integer.valueOf(blankCost.getText()) + Integer.valueOf(microCost.getText()) + Integer.valueOf(avgCost.getText());
*/
JButton reset = new JButton("Reset");
JButton ok = new JButton("Ok");
subPanel1.add(labs[0]);
subPanel2.add(lapPrice);
subPanel1.add(labs[1]);
subPanel2.add(lapCasePrice);
subPanel1.add(labs[2]);
subPanel2.add(blankPrice);
subPanel1.add(labs[3]);
subPanel2.add(microPrice);
subPanel1.add(labs[4]);
subPanel2.add(avgPrice);
subPanel1.add(labs[5]);
subPanel2.add(totalPrice);
subPanel1.add(reset);
subPanel2.add(ok);
/**Set all the Components Visible.
* If it is set to "false", the components in the container will not be visible.
*/
setVisible(true);
}
//Main Method
public static void main (String[] args) {
PracticeCode2 jp = new PracticeCode2();
/**Application Size */
Dimension frameSize = Toolkit.getDefaultToolkit().getScreenSize(); //uses the screen size to determine JFrame visibility measurements
int locationH = frameSize.height/2;
jp.setBounds(((frameSize.width - locationH)/2), (frameSize.height - locationH)/2, locationH, locationH); //enables the JFrame to be exactly half the height of the user screen, yet still positioned in the center
/**JMenuBar */
JMenuBar menub = new JMenuBar(); //a new menu bar is called up on to be placed
jp.setJMenuBar(menub); //sets the menu bar within the JFrame
/** Item List*/
JMenu file = new JMenu("File"); //calls a name to appear on the menu bar item
menub.add(file); //calls the item to appear on the menu bar
JMenu edit = new JMenu("Edit");
menub.add(edit);
JMenuItem undo = new JMenuItem("Undo"); //inserts a drop down menu containing "Undo" and "Exit"
edit.add(undo);
edit.addSeparator(); //adds a separator between the "Undo" and "Exit"
JMenuItem exit = new JMenuItem("Exit");
edit.add(exit);
JMenu window = new JMenu("Window");
menub.add(window);
JMenu help = new JMenu("Help");
menub.add(help);
// Lay components out with 5 columns
jp.setLayout(new GridLayout(0, 1));
JPanel mainPanel = new JPanel();
mainPanel.add(new JButton("Yes")); //adds a new button labeled "Ok"
jp.add(mainPanel); //adds the "Ok" button to the JPanel to be visually seen by the user
mainPanel.add(new JButton("Maybe"));
jp.add(mainPanel);
mainPanel.add(new JButton("No"));
jp.add(mainPanel);
mainPanel.add(new JButton("Caution"));
jp.add(mainPanel);
mainPanel.add(new JButton("Warning"));
jp.add(mainPanel);
mainPanel.add(new JButton("Exit"));
jp.add(mainPanel);
}
class ButtonListener implements ActionListener {
}
}
I was also trying to see if I could have a box somewhere that displayed the summary of the purchase.
All items amounted to $....
Cost of each item
Item1 $
Item2 $
Items bought were
item1
item2
Wishful thinking. :-/