italianmof
Nieuwe gebruiker
- Lid geworden
- 6 jan 2011
- Berichten
- 4
Ikheb al een werkende GUI met buttons en zoo ma nu zou ik graag van die buttons compound buttons maken, de code heb ik al gevonden maar het wil maar niet werke, hier een link naar de compoundbuttons :http://download.oracle.com/javase/tutorial/uiswing/components/border.html#custom
en hier is mijn code waarin die buttons vervangen moeten worden!
Gelieve niet op de rest te kijken, onderdeel van de opdracht
en hier is mijn code waarin die buttons vervangen moeten worden!
Code:
import java.util.ArrayList;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.border.*;
import java.text.NumberFormat;
import java.lang.Character;
import java.lang.Number;
import java.lang.NumberFormatException;
/**
* Kassa GUI
*
* @author (your name)
* @version (a version number or a date)
*/
public class KassaGUI implements ActionListener
{
private Kassa newKassa;
private Kelner kelner;
private Tafel tafel;
private Producten huidigProduct;
private double bedrag;
private JFrame frame;
private int huidigAantal;
private JPanel buttonPanel1;
private JPanel buttonPanel2;
private JPanel buttonPanel3;
private JPanel buttonPanel4;
private JPanel buttonPanel5;
private Container contentPane;
protected JTextField textField;
private JPanel popup;
/**
* Constructor for objects of class KassaGUI
*/
public KassaGUI()
{
newKassa = new Kassa(300);
bedrag = 0;
makeFrame();
}
/**
* Maak Swing-frame
*/
private void makeFrame()
{
frame = new JFrame("KassaSysteem");
makeMenuBar(frame);
contentPane = frame.getContentPane();
contentPane.setLayout(new BorderLayout());
/*
* Methode die de kelners toevoegd aan het panel.
*/
Kelners();
textField = new JTextField(20);
textField.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
readInput();
}
});
buttonPanel1.add(textField);
contentPane.add(buttonPanel1, BorderLayout.NORTH);
tafels();
contentPane.add(buttonPanel2, BorderLayout.WEST);
producten();
contentPane.add(buttonPanel3, BorderLayout.CENTER);
buttonPanel4 = new JPanel();
buttonPanel4.setLayout(new FlowLayout());
JButton bestel = new JButton("Toon Bestelling");
bestel.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e){
if(tafel == null) {
System.out.println("Selecteer eerst een tafel, daarna een kelner. ");
}
else {
tafel.toonBestelling();
}
}
});
buttonPanel4.add(bestel);
JButton afrekenen = new JButton("Afrekenen");
afrekenen.addActionListener(new ActionListener(){
public void actionPerformed(ActionEvent e) {
if(tafel==null){
System.out.println("Geen tafel geselecteerd.");
}
else{
if(bedrag >= tafel.prijsBestelling()) {
newKassa.inhoud(tafel.prijsBestelling());
tafel.afrekenen(bedrag);
}
else {
System.out.println("Geen geld of te weinig geld ingegeven.");
}
}
}
});
buttonPanel4.add(afrekenen);
JButton undo = new JButton("Undo");
undo.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
}
});
buttonPanel4.add(undo);
contentPane.add(buttonPanel4, BorderLayout.SOUTH);
JButton Stock = new JButton("Stock");
Stock.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
stock();
}
});
buttonPanel4.add(Stock);
contentPane.add(buttonPanel4, BorderLayout.SOUTH);
frame.pack();
frame.setVisible(true);
}
/**
* selecteer de gewenste kelner
*/
private void selectKelner(int i)
{
if(tafel == null)
{
System.out.println("Selecteer eerst een tafel aub.");
}
else
{
kelner = newKassa.getKelner(i-1);
kelner.printDetails();
tafel.kelner(kelner);
}
}
/**
* selecteer de tafel
*/
private void selectTafel(int i)
{
tafel = newKassa.getTafel(i-1);
System.out.println("Nummer tafel: " + tafel.returnNummer());
}
/**
* selecteer het aantal dranken dat je wil bestellen via soort pop-up
*/
public void keuze()
{
contentPane.remove(buttonPanel3);
popup = new JPanel(new GridLayout(4, 3));
int i = 0;
while(i<=9)
{
addButton(popup, ""+i);
i++;
}
contentPane.add(popup, BorderLayout.CENTER);
frame.pack();
}
private void addButton(Container panel, String buttonText)
{
JButton button = new JButton(buttonText);
button.addActionListener(this);
panel.add(button);
}
public void actionPerformed(ActionEvent event)
{
String command = event.getActionCommand();
int i = 0;
while(i<9){
if(command.equals("" + i)){
huidigAantal = i;
newKassa.stock(i,huidigProduct);
tafel.voegToeAanBestelling(huidigProduct, i);
}
i++;
}
contentPane.remove(popup);
contentPane.add(buttonPanel3, BorderLayout.CENTER);
frame.pack();
}
private void stock()
{
contentPane.remove(buttonPanel3);
buttonPanel5 = new JPanel();
buttonPanel5.setLayout(new BorderLayout());
JLabel status = new JLabel();
int i = 0;
try{
while(i<newKassa.productenSize())
{
System.out.println(newKassa.getProduct(i).returnNaam() + ": " + newKassa.stock(newKassa.getProduct(i)));
i++;
}
}
catch (Exception e) {
System.out.println(e);
}
buttonPanel5.add(status, BorderLayout.NORTH);
huidigProduct.addStock(bedrag);
bedrag = 0;
JButton terug = new JButton("Gereed");
JPanel flow = new JPanel();
flow.add(terug);
terug.addActionListener(new ActionListener() {
public void actionPerformed (ActionEvent e) {
contentPane.remove(buttonPanel5);
contentPane.add(buttonPanel3, BorderLayout.CENTER);
frame.pack();
}
});
buttonPanel5.add(flow);
contentPane.add(buttonPanel5, BorderLayout.CENTER);
frame.pack();
}
/**
* leest de invoer van het textveld en verandert de string in een double.
*/
private void readInput() //controleer of de invoer geldig is!
{
String bedragText = textField.getText();
if(isDouble(bedragText)) {
bedrag = Double.parseDouble(bedragText);
System.out.println("Ingegeven bedrag: " + bedrag);
}
else {
textField.setText("Geen geldige invoer");
}
textField.setText("");
}
private boolean isDouble(String text)
{
try{
Double.parseDouble(text);
} catch(NumberFormatException nfe) {
return false;
}
return true;
}
/**
* Maak een nieuwe bestelling, check eerst of er een kelner en tafel geselecteerd zijn,
* doe anders niets en waarschuw de gebruiker
*/
private void newBestelling()
{
if(kelner != null && tafel !=null) {
System.out.println("Nieuwe bestelling aangemaakt! Maak uw bestelling");
}
else {
System.out.println("Selecteer een kelner en een tafel.");
}
}
/**
* maak menu balk
*/
private void makeMenuBar(JFrame frame)
{
//menubar
JMenuBar menubar = new JMenuBar();
frame.setJMenuBar(menubar);
//menu items.
JMenu fileMenu = new JMenu("Item");
menubar.add(fileMenu);
JMenu helpMenu = new JMenu("Help");
menubar.add(helpMenu);
//drop-downs
JMenuItem newItem = new JMenuItem("Nieuwe bestelling");
newItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
newBestelling();
}
});
fileMenu.add(newItem);
JMenuItem kassaItem = new JMenuItem("Inhoud Kassa");
kassaItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
geld();
}
});
fileMenu.add(kassaItem);
JMenuItem nebItem = new JMenuItem("Andere tafel bedienen");
nebItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
System.out.println("Selecteer de bediende tafel, daarna de kelner.");
}
});
fileMenu.add(nebItem);
JMenuItem quitItem = new JMenuItem("Stoppen");
quitItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
quitKassa();
}
});
fileMenu.add(quitItem);
JMenuItem helpItem = new JMenuItem("Informatie");
helpItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
printHelp();
}
});
helpMenu.add(helpItem);
}
private void quitKassa()
{
System.exit(0);
}
private void printHelp()
{
System.out.println("Help");
}
private void geld()
{
double geld = newKassa.getGeld();
System.out.println("De inhoud van de kassa bedraagd: " + geld + " euro.");
}
/*
* Methode die de kelners aan het panel toevoegd.
*/
private void Kelners()
{
buttonPanel1 = new JPanel();
buttonPanel1.setLayout(new FlowLayout());
int i = 0;
while(i<newKassa.kelnersSize())
{
String naam = newKassa.getKelner(i).returnNaam();
JButton kelner = new JButton(naam);
kelner.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
int p = welkeKelner(e.getActionCommand());
selectKelner(p+1);
}
});
buttonPanel1.add(kelner);
i++;
}
}
/*
* Testen welke kelner aangeduid is.
* @param kelner : de ingegeven kelner bij het induwen van de knop.
*/
private int welkeKelner(String kelner)
{
int i = 0;
while (i<newKassa.kelnersSize())
{
if(kelner.equals(newKassa.getKelner(i).returnNaam()))
{
return i;
}
i++;
}
return i;
}
/*
* Methode die de tafels aan het panel toevoegd.
*/
private void tafels()
{
buttonPanel2 = new JPanel();
buttonPanel2.setLayout(new BoxLayout(buttonPanel2, BoxLayout.Y_AXIS));
int i = 0;
while(i<newKassa.tafelsSize())
{
JButton tafel = new JButton("Tafel " + newKassa.getTafel(i).returnNummer());
tafel.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
int p = welkeTafel(e.getActionCommand());
selectTafel(p+1);
}
});
i++;
buttonPanel2.add(tafel);
}
}
/*
* Methode om te zien welke tafel geselecteerd werd.
*/
private int welkeTafel(String tafel)
{
int i = 0;
while(i<newKassa.tafelsSize())
{
if(("Tafel " + newKassa.getTafel(i).returnNummer()).equals(tafel))
{
return i;
}
i++;
}
return i;
}
/*
* Methode om producten toe te voegen aan het panel.
*/
private void producten()
{
int i = 0;
buttonPanel3 = new JPanel();
buttonPanel3.setLayout(new GridLayout(3, 3));
while(i<newKassa.productenSize()){
JButton product = new JButton(newKassa.getProduct(i).returnNaam());
product.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
if(tafel==null)
{
System.out.println("Er is geen tafel geselecteerd.");
}
else if(tafel.kelner()==null)
{
System.out.println("Selecteer eerst een kelner voor deze tafel aub");
}
else
{
int p = welkProduct(e.getActionCommand());
huidigProduct = newKassa.getProduct(p);
keuze();
}
}
});
i++;
buttonPanel3.add(product);
}
}
/**
* Zien welk product geselecteerd is.
*/
private int welkProduct(String product)
{
int i = 0;
while(i<newKassa.productenSize())
{
if(newKassa.getProduct(i).returnNaam().equals(product))
{
return i;
}
i++;
}
return i;
}
}
Gelieve niet op de rest te kijken, onderdeel van de opdracht
Laatst bewerkt door een moderator: