/*
* Arukeszlet.java
*
import java.util.*;
import javax.swing.*;
/
ListIterator it = ll.listIterator();
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
ITT_VÉGZEM_EL_A_MŰVELETET
}
public class Arukeszlet extends JFrame {
/**
* Konstruktor.
*/
public Arukeszlet() {
initComponents();
}
/**
* A törlés művelete.
*/
private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
ListIterator it = ll.listIterator();
String name = nameTextField.getText();
String price = priceTextField.getText();
String ammount = ammountTextField.getText();
final String toDelete = name + "; " + price + "; " + ammount; // azért final, mert
// 10 esetben 8szor a == helyett = írok, és így rögton pampog a fordító,
// nem kell a futási időben keresgélni órákig, hogy mit rontottam el...
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
if (toDelete.equals(element) ) {
sum -= Integer.parseInt(price)*Integer.parseInt(ammount);
summaTextField.setText(String.valueOf(sum) );
it.remove();
list.setListData(ll.toArray() );
nameTextField.setText("");
priceTextField.setText("");
ammountTextField.setText("");
return;
}
}// while
}// deleteButtonActionPerformed
/**
* String leellenőrzése, hogy szám-e.
*/
protected boolean isSzam(String str) {
for (int i=0; i < str.length(); i++) {
if ( ! Character.isDigit(str.charAt(i)) ) { // Végig kell menni a string minden
JOptionPane.showMessageDialog( // karakterén, és ellenőrizni, hogy
this, // szám-e.
"Nem megfelelő adat!",
"Hiba!",
JOptionPane.ERROR_MESSAGE
);
return false; // Aztán kiugrunk ...
}
}
return true;
}// isSzam
protected boolean llcontains(String str) {
ListIterator it = ll.listIterator();
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
String elementName = element.split(";")[0];
if (elementName.equals(str) ) { // FONTOS! Stringek között nem működik a ==,
// az equals() metódust KELL használni !!!
JOptionPane.showMessageDialog(
this,
"Ez az áru már rögzítésre került!",
"Hiba!",
JOptionPane.ERROR_MESSAGE
);
return true; // Aztán kiugrunk ...
}// if
}// while
return false;
}// llcontains
protected void listAddInAlphabeticOrder(String str) {
ListIterator it = ll.listIterator();
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
if (element.compareTo(str) > 0) { // A lexografikus ellenőrzés (a TELJES stringre).
ll.add(it.previousIndex(), str); // Ha nagyobb a vizsgált elem, akkor elé
// beszúrjuk az aktuálisat.
return; // Aztán kilépünk.
}
}
ll.addLast(str);
}// listAddInAlphabeticOrder
/**
* Új elem elhelyezése.
*/
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {
String name = nameTextField.getText(); // Olvashatóbb a kód,
String price = priceTextField.getText(); // ne keljen annyit írni,
String ammount = ammountTextField.getText(); // meg szép is!
// Az ellenőrzések:
if (name.length() == 0 || price.length() == 0 || ammount.length() == 0) return;
if ( llcontains(name) ) return;
if ( ! isSzam(price) ) return;
if ( ! isSzam(ammount) ) return;
listAddInAlphabeticOrder(name + "; " + price + "; " + ammount);
sum += Integer.parseInt(price) * Integer.parseInt(ammount); // sum update
summaTextField.setText(String.valueOf(sum) );
nameTextField.setText("");
priceTextField.setText("");
ammountTextField.setText("");
list.setListData(ll.toArray() );
}// saveButtonActionPerformed
/**
* Std kilépés, ha minden OK.
*/
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}// exitForm
/**
* @param args Indítási paraméterek.
*/
public static void main(String args[]) {
new Arukeszlet().show();
}
/**
* Ezzel rakom össze a GUI-t. NetBeansIDE maradék...
*/
private void initComponents() {
leftPanel = new javax.swing.JPanel();
newProductLabel = new javax.swing.JLabel();
leftNamePanel = new javax.swing.JPanel();
nameLabelPanel = new javax.swing.JPanel();
nameLabel = new javax.swing.JLabel();
nameTextFieldPanel = new javax.swing.JPanel();
nameTextField = new javax.swing.JTextField();
leftPricePanel = new javax.swing.JPanel();
priceLabelPanel = new javax.swing.JPanel();
priceLabel = new javax.swing.JLabel();
priceTextFieldPanel = new javax.swing.JPanel();
priceTextField = new javax.swing.JTextField();
leftAmmountPanel = new javax.swing.JPanel();
ammountLabelPanel = new javax.swing.JPanel();
ammountLabel = new javax.swing.JLabel();
ammountTextAreaPanel = new javax.swing.JPanel();
ammountTextField = new javax.swing.JTextField();
buttonsPanel = new javax.swing.JPanel();
saveButton = new javax.swing.JButton();
deleteButton = new javax.swing.JButton();
rightPanel = new javax.swing.JPanel();
list = new javax.swing.JList();
leftLowerPanel = new javax.swing.JPanel();
summaLabel = new javax.swing.JLabel();
summaTextField = new javax.swing.JTextField();
getContentPane().setLayout(new java.awt.GridLayout(0, 2));
leftPanel.setLayout(new java.awt.GridLayout(5, 0));
newProductLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
newProductLabel.setText("új termék rögzítése:");
leftPanel.add(newProductLabel);
leftNamePanel.setLayout(new java.awt.GridLayout(0, 2));
nameLabel.setText("Név:");
nameLabelPanel.add(nameLabel);
leftNamePanel.add(nameLabelPanel);
nameTextField.setColumns(10);
nameTextFieldPanel.add(nameTextField);
leftNamePanel.add(nameTextFieldPanel);
leftPanel.add(leftNamePanel);
leftPricePanel.setLayout(new java.awt.GridLayout(0, 2));
priceLabel.setText("Ár:");
priceLabelPanel.add(priceLabel);
leftPricePanel.add(priceLabelPanel);
priceTextField.setColumns(10);
priceTextFieldPanel.add(priceTextField);
leftPricePanel.add(priceTextFieldPanel);
leftPanel.add(leftPricePanel);
leftAmmountPanel.setLayout(new java.awt.GridLayout(0, 2));
ammountLabel.setText("Mennyiség:");
ammountLabelPanel.add(ammountLabel);
leftAmmountPanel.add(ammountLabelPanel);
ammountTextField.setColumns(10);
ammountTextAreaPanel.add(ammountTextField);
leftAmmountPanel.add(ammountTextAreaPanel);
leftPanel.add(leftAmmountPanel);
saveButton.setText("Mentés");
buttonsPanel.add(saveButton);
deleteButton.setText("Törlés");
buttonsPanel.add(deleteButton);
leftPanel.add(buttonsPanel);
getContentPane().add(leftPanel);
rightPanel.setLayout(new java.awt.BorderLayout());
rightPanel.add(list, java.awt.BorderLayout.CENTER);
leftLowerPanel.setLayout(new java.awt.BorderLayout());
summaLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
summaLabel.setText("Summa:");
leftLowerPanel.add(summaLabel, java.awt.BorderLayout.WEST);
summaTextField.setEditable(false);
summaTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
summaTextField.setToolTipText("A bolt árukészletének összértéke");
leftLowerPanel.add(summaTextField, java.awt.BorderLayout.CENTER);
rightPanel.add(leftLowerPanel, java.awt.BorderLayout.SOUTH);
getContentPane().add(rightPanel);
// Fontosabb dolgok:
list.setListData(ll.toArray() );
addListeners();
pack();
} // initComponents
/**
* Itt "akasztgatom" fel a szükséges figyelőket.
*/
protected void addListeners() {
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
saveButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveButtonActionPerformed(evt);
}
});
deleteButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteButtonActionPerformed(evt);
}
});
}// addListeners
// Start : Variables
protected LinkedList ll = new LinkedList(); // Az elemek tárolására
protected int sum = 0; // Az összértékhez.
// Start : Variables (GUI)
private JPanel ammountLabelPanel;
private JPanel ammountTextAreaPanel;
private JPanel buttonsPanel;
private JPanel leftAmmountPanel;
private JPanel leftLowerPanel;
private JPanel leftNamePanel;
private JPanel leftPanel;
private JPanel leftPricePanel;
private JPanel nameLabelPanel;
private JPanel nameTextFieldPanel;
private JPanel priceLabelPanel;
private JPanel priceTextFieldPanel;
private JPanel rightPanel;
private JLabel ammountLabel;
private JLabel summaLabel;
private JLabel nameLabel;
private JLabel newProductLabel;
private JLabel priceLabel;
private JTextField summaTextField;
private JTextField ammountTextField;
private JTextField nameTextField;
private JTextField priceTextField;
private JButton deleteButton;
private JButton saveButton;
private JList list;
// EoF : Variables
}
* Arukeszlet.java
*
import java.util.*;
import javax.swing.*;
/
ListIterator it = ll.listIterator();
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
ITT_VÉGZEM_EL_A_MŰVELETET
}
public class Arukeszlet extends JFrame {
/**
* Konstruktor.
*/
public Arukeszlet() {
initComponents();
}
/**
* A törlés művelete.
*/
private void deleteButtonActionPerformed(java.awt.event.ActionEvent evt) {
ListIterator it = ll.listIterator();
String name = nameTextField.getText();
String price = priceTextField.getText();
String ammount = ammountTextField.getText();
final String toDelete = name + "; " + price + "; " + ammount; // azért final, mert
// 10 esetben 8szor a == helyett = írok, és így rögton pampog a fordító,
// nem kell a futási időben keresgélni órákig, hogy mit rontottam el...
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
if (toDelete.equals(element) ) {
sum -= Integer.parseInt(price)*Integer.parseInt(ammount);
summaTextField.setText(String.valueOf(sum) );
it.remove();
list.setListData(ll.toArray() );
nameTextField.setText("");
priceTextField.setText("");
ammountTextField.setText("");
return;
}
}// while
}// deleteButtonActionPerformed
/**
* String leellenőrzése, hogy szám-e.
*/
protected boolean isSzam(String str) {
for (int i=0; i < str.length(); i++) {
if ( ! Character.isDigit(str.charAt(i)) ) { // Végig kell menni a string minden
JOptionPane.showMessageDialog( // karakterén, és ellenőrizni, hogy
this, // szám-e.
"Nem megfelelő adat!",
"Hiba!",
JOptionPane.ERROR_MESSAGE
);
return false; // Aztán kiugrunk ...
}
}
return true;
}// isSzam
protected boolean llcontains(String str) {
ListIterator it = ll.listIterator();
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
String elementName = element.split(";")[0];
if (elementName.equals(str) ) { // FONTOS! Stringek között nem működik a ==,
// az equals() metódust KELL használni !!!
JOptionPane.showMessageDialog(
this,
"Ez az áru már rögzítésre került!",
"Hiba!",
JOptionPane.ERROR_MESSAGE
);
return true; // Aztán kiugrunk ...
}// if
}// while
return false;
}// llcontains
protected void listAddInAlphabeticOrder(String str) {
ListIterator it = ll.listIterator();
String element = null;
while (it.hasNext() ) {
element = (String) it.next();
if (element.compareTo(str) > 0) { // A lexografikus ellenőrzés (a TELJES stringre).
ll.add(it.previousIndex(), str); // Ha nagyobb a vizsgált elem, akkor elé
// beszúrjuk az aktuálisat.
return; // Aztán kilépünk.
}
}
ll.addLast(str);
}// listAddInAlphabeticOrder
/**
* Új elem elhelyezése.
*/
private void saveButtonActionPerformed(java.awt.event.ActionEvent evt) {
String name = nameTextField.getText(); // Olvashatóbb a kód,
String price = priceTextField.getText(); // ne keljen annyit írni,
String ammount = ammountTextField.getText(); // meg szép is!
// Az ellenőrzések:
if (name.length() == 0 || price.length() == 0 || ammount.length() == 0) return;
if ( llcontains(name) ) return;
if ( ! isSzam(price) ) return;
if ( ! isSzam(ammount) ) return;
listAddInAlphabeticOrder(name + "; " + price + "; " + ammount);
sum += Integer.parseInt(price) * Integer.parseInt(ammount); // sum update
summaTextField.setText(String.valueOf(sum) );
nameTextField.setText("");
priceTextField.setText("");
ammountTextField.setText("");
list.setListData(ll.toArray() );
}// saveButtonActionPerformed
/**
* Std kilépés, ha minden OK.
*/
private void exitForm(java.awt.event.WindowEvent evt) {
System.exit(0);
}// exitForm
/**
* @param args Indítási paraméterek.
*/
public static void main(String args[]) {
new Arukeszlet().show();
}
/**
* Ezzel rakom össze a GUI-t. NetBeansIDE maradék...
*/
private void initComponents() {
leftPanel = new javax.swing.JPanel();
newProductLabel = new javax.swing.JLabel();
leftNamePanel = new javax.swing.JPanel();
nameLabelPanel = new javax.swing.JPanel();
nameLabel = new javax.swing.JLabel();
nameTextFieldPanel = new javax.swing.JPanel();
nameTextField = new javax.swing.JTextField();
leftPricePanel = new javax.swing.JPanel();
priceLabelPanel = new javax.swing.JPanel();
priceLabel = new javax.swing.JLabel();
priceTextFieldPanel = new javax.swing.JPanel();
priceTextField = new javax.swing.JTextField();
leftAmmountPanel = new javax.swing.JPanel();
ammountLabelPanel = new javax.swing.JPanel();
ammountLabel = new javax.swing.JLabel();
ammountTextAreaPanel = new javax.swing.JPanel();
ammountTextField = new javax.swing.JTextField();
buttonsPanel = new javax.swing.JPanel();
saveButton = new javax.swing.JButton();
deleteButton = new javax.swing.JButton();
rightPanel = new javax.swing.JPanel();
list = new javax.swing.JList();
leftLowerPanel = new javax.swing.JPanel();
summaLabel = new javax.swing.JLabel();
summaTextField = new javax.swing.JTextField();
getContentPane().setLayout(new java.awt.GridLayout(0, 2));
leftPanel.setLayout(new java.awt.GridLayout(5, 0));
newProductLabel.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
newProductLabel.setText("új termék rögzítése:");
leftPanel.add(newProductLabel);
leftNamePanel.setLayout(new java.awt.GridLayout(0, 2));
nameLabel.setText("Név:");
nameLabelPanel.add(nameLabel);
leftNamePanel.add(nameLabelPanel);
nameTextField.setColumns(10);
nameTextFieldPanel.add(nameTextField);
leftNamePanel.add(nameTextFieldPanel);
leftPanel.add(leftNamePanel);
leftPricePanel.setLayout(new java.awt.GridLayout(0, 2));
priceLabel.setText("Ár:");
priceLabelPanel.add(priceLabel);
leftPricePanel.add(priceLabelPanel);
priceTextField.setColumns(10);
priceTextFieldPanel.add(priceTextField);
leftPricePanel.add(priceTextFieldPanel);
leftPanel.add(leftPricePanel);
leftAmmountPanel.setLayout(new java.awt.GridLayout(0, 2));
ammountLabel.setText("Mennyiség:");
ammountLabelPanel.add(ammountLabel);
leftAmmountPanel.add(ammountLabelPanel);
ammountTextField.setColumns(10);
ammountTextAreaPanel.add(ammountTextField);
leftAmmountPanel.add(ammountTextAreaPanel);
leftPanel.add(leftAmmountPanel);
saveButton.setText("Mentés");
buttonsPanel.add(saveButton);
deleteButton.setText("Törlés");
buttonsPanel.add(deleteButton);
leftPanel.add(buttonsPanel);
getContentPane().add(leftPanel);
rightPanel.setLayout(new java.awt.BorderLayout());
rightPanel.add(list, java.awt.BorderLayout.CENTER);
leftLowerPanel.setLayout(new java.awt.BorderLayout());
summaLabel.setHorizontalAlignment(javax.swing.SwingConstants.LEFT);
summaLabel.setText("Summa:");
leftLowerPanel.add(summaLabel, java.awt.BorderLayout.WEST);
summaTextField.setEditable(false);
summaTextField.setHorizontalAlignment(javax.swing.JTextField.RIGHT);
summaTextField.setToolTipText("A bolt árukészletének összértéke");
leftLowerPanel.add(summaTextField, java.awt.BorderLayout.CENTER);
rightPanel.add(leftLowerPanel, java.awt.BorderLayout.SOUTH);
getContentPane().add(rightPanel);
// Fontosabb dolgok:
list.setListData(ll.toArray() );
addListeners();
pack();
} // initComponents
/**
* Itt "akasztgatom" fel a szükséges figyelőket.
*/
protected void addListeners() {
addWindowListener(new java.awt.event.WindowAdapter() {
public void windowClosing(java.awt.event.WindowEvent evt) {
exitForm(evt);
}
});
saveButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
saveButtonActionPerformed(evt);
}
});
deleteButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
deleteButtonActionPerformed(evt);
}
});
}// addListeners
// Start : Variables
protected LinkedList ll = new LinkedList(); // Az elemek tárolására
protected int sum = 0; // Az összértékhez.
// Start : Variables (GUI)
private JPanel ammountLabelPanel;
private JPanel ammountTextAreaPanel;
private JPanel buttonsPanel;
private JPanel leftAmmountPanel;
private JPanel leftLowerPanel;
private JPanel leftNamePanel;
private JPanel leftPanel;
private JPanel leftPricePanel;
private JPanel nameLabelPanel;
private JPanel nameTextFieldPanel;
private JPanel priceLabelPanel;
private JPanel priceTextFieldPanel;
private JPanel rightPanel;
private JLabel ammountLabel;
private JLabel summaLabel;
private JLabel nameLabel;
private JLabel newProductLabel;
private JLabel priceLabel;
private JTextField summaTextField;
private JTextField ammountTextField;
private JTextField nameTextField;
private JTextField priceTextField;
private JButton deleteButton;
private JButton saveButton;
private JList list;
// EoF : Variables
}
Nincsenek megjegyzések:
Megjegyzés küldése