hallo@all
Es geht um ein Kleines Javaprogramm mit Oberfläche wo leider die Tabelle rumspinnt
Kurze Beschreibung des Projektes:
Vorstellen kann man sich die Applikation wie einen Einkaufszettel der eben am Computer auszufüllen ist,
man trägt die Menge ein, den Preis und die Bezeichnung, per Klick auf ADD wird der Eintrag einer Liste hinzugefügt welcher in einer Tabellenübersicht nochmals angezeigt wird (später wird ein PDF file erzeugt, wenn auf "absenden" geklickt wird)
die fehlerhafte Methode heißt dynamictable() , ist ziemlich weit unten im Code, ich glaub es ist sinnvoller alles zu schicken statt nur die Methode.
hoffentlich kann mir jemand helfen und wenns nur in der Theorie ist
die Klasse Ware habe ich allerdings nicht mitgeschickt, wäre dann wirklich zuviel Code,so rennt ihr mir hoffentlich noch nicht instant weg.
Diese hat lediglich die Datenfelder menge,preis,name mit dazugehörigen getter+setter methoden.
Hoffe ijemand blickt meine Struktur
Es geht um ein Kleines Javaprogramm mit Oberfläche wo leider die Tabelle rumspinnt
Kurze Beschreibung des Projektes:
Vorstellen kann man sich die Applikation wie einen Einkaufszettel der eben am Computer auszufüllen ist,
man trägt die Menge ein, den Preis und die Bezeichnung, per Klick auf ADD wird der Eintrag einer Liste hinzugefügt welcher in einer Tabellenübersicht nochmals angezeigt wird (später wird ein PDF file erzeugt, wenn auf "absenden" geklickt wird)
die fehlerhafte Methode heißt dynamictable() , ist ziemlich weit unten im Code, ich glaub es ist sinnvoller alles zu schicken statt nur die Methode.
hoffentlich kann mir jemand helfen und wenns nur in der Theorie ist
die Klasse Ware habe ich allerdings nicht mitgeschickt, wäre dann wirklich zuviel Code,so rennt ihr mir hoffentlich noch nicht instant weg.
Diese hat lediglich die Datenfelder menge,preis,name mit dazugehörigen getter+setter methoden.
Hoffe ijemand blickt meine Struktur
Java:
package de.ProgProjekt;
import java.awt.BorderLayout;
import java.awt.Container;
import java.awt.Dimension;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;
import javax.swing.BorderFactory;
import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.JTable;
import javax.swing.JTextField;
import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableModel;
public class Startoberflaeche {
private JFrame frame;
Container contentPane;
private Ware[] waren;
public ArrayList<Double> preise;
int i;
public Startoberflaeche() {
waren= new Ware[30];
preise =new ArrayList<Double>();
frame = new JFrame("Einkaufszettel app");
contentPane = frame.getContentPane();
((JComponent) contentPane).setBorder(new EmptyBorder(10, 10, 10, 10));
contentPane.setLayout(new BorderLayout(6, 6));
labelsetzen();
addtextfields();
abschicken();
frame.setResizable(false);
centerMe();
frame.pack();
frame.setVisible(true);
}
public void labelsetzen() {
JLabel label = new JLabel(
"<HTML><BODY>Deine persönliche Einkaufsliste"
+ " <BR> <BR> einfach alle benötigten Daten eintragen und bei"
+ " Klick auf <BR> --Abschicken--<BR> wird ein PDF-File erzeugt,welches "
+ " nur noch ausgedruckt<BR> werden muss. BETA</BODY></HTML>");
contentPane.add(label, BorderLayout.NORTH);
}
private void addtextfields() {
final JTextField bezeichnung = new JTextField();
final JTextField menge = new JTextField();
final JTextField preisvorstellung = new JTextField();
JLabel ueberschrift = new JLabel("<HTML><BODY>gewünschte Menge<BR>(2 Kisten,3 kg)<BODY><HTML>");
ueberschrift.setBorder(BorderFactory.createEtchedBorder());
JLabel ueberschrift2 = new JLabel("<HTML><BODY>Warenbezeichnung<BR>(Äpfel, Saft)<BODY><HTML>");
ueberschrift2.setBorder(BorderFactory.createEtchedBorder());
JLabel ueberschrift3 = new JLabel("<HTML><BODY>Preisschätzung<BR>in Euro (1.99)<BODY><HTML>");
ueberschrift3.setBorder(BorderFactory.createEtchedBorder());
JLabel ueberschrift4 = new JLabel();
JButton add = new JButton("add");
add.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent arg0) {
Ware neueWare = new Ware();
neueWare.setName(bezeichnung.getText());
neueWare.setMenge(menge.getText());
waren[i] = neueWare;
dynamictable();
i++;
}
});
JPanel textfieldButton = new JPanel(new GridLayout(2, 4));
textfieldButton.add(ueberschrift);
textfieldButton.add(ueberschrift2);
textfieldButton.add(ueberschrift3);
textfieldButton.add(ueberschrift4);
textfieldButton.add(menge);
textfieldButton.add(bezeichnung);
textfieldButton.add(preisvorstellung);
textfieldButton.add(add);
contentPane.add(textfieldButton, BorderLayout.CENTER);
}
public void dynamictable() {
int f=0;
// hier soll die dynamische Tabelle erzeugt werden
//for schleife wird später eingefügt
String[][] rowData= new String[i][3];
rowData[i][f] =waren[i].getMenge();
f++;
rowData[i][f] =waren[i].getName();
f++;
Object columnNames[] = { "Bezeichnung", "Menge", "Preisschätzung" };
DefaultTableModel tModel = new DefaultTableModel(rowData, columnNames);
JTable table = new JTable(tModel);
contentPane.add(table, BorderLayout.EAST);
frame.getContentPane().validate();
frame.pack();
}
// abschickenButton + Funktion.
private void abschicken() {
JButton abschicken = new JButton("abschicken");
abschicken.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
}
});
contentPane.add(abschicken, BorderLayout.SOUTH);
}
public void preisBerechnung()
{
}
private void centerMe() {
Dimension screensize = Toolkit.getDefaultToolkit().getScreenSize();
int x = (screensize.width / 2) - (frame.getWidth() / 2);
int y = (screensize.height / 2) - (frame.getHeight() / 2);
frame.setLocation(x, y);
}
public static void main(String[] args) {
Startoberflaeche oberflaeche = new Startoberflaeche();
}
}
Zuletzt bearbeitet von einem Moderator: