Note that there are some explanatory texts on larger screens.

plurals
  1. POJButton needs to change JTextfield text
    primarykey
    data
    text
    <p>This is homework. Beginning Java class. Still wrapping my head around this stuff. </p> <p>The project is to make an Inventory Management System. </p> <p>I have everything figured out except how to make this button change the text in a JTextField. It needs to add info from an array of a product (DVD's in this case). The book talks about different ways to manage things like font, position and state of a JTextField but it does not cover formatting or calling a method for the text. </p> <p>Here is an example of what I want to do using a JTextArea. This is essentially what I want to do with my JTextFields.</p> <pre><code> ... // setup the interface JPanel panel = new JPanel(); txt = new JTextArea(15,40); txt.setEditable(false);//user shouldn't change it panel.add(txt); JButton next = new JButton("Next"); panel.add(next); getContentPane().add(panel); displayDVD(); } // view software public void displayDVD() { txt.setText("DVD Details:\n"); txt.append("Item number: " + inv.get(currentDisplay).getItem() + "\n"); txt.append("DVD name: " + inv.get(currentDisplay).getName() + "\n"); txt.append("Units in stock: " + inv.get(currentDisplay).getUnits() + "\n"); txt.append("Price: $" + String.format("%.2f",inv.get(currentDisplay).getPrice()) + "\n"); txt.append("Total value: $" + String.format("%.2f",inv.get(currentDisplay).value()) + "\n"); txt.append("Fee: $" + String.format("%.2f",inv.get(currentDisplay).fee()) + "\n\n"); txt.append("Total value: $" + String.format("%.2f",inv.value())); } </code></pre> <p>And here is my actual code so far</p> <pre><code>// GUI with navigation and file manipulation buttons import javax.swing.*; // provides basic window features import java.awt.event.*; import java.awt.GridLayout; import java.awt.BorderLayout; public class AppGUI extends JFrame { private Inventory inv; private int currentDisplay = 0; private JPanel topButtonJPanel; private JButton topButtons[]; private JPanel labelJPanel; private JLabel labels[]; private JPanel fieldJPanel; private JTextField fields[]; private JPanel buttonJPanel; private JButton buttons[]; // LabelFrame constructor adds JLabels to JFrame public AppGUI() { super( "Inventory Program v.5" ); setLayout( new BorderLayout() ); // set frame layout setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);// quit if the window is closed // initialize values RatedDVD d1 = new RatedDVD(1, "The Invisible Man", 0, 4999.99, "PG"); RatedDVD d2 = new RatedDVD(2, "The Matrix", 1, 13.01, "PG13"); RatedDVD d3 = new RatedDVD(3, "Se7en", 7, 11.11, "R"); RatedDVD d4 = new RatedDVD(4, "Oceans Eleven", 11, 9.02, "PG13"); RatedDVD d5 = new RatedDVD(5, "Hitch Hikers Guide to the Galaxy", 42, 10.00, "G"); // create inv and enter values inv = new Inventory(); inv.add(d1); inv.add(d2); inv.add(d3); inv.add(d4); inv.add(d5); inv.sort(); topButtons = new JButton[ 6 ]; // create topButtons array topButtonJPanel = new JPanel(); // set up panel topButtonJPanel.setLayout( new GridLayout( 1, topButtons.length, 2, 2 ) ); topButtons[0] = new JButton( "Load file" ); topButtons[1] = new JButton( "Add" ); topButtons[2] = new JButton( "Modify" ); topButtons[3] = new JButton( "Delete" ); topButtons[4] = new JButton( "Search" ); topButtons[5] = new JButton( "Save" ); for(int count=0;count&lt;topButtons.length;count++){topButtonJPanel.add(topButtons[count]);} //add( topButtonJPanel, BorderLayout.NORTH ); // this is for next weeks assignment labels = new JLabel[8]; labelJPanel = new JPanel(); labelJPanel.setLayout( new GridLayout( labels.length, 1 )); labels[0] = new JLabel( "Item ID" ); labels[1] = new JLabel( "Name" ); labels[2] = new JLabel( "Rating" ); labels[3] = new JLabel( "# in Stock" ); labels[4] = new JLabel( "Price" ); labels[5] = new JLabel( "Restocking Fee" );//[DEBUG] ref actual Variable labels[6] = new JLabel( "Inventory Value with Fee (5%)" ); labels[7] = new JLabel( "Total Value with Fee(for all items)" ); for(int count=0;count&lt;labels.length;count++){labelJPanel.add(labels[count]);} add( labelJPanel, BorderLayout.WEST ); fields = new JTextField[8]; fieldJPanel = new JPanel(); int spaces = 28; fieldJPanel.setLayout( new GridLayout( labels.length, 1 )); fields[0] = new JTextField( "", spaces ); fields[1] = new JTextField( "", spaces ); fields[2] = new JTextField( "", spaces ); fields[3] = new JTextField( "", spaces ); fields[4] = new JTextField( "", spaces ); fields[5] = new JTextField( "", spaces ); fields[6] = new JTextField( "", spaces ); fields[7] = new JTextField( "", spaces ); for(int count=0;count&lt;fields.length;count++) { fields[count].setEditable( false ); fieldJPanel.add(fields[count]); } add( fieldJPanel, BorderLayout.EAST ); buttons = new JButton[ 5 ]; // create buttons array buttonJPanel = new JPanel(); // set up panel buttonJPanel.setLayout( new GridLayout( 1, buttons.length, 2, 2 ) ); buttons[0] = new JButton( "First" ); buttons[0].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (currentDisplay != 0)currentDisplay = 0; //advance to the end } }); buttons[1] = new JButton( "Prev" ); buttons[1].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (currentDisplay != 0)currentDisplay--; //advance to the end else currentDisplay = (inv.size()-1); } }); Icon bug1 = new ImageIcon( getClass().getResource( "bug1.gif" ) ); buttons[2] = new JButton( bug1 ); buttons[3] = new JButton( "Next" ); buttons[3].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (currentDisplay &lt; inv.size()-1)currentDisplay++; //advance to the end else currentDisplay = 0; stkover }}); buttons[4] = new JButton( "Last" ); buttons[4].addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (currentDisplay != inv.size()-1)currentDisplay = inv.size()-1; //advance to the end else currentDisplay = (inv.size()-1); } }); for(int count=0;count&lt;buttons.length;count++){buttonJPanel.add(buttons[count]);} add( buttonJPanel, BorderLayout.SOUTH ); }// end method }// end class AppGUI </code></pre> <p>Any hints tips or nudges appreciated. Don't do it all for me though please.</p>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload