Schönen guten Morgen.
Neuer Tag neues Problem mit der ArrayList. Ich möchte gerne die ArrayList aus der Klasse Texteingabe auch in der Klasse GanntDiagrammDarstellung verwenden. Leider darf ich die Getter-Methode mit "static" nicht verwenden, da mir gesagt wird das wäre unsauber, dass man static mehr als einmal benutzt.
Wer auch noch ein paar Tipps zu generellen Struktur hat immer gerne
Strukturierung liegt mir gar nicht.
Vielen dank im voraus für jede Hilfe
Neuer Tag neues Problem mit der ArrayList. Ich möchte gerne die ArrayList aus der Klasse Texteingabe auch in der Klasse GanntDiagrammDarstellung verwenden. Leider darf ich die Getter-Methode mit "static" nicht verwenden, da mir gesagt wird das wäre unsauber, dass man static mehr als einmal benutzt.
Wer auch noch ein paar Tipps zu generellen Struktur hat immer gerne
Strukturierung liegt mir gar nicht.
Vielen dank im voraus für jede Hilfe
Java:
public class TestBenutzeroberfläche {
public static void main(String[] args) {
new Benutzeroberfläche();
}
}
Java:
public class Vorgang {
private String name;
private double anfang;
private double dauer;
public Vorgang(String name, double anfang, double dauer) {
this.name = name;
this.anfang = anfang;
this.dauer = dauer;
}
public String getName() {
return name;
}
public double getAnfang() {
return anfang;
}
public double getDauer() {
return dauer;
}
}
Java:
import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JPanel;
public class GanttDiagrammDarstellung extends JPanel {
public GanttDiagrammDarstellung() {
super();
}
public void zeitunterteilung(Graphics g) {
for (int i = 1; i < 5; i++) {
g.drawLine(i * 25, 100, i * 25, 500);
g.setColor(Color.gray);
}
}
public void paintComponent(Graphics g) {
zeitunterteilung(g);
}
}
Java:
import java.util.ArrayList;
import javax.swing.DefaultListModel;
import javax.swing.JList;
import javax.swing.JTextField;
public class Texteingabe {
private ArrayList<Vorgang> vorgaenge = new ArrayList<Vorgang>();
public Texteingabe() {
}
public void eingabe(JTextField bezeichnung, JTextField anfang,
JTextField dauer, DefaultListModel daten, JList auflistung) {
String name = bezeichnung.getText();
double a = Double.parseDouble(anfang.getText());
double d = Double.parseDouble(dauer.getText());
vorgaenge.add(new Vorgang(name, a, d));
daten.addElement(name);
}
public void bearbeiten(JTextField bezeichnung, JTextField anfang,
JTextField dauer, DefaultListModel daten, JList auflistung,
int index) {
bezeichnung.setText(vorgaenge.get(index).getName());
anfang.setText("" + vorgaenge.get(index).getAnfang());
dauer.setText("" + vorgaenge.get(index).getDauer());
vorgaenge.remove(index);
daten.remove(index);
}
public void entfernen(DefaultListModel daten, JList auflistung, int index) {
vorgaenge.remove(index);
daten.remove(index);
}
}
Java:
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseEvent;
import java.awt.event.MouseListener;
import javax.swing.DefaultListModel;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextField;
import javax.swing.border.TitledBorder;
public class Benutzeroberfläche extends JFrame implements ActionListener,
MouseListener {
private DefaultListModel daten = new DefaultListModel();
private JList auflistung = new JList(daten);
private JButton hinzufuegen = new JButton("Vorgang hinzufügen");
private JButton bearbeiten = new JButton("Vorgang bearbeiten");
private JButton entfernen = new JButton("Vorgang entfernen");
private JTextField bezeichnung = new JTextField();
private JTextField anfang = new JTextField();
private JTextField dauer = new JTextField();
private JTextField erfüllt = new JTextField();
private JButton uebernehmen = new JButton("Änderungen übernehmen");
private JPanel p1, p2, p3, p4, p5, p6, p7,p8;
private int index;
Texteingabe t = new Texteingabe();
public Benutzeroberfläche() {
JFrame f = new JFrame();
f.setTitle("Gannt-Diagramm-Editor");
f.setSize(1050, 650);
f.setLocationRelativeTo(null);
f.setVisible(true);
f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
bezeichnung.enable(false);
anfang.enable(false);
dauer.enable(false);
erfüllt.enable(false);
// JPanel-Verschachtelung zur Darstellung "Alle Vorgänge"
p1 = new JPanel(new GridLayout(2, 1, 5, 5));
p1.setBorder(new TitledBorder("Alle Vorgänge"));
p1.add(auflistung);
p2 = new JPanel(new GridLayout(3, 1, 5, 5));
p2.add(hinzufuegen);
p2.add(bearbeiten);
p2.add(entfernen);
p1.add(p2);
// JPanel-Verschachtelung zur Darstellung "Vorgangsdaten"
p3 = new JPanel(new BorderLayout(5, 5));
p6 = new JPanel(new GridLayout(4, 2, 5, 5));
p3.setBorder(new TitledBorder("Vorgangsdaten"));
p6.add(new JLabel("Bezeichnung"));
p6.add(bezeichnung);
p6.add(new JLabel("Starttag"));
p6.add(anfang);
p6.add(new JLabel("Dauer"));
p6.add(dauer);
p6.add(new JLabel("Erfüllt"));
p6.add(erfüllt);
p3.add(p6, BorderLayout.CENTER);
p3.add(uebernehmen, BorderLayout.SOUTH);
p7 = new JPanel(new GridLayout(1, 1, 5, 5));
p7.setBorder(new TitledBorder("Projektdaten"));
p4 = new JPanel(new GridLayout(3, 1));
p4.add(p1);
p4.add(p3);
p4.add(p7);
// JPanel zur Darstellung des Gantt-Diagramms
p5 = new JPanel(new GridLayout(1, 1, 10, 10));
p5.setBorder(new TitledBorder("Diagramm"));
p8 = new GanttDiagrammDarstellung();
p5.add(p8);
f.add(p4, BorderLayout.WEST);
f.add(p5, BorderLayout.CENTER);
// ActionListener-Methode den JButtons zuweisen
hinzufuegen.addActionListener(this);
uebernehmen.addActionListener(this);
bearbeiten.addActionListener(this);
entfernen.addActionListener(this);
auflistung.addMouseListener(this);
}
//mouseClicked-Event zur Bestimmung des angewählten Namens
public void mouseClicked(MouseEvent e) {
if (e.getClickCount() == 1) {
index = auflistung.locationToIndex(e.getPoint());
}
}
public void actionPerformed(ActionEvent ae) {
if (ae.getSource() == hinzufuegen) {
bezeichnung.enable(true);
anfang.enable(true);
dauer.enable(true);
erfüllt.enable(true);
}
if (ae.getSource() == bearbeiten) {
bezeichnung.enable(true);
anfang.enable(true);
dauer.enable(true);
erfüllt.enable(true);
t.bearbeiten(bezeichnung, anfang, dauer, daten, auflistung, index);
}
if (ae.getSource() == entfernen) {
bezeichnung.enable(true);
anfang.enable(true);
dauer.enable(true);
erfüllt.enable(true);
t.entfernen(daten, auflistung, index);
}
if (ae.getSource() == uebernehmen) {
t.eingabe(bezeichnung, anfang, dauer, daten, auflistung);
bezeichnung.setText("");
anfang.setText("");
dauer.setText("");
bezeichnung.enable(false);
anfang.enable(false);
dauer.enable(false);
erfüllt.enable(false);
}
}
public void mouseEntered(MouseEvent e) {
}
public void mouseExited(MouseEvent e) {
}
public void mousePressed(MouseEvent e) {
}
public void mouseReleased(MouseEvent e) {
}
}