I'm new to java and part of our assignment is to build a GUI and display a result set from data input. I'm stuck at how to get the user's input from JTextFields and combobox selection and display those values to a table. My code is something like this. Thanks in advance.
import java.awt.FlowLayout; import javax.swing.*; import java.awt.GridLayout;public class RetailCalculatorProject extends JFrame { //components JPanel panel1 = new JPanel(); JLabel iName = new JLabel ("Item Name");
JPanel panel2 = new JPanel(); JLabel iOrigPrice = new JLabel("Original Price $ "); JPanel panel3 = new JPanel(); JLabel percentD = new JLabel ("Percent Discount "); JPanel panel4 = new JPanel(); JLabel selectDepartmentLabel = new JLabel("Select Department"); JPanel panel5 = new JPanel(); String[] departments = {"Bath" , "Bedroom" , "Garden/Patio", "Kitchen", "Living Room"}; JComboBox option = new JComboBox(departments); JPanel buttonsPanel = new JPanel(); JButton calculateButton = new JButton("Calculate"); JButton exitButton = new JButton("Exit"); CalculateButton cb = new CalculateButton(); ExitButton eb = new ExitButton(); public RetailCalculatorProject() { super ("Retail Calculator"); setSize(550, 300); setLocationRelativeTo(null); GridLayout layout = new GridLayout(7, 1, 3, 3); setLayout(layout); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); setLookAndFeel(); } private void setLookAndFeel() { try { UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel"); } catch(Exception exc) { //ignore error } } { FlowLayout row1 = new FlowLayout (FlowLayout.LEFT, 10, 10); setLayout(row1); panel1.add(iName); JTextField itemName = new JTextField(20); panel1.add(itemName); add(panel1); } { FlowLayout row2 = new FlowLayout(FlowLayout.LEFT, 10, 10); setLayout(row2); panel2.add(iOrigPrice); JTextField oP = new JTextField (4); panel2.add(oP); add(panel2); } { panel3.add(percentD); JTextField discount = new JTextField (3); panel3.add(discount); add(panel3); } { panel4.add(selectDepartmentLabel); add(panel4); } { panel5.add(option); add(panel5); } { buttonsPanel.add(calculateButton); calculateButton.addActionListener(cb); buttonsPanel.add(exitButton); exitButton.addActionListener(eb); add(buttonsPanel); } public static void main(String[] args) { //create an instance of the RetailCalculatorProject to apply members RetailCalculatorProject assignment = new RetailCalculatorProject(); } }
Here is a code that accepts the user input and save it to jtable.
import java.awt.*; import javax.swing.*; import java.awt.event.*; import javax.swing.table.*; public class RetailCalculatorProject extends JFrame { JLabel iName = new JLabel ("Item Name"); JLabel iOrigPrice = new JLabel("Original Price $ "); JLabel percentD = new JLabel ("Percent Discount "); JLabel selectDepartmentLabel = new JLabel("Select Department"); String[] departments = {"Bath" , "Bedroom" , "Garden/Patio", "Kitchen", "Living Room"}; JComboBox option = new JComboBox(departments); JButton calculateButton = new JButton("Calculate"); JButton exitButton = new JButton("Exit"); JTextField itemName = new JTextField(20); JTextField oP = new JTextField (4); JTextField discount = new JTextField (3); public RetailCalculatorProject() { super ("Retail Calculator"); setLayout(new GridLayout(5,2,5,5)); add(iName); add(itemName); add(iOrigPrice); add(oP); add(percentD); add(discount); add(selectDepartmentLabel); add(option); add(calculateButton); calculateButton.addActionListener(new ActionListener(){ public void actionPerformed(ActionEvent e){ String v1=itemName.getText(); String v2=oP.getText(); String v3=discount.getText(); String v4=option.getSelectedItem().toString(); JFrame f = new JFrame(); String data[][] = {{}}; String col[] = {"Item Name","Price","Discount(%)","Department"}; DefaultTableModel model = new DefaultTableModel(data,col); JTable table = new JTable(model); model.insertRow(0,new Object[]{v1,v2,v3,v4}); f.add(table); f.setSize(300,200); f.setVisible(true); } }); setSize(550, 300); setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); setVisible(true); } public static void main(String[] args) { RetailCalculatorProject assignment = new RetailCalculatorProject(); } }