•
•
•
•
What is DaniWeb IT Discussion Community?
You're currently browsing the Java section within the Software Development category of DaniWeb, a massive community of 456,539 software developers, web developers, Internet marketers, and tech gurus who are all enthusiastic about making contacts, networking, and learning from each other. In fact, there are 3,185 IT professionals currently interacting right now! Registration is free, only takes a minute and lets you enjoy all of the interactive features of the site.
Please support our Java advertiser: Lunarpages Java Web Hosting
Views: 542 | Replies: 6
![]() |
•
•
Join Date: Oct 2007
Posts: 7
Reputation:
Rep Power: 0
Solved Threads: 0
Hello Everyone,
I feel like I'm going around in circles! I can't figure out why by JButtons won't perform their assigned functionality. I have a first, previous, next, last, and save button. I've created actionListeners and actionEvents for all butons, but they still produce nothing. Any insight is extremely appreciated!!!!
The file complies, but the Jbuttons don't do anything......
I feel like I'm going around in circles! I can't figure out why by JButtons won't perform their assigned functionality. I have a first, previous, next, last, and save button. I've created actionListeners and actionEvents for all butons, but they still produce nothing. Any insight is extremely appreciated!!!!
The file complies, but the Jbuttons don't do anything......
import java.awt.*;
import java.io.*;
import java.text.*;
import java.util.*;
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;
import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JOptionPane;
import javax.swing.JLabel;
public class Inventory_Program6a extends JFrame
{
// instance variables
static int displayBooks = 0; // variable for actionEvents
private JButton firstButton;
private JButton previousButton;
private JButton nextButton;
private JButton lastButton;
private JButton addButton;
private JButton deleteButton;
private JButton modifyButton;
private JButton saveButton;
private JButton searchButton;
private JTextField bookTitleField;
private JTextField itemNumberField;
private JTextField unitsInStockField;
private JTextField bookPriceField;
private JTextField inventoryValueField;
private JTextField bookAuthorField;
private JTextField restockingFeeField;
private JLabel bookTitleLabel;
private JLabel itemNumberLabel;
private JLabel unitsInStockLabel;
private JLabel bookPriceLabel;
private JLabel inventoryValueLabel;
private JLabel bookAuthorLabel;
private JLabel restockingFeeLabel;
private JPanel display;
private JPanel content;
private JTextArea textArea;
private JLabel label;
// Declare an array of classes
private Book2 myBook[];
// method to sort inventory by book title
public Book2[] sortBookInventory()
{
for(int i = 0; i < myBook.length; i++)
{
String bookTitle1 = myBook[i].getBookTitle();
int min = i;
String bookTitle = bookTitle1;
for(int j = i+1; j < myBook.length; j++)
{
String bookTitle2 = myBook[j].getBookTitle();
if(bookTitle2.compareTo(bookTitle) < 0)
{
min = j;
bookTitle = bookTitle2;
}
}
if(!bookTitle.equals(bookTitle1))
{
Book2 temp = myBook[i];
myBook[i] = myBook[min];
myBook[min] = temp;
}
}
return myBook;
} // end method sortBookInventory
// constructor
public Inventory_Program6a()
{
double totalInventoryValue = 0.0;
// Specify how many items are in the array
// instantiate Book2 object
myBook = new Book2[5];
myBook[0] = new Book2("The Key Triology", 1, 25, 7.99, "Nora Roberts");
myBook[1] = new Book2("The Shinning", 2, 15, 5.99, "Stephen King");
myBook[2] = new Book2("Wild Acre", 3, 7, 4.99, "Phillipa Gregory");
myBook[3] = new Book2("Dark Paradise", 4, 2, 12.99, "Tami Hoag");
myBook[4] = new Book2("Dollhouse Murders", 5, 18, 2.95, "Betty Ren Wright");
// call method sort book inventory for display
sortBookInventory();
for (int i = 0; i<5; i++)
{
// display the book title
System.out.println("The book title is: " + myBook[i].getBookTitle());
// display the item number
System.out.println("The item number is: " + myBook[i].getItemNumber());
// display the number of units in stock
System.out.println("The number of units in stock is: " + myBook[i].getBookUnits());
// display the price per book
System.out.printf("The price of the book is: $%.2f\n", myBook[i].getBookPrice());
// display the value of the inventory
System.out.printf("The value of the inventory is: $%.2f\n", myBook[i].inventoryValue());
// display the book author
System.out.println("The book author is: " + myBook[i].getBookAuthor());
// display the restocking fee
System.out.println("Restock Fee: " + myBook[i].inventoryValue() * 0.05);
// calculate total inventory value with restocking fee added
totalInventoryValue += (myBook[i].inventoryValue() * 1.05);
// insert blank line
System.out.println();
} // end for
// display the total value of the inventory with the restocking fee
System.out.printf("The total value of the book inventory including the restocking fee is: $%5.2f.\n",
totalInventoryValue);
// display the total value of the inventory excluding the restocking fee
System.out.println("The total value of the book inventory is: " + totalInventoryValue());
//JLabel constructor for logo
Icon logo = new ImageIcon("C:/book.jpg");
label = new JLabel(logo);
label.setToolTipText("Joyce's Logo");
// Create content panel, set layout
content = new JPanel();
content.setLayout(new FlowLayout());
content.setLayout(new GridLayout(3,4));
// create JPanel for array items
display = new JPanel();
display.setLayout(new FlowLayout());
display.setLayout(new GridLayout(7,1));
// create textArea
textArea = new JTextArea(myBook[3]+"\n");
// set window (JFrame) characteristics
setLayout(new BorderLayout());
getContentPane().add(new JScrollPane(display), BorderLayout.CENTER);
getContentPane().add(content, BorderLayout.SOUTH);
getContentPane().add(label, BorderLayout.NORTH);
pack();
setTitle("Book Inventory Program");
setSize(400, 400); // set frame size
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
// initialize components
bookTitleField = new JTextField();
bookTitleField.setText(myBook[displayBooks].getBookTitle()+"\n");
bookTitleField.setEditable(false);
itemNumberField = new JTextField();
itemNumberField.setText(myBook[displayBooks].getItemNumber()+"\n");
itemNumberField.setEditable(false);
unitsInStockField = new JTextField();
unitsInStockField.setText(myBook[displayBooks].getBookUnits()+"\n");
unitsInStockField.setEditable(false);
bookPriceField = new JTextField();
bookPriceField.setText(myBook[displayBooks].getBookPrice()+"\n");
bookPriceField.setEditable(false);
inventoryValueField = new JTextField();
inventoryValueField.setText(myBook[displayBooks].inventoryValue()+"\n");
inventoryValueField.setEditable(false);
bookAuthorField = new JTextField();
bookAuthorField.setText(myBook[displayBooks].getBookAuthor()+"\n");
bookAuthorField.setEditable(false);
restockingFeeField = new JTextField();
restockingFeeField.setText(myBook[displayBooks].bookRestockingFee()+"\n");
restockingFeeField.setEditable(false);
// initialize components
firstButton = new JButton("First");
content.add(firstButton);
previousButton = new JButton("Previous");
content.add(previousButton);
nextButton = new JButton("Next");
content.add(nextButton);
lastButton = new JButton("Last");
content.add(lastButton);
addButton = new JButton("Add");
content.add(addButton);
deleteButton = new JButton("Delete");
content.add(deleteButton);
modifyButton = new JButton("Modify");
content.add(modifyButton);
saveButton = new JButton("Save");
content.add(saveButton);
searchButton = new JButton("Search");
content.add(searchButton);
// display JLabels and JTextFields on display panel
display.add(new JLabel("Book Title: "));
display.add(bookTitleField);
display.add(new JLabel("Item Number: "));
display.add(itemNumberField);
display.add(new JLabel("Units in Stock: "));
display.add(unitsInStockField);
display.add(new JLabel("Book Price: "));
display.add(bookPriceField);
display.add(new JLabel("Inventory Value: "));
display.add(inventoryValueField);
display.add(new JLabel("Book Author: "));
display.add(bookAuthorField);
display.add(new JLabel("Restocking Fee: "));
display.add(restockingFeeField);
// assign actionListener and actionEvent to firstButton
firstButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (event.getActionCommand()== "First")
{
displayBooks = 0;
}
} // end firstButton actionEvent
}); // end lastButton actionListener
// assign actionListener and actionEvent to previousButton
previousButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (event.getActionCommand()== "Previous")
displayBooks--;
if (displayBooks < 0)
{
displayBooks = 0;
if (displayBooks == 0)
{
displayBooks = displayBooks = myBook.length-1;
}
}
} // end previousButton actionEvent
}); // end previousBUtton actionListener
// assign actionListener and actionEvent to nextButton
nextButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (event.getActionCommand()== "Next")
displayBooks++;
if (displayBooks >= myBook.length)
{
displayBooks = myBook.length-1;
if (displayBooks == myBook.length-1)
{
displayBooks = 0;
}
}
} // end nextButton actionEvent
}); // end nextButton actionListener
// assign actionListener and actionEvent to lastButton
lastButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (event.getActionCommand()== "Last")
{
displayBooks = myBook.length-1;
}
} // end lastButton actionEvent
}); // end lastButton actionListener
// assign actionListener and actionEvent to saveButton
saveButton.addActionListener(new ActionListener()
{
public void actionPerformed(ActionEvent event)
{
if (event.getActionCommand()== "Save")
{
FileOutputStream out;
PrintStream p;
try
{
String strDirectory = "c:/data";
new File(strDirectory).mkdir();
out = new FileOutputStream ("C:/data/Inventory_Program6a.dat");
p = new PrintStream(out);
for (int i = 0; i<= 5 - 1; i++)
{
p.println("Book Title: " + myBook[i].getBookTitle()+"\n");
p.println("Item Number: " + myBook[i].getItemNumber()+"\n");
p.println("Book Units: " + myBook[i].getBookUnits()+"\n");
p.println("Book Price: " + myBook[i].getBookPrice()+"\n");
p.println("Inventory Value: " + myBook[i].inventoryValue()+"\n");
p.println("Book Restocking Fee: " + myBook[i].bookRestockingFee()+"\n");
p.println("");
}
p.close();
}
catch (Exception e)
{
System.out.println("error");
}
}
toString();
} // end lastButton actionEvent
}); // end lastButton actionListener
} // end constructor
// method to calculate the value of the entire inventory
public double totalInventoryValue()
{
double totalInventoryValue = 0.00;
for ( int counter = 0; counter < myBook.length; counter++ )
totalInventoryValue += myBook[counter].inventoryValue();
return totalInventoryValue;
} // end method totalBookValue
// main method begins execution of Java application
public static void main( String args [])
{
new Inventory_Program6a();
//create JFrame
Inventory_Program6a inventory = new Inventory_Program6a();
inventory.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
inventory.setVisible(true);
} // end method main
} // end class Inventory_Program6a Ok, it's pretty close but missing one important step: actually showing something in your text area. The listeners change your displayBooks index, but you still need a method to show the current book. I would make a method that takes a book index value as a parameter and shows (or selects) that book. Since you aren't currently doing anything with the text area, I can't be more specific about what should go there when the selected book changes.
![]() |
•
•
•
•
•
•
•
•
DaniWeb Java Marketplace
•
•
•
•
Currently Active Users Viewing This Thread: 1 (0 members and 1 guests)
- Alert Notification functionality like Outlook's reminder (ASP.NET)
- learning php (PHP)
- datagrid functionality (VB.NET)
- Changing the icons of JButtons (Java)
- How do I set linked Office files to open with full toolbar functionality? (JavaScript / DHTML / AJAX)
- Protect Source Code But Maintain Content Functionality (Windows Software)
- Eteamz like functionality (PHP)
Other Threads in the Java Forum
- Previous Thread: about finding server port number
- Next Thread: Array menu options + switch statement



Linear Mode