Variablen Attribute

AdelJaha174

Mitglied
Hallo,

ich schreibe derzeit ein elektronisches Kochbuch. Ich bin fast fertig damit, allerdings stehte ich jetzt vor einem Problem. In der MainFrame Klasse, kann ich über ein JMenu ein newRezeptFrame aufrufen. In diesem ist ein Button, dieser schließt das Fenster wieder und erstellt mit den eingegeben Daten ein neues Rezept.

Soweit ist alles geregelt. Nun habe ich allerdings das Problem, dass in der MainFrame Klasse die Variable rezeptListe steht. Diese ist vom Typ ArrayList<Rezept>, da wir ja "Rezepte" einfügen wollen.
Wie kann ich nun das neue Rezept in diese Liste einfügen. Da ich eine gesamte Liste mit allen rezepten haben will, die ich dann sortieren oder nach rezepten bzw. Kategorien suchen kann.
Ich habe den Quellcode etwas gekürzt, da sonst das Forum gesprengt worden wäre ;)

Java:
package MainPackage;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.Icon;
import javax.swing.ImageIcon;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JPanel;


public class MainFrame{

	//Author AdelJaha174
	
	/**
	 * @param args
	 */
	private JFrame MainFrame;
	private JPanel centerPanel;

	public ArrayList<Rezept> rezeptArrayList;
	
	private JLabel EinführungLabel;
	private JLabel PictureLabel;
	
	private JMenuBar menubar;
	private JMenu menu_datei;
	private JMenu menu_extras;
	private JMenu menu_hilfe;
	
	private JMenuItem menu_datei_rezepte;
	private JMenuItem menu_datei_neu;
	
	private JMenuItem menu_datei_rezepte_suchen;
	private JMenuItem menu_datei_rezepte_alle;
	
	private JMenuItem menu_datei_suchen_rezept;
	private JMenuItem menu_datei_suchen_kategorie;
	
	private JMenuItem menu_extras_chrono;
	  
	private JMenuItem menu_hilfe_hilfe;
	private JMenuItem menu_hilfe_about;
	
	public MainFrame()
	{
	  MainFrame = new JFrame("Frisch auf den Tisch");
	  MainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	  
	  rezeptArrayList = new ArrayList<Rezept>();
	  
	  //Menübar wird erstellt
	  menubar = new JMenuBar();
	  //Menüs werden ertsellt
	  menu_datei = new JMenu("Datei");
	  menu_extras = new JMenu("Extras");
	  menu_hilfe = new JMenu("Hilfe");
	  //Untermenüs für Datei werden erstellt 
	  menu_datei_neu = new JMenuItem("Neues Rezept erstellen");
	  menu_datei_rezepte = new JMenu("Rezepte");
	  //Untermenüs für Rezepte werden erstellt
	  menu_datei_rezepte_suchen = new JMenu("Suchen");
	  menu_datei_rezepte_alle = new JMenuItem("Alle Rezepte");
	  //Untermenüs für Suchen werden erstellt
	  menu_datei_suchen_rezept = new JMenuItem("Rezept");
	  menu_datei_suchen_kategorie = new JMenuItem("Kategorie");
	  //Untermenüs für Extras werden erstellt
	  menu_extras_chrono = new JMenuItem("Chronometrer");
	  //Untermenüs für Hilfe werden erstellt
	  menu_hilfe_hilfe = new JMenuItem("Hilfe");
	  menu_hilfe_about = new JMenuItem("About");
	  //Untermenüs werden zu Datei hinzugefügt
	  menu_datei.add(menu_datei_rezepte);
	  menu_datei.add(menu_datei_neu);
	  //Untermenüs werden zu Rezepte hinzugefügt
	  menu_datei_rezepte.add(menu_datei_rezepte_alle);
	  menu_datei_rezepte.add(menu_datei_rezepte_suchen);
	  //Untermenüs werden zu Suchen hinzugefügt
	  menu_datei_rezepte_suchen.add(menu_datei_suchen_rezept);
	  menu_datei_rezepte_suchen.add(menu_datei_suchen_kategorie);
	  //Untermenüs werden zu Extras hinzugefügt
	  menu_extras.add(menu_extras_chrono);
	  //Untermenüs werden zu Hilfe hinzugefügt
	  menu_hilfe.add(menu_hilfe_hilfe);
	  menu_hilfe.add(menu_hilfe_about);
	  //Menüs werden zu Menübar hinzugefügt
	  menubar.add(menu_datei);
	  menubar.add(menu_extras);
	  menubar.add(menu_hilfe);
	  //ActionListener für die Untermenüs
	  menu_datei_neu.addActionListener(new datei_neuActionListener());
	  
	  MainFrame.getContentPane().setLayout(new BorderLayout(0,0));
	 
	  centerPanel = new JPanel();
	  centerPanel.setBackground(Color.WHITE);
	  centerPanel.setLayout(new GridBagLayout());  
	  
	  EinführungLabel = new JLabel("<HTML><BODY><u>Einleitung : </u>" +
			  							   "<BR>" +
			  							   "<BR>" +
	  		                               "Willkommen bei FadT dem elektronischen Kochbuch.<BR>" +
	  		                               "FadT ist ein Multifunktionskochbuch,<BR>" +
	  		                               "von Fisch- und Fleischgerichten bis hin zu Salaten und <BR>" +
	  		                               "vegetarischer Küche, finden sie hier alles.<BR>" +
	  		                               "Sie können Rezepte nachkochen oder aber auch eigene erstellen.<BR>" +
	  		                               "Wir hoffen, dass Sie viel Spaß an diesem Kochbuch finden werden.</BODY></HTML>");
	  EinführungLabel.setFont(new Font("Times New Roman",0,14));
	  GridBagConstraints leftConstraints = new GridBagConstraints();
	  leftConstraints.insets = new Insets(0,0,150,0);
	  leftConstraints.anchor = new GridBagConstraints().WEST;
	  
	  Icon Icon = new ImageIcon(getClass().getResource("koch.jpg"));
	  PictureLabel = new JLabel(Icon);
	  GridBagConstraints rightConstraints = new GridBagConstraints();
	  rightConstraints.anchor = new GridBagConstraints().NORTH;
	  
	  centerPanel.add(EinführungLabel,leftConstraints);
	  centerPanel.add(PictureLabel,rightConstraints);
	  
	  MainFrame.getContentPane().add(BorderLayout.CENTER,centerPanel);
	  MainFrame.getContentPane().add(BorderLayout.NORTH,menubar);
	  
	  MainFrame.pack();
	  MainFrame.setResizable(false);
	  MainFrame.setVisible(true);
	  
	  //Platziert das Menü
	  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
	  int w = MainFrame.getWidth();
	  int h = MainFrame.getHeight();
	  int x = (d.width-w)/4;
	  int y = (d.height-h)/4;
	  MainFrame.setLocation(x,y); 
	}
	
	public static class datei_neuActionListener implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
		  NewRezeptFrame newRezeptFrame = new NewRezeptFrame();
		}
	}
	
	public static void main(String[] args) {
	  MainFrame Menu = new MainFrame();
	}
}

newRezeptFrame

Java:
package MainPackage;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
import java.awt.GridBagConstraints;
import java.awt.GridBagLayout;
import java.awt.GridLayout;
import java.awt.Insets;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JTextArea;
import javax.swing.JTextField;

public class NewRezeptFrame{
	
private JFrame newRezeptFrame;
private JPanel newRezeptPanel;
private ArrayList<Zutat> zutatenArrayList = new ArrayList<Zutat>(); 

//Objekte der linken Seite
private JLabel gerichtLabel;
private JComboBox gerichtComboBox;
private JLabel zutatenLabel;
private JTextField mengeTextField;
private JLabel mengeLabel;
private JTextField einheitTextField;
private JLabel einheitLabel;
private JTextField produktTextField;
private JLabel produktLabel;
private JButton hinzufügenButton;
private JList zutatenJList;

//Objekte der rechten Seite
private JLabel nameLabel;
private JTextField nameTextField;
private JLabel warningsLabel;
private JLabel zubereitungLabel;
private JTextArea zubereitungTextArea;

//Fertigstellen des Rezepts
private JButton fertigstellenButton;

public NewRezeptFrame()
{
  //Erzeugung des Frames
  newRezeptFrame = new JFrame();
  newRezeptFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  newRezeptFrame.setLayout(new GridLayout(1,1));
  //Panel für das Frame	
  newRezeptPanel = new JPanel();
  newRezeptPanel.setLayout(new GridBagLayout());

  //Layout Manager
  gerichtLabel = new JLabel("Gericht :");
  gerichtLabel.setPreferredSize(new Dimension(140,14));
  GridBagConstraints left1 = new GridBagConstraints();
  left1.gridx = 0;
  left1.gridy = 0;
  left1.gridwidth = 2;
  left1.gridheight = 1;
  left1.insets = new Insets(9,10,0,0);
  left1.anchor = GridBagConstraints.SOUTHWEST;
  
  //ComboBox füllen
  String comboBoxListe[] = {"","Salate","Eiergerichte","Suppen und Eintöpfe","",
		                    "Fisch und Meeresfrüchte","Geflügel","Fleisch und Wild","",
		                    "Gemüse","Kartoffeln","",
		                    "Reis","Teigwaren","",
		                    "Nachspeisen"};
  
  gerichtComboBox = new JComboBox(comboBoxListe);
  gerichtComboBox.setPreferredSize(new Dimension(140,20));
  GridBagConstraints left2 = new GridBagConstraints();
  left2.gridx = 0;
  left2.gridy = 1;
  left2.gridwidth = 2;
  left2.gridheight = 1;
  left2.insets = new Insets(9,10,0,0);
  left2.anchor = GridBagConstraints.SOUTHWEST;
  
  zutatenLabel = new JLabel("Zutaten :");
  zutatenLabel.setPreferredSize(new Dimension(140,14));
  GridBagConstraints left3 = new GridBagConstraints();
  left3.gridx = 0;
  left3.gridy = 2;
  left3.gridwidth = 2;
  left3.gridheight = 1;
  left3.insets = new Insets(12,10,0,0);
  left3.anchor = GridBagConstraints.SOUTHWEST;
  
  mengeTextField = new JTextField();
  mengeTextField.setPreferredSize(new Dimension(99,20));
  GridBagConstraints left4 = new GridBagConstraints();
  left4.gridx = 0;
  left4.gridy = 3;
  left4.gridwidth = 1;
  left4.gridheight = 1;
  left4.insets = new Insets(9,10,0,0);
  left4.anchor = GridBagConstraints.NORTHWEST;
  
  mengeLabel = new JLabel("Menge");
  mengeLabel.setPreferredSize(new Dimension(37,20));
  mengeLabel.setFont(new Font("",0,10));
  GridBagConstraints left5 = new GridBagConstraints();
  left5.gridx = 1;
  left5.gridy = 3;
  left5.gridwidth = 1;
  left5.gridheight = 1;
  left5.insets = new Insets(9,4,0,0);
  left5.anchor = GridBagConstraints.SOUTHWEST;
  
  einheitTextField = new JTextField();
  einheitTextField.setPreferredSize(new Dimension(99,20));
  GridBagConstraints left6 = new GridBagConstraints();
  left6.gridx = 0;
  left6.gridy = 4;
  left6.gridwidth = 1;
  left6.gridheight = 1;
  left6.insets = new Insets(9,10,0,0);
  left6.anchor = GridBagConstraints.NORTHWEST;
  
  einheitLabel = new JLabel("Einheit");
  einheitLabel.setPreferredSize(new Dimension(37,20));
  einheitLabel.setFont(new Font("",0,10));
  GridBagConstraints left7 = new GridBagConstraints();
  left7.gridx = 1;
  left7.gridy = 4;
  left7.gridwidth = 1;
  left7.gridheight = 1;
  left7.insets = new Insets(9,4,0,0);
  left7.anchor = GridBagConstraints.SOUTHWEST;
  
  produktTextField = new JTextField();
  produktTextField.setPreferredSize(new Dimension(99,20));
  GridBagConstraints left8 = new GridBagConstraints();
  left8.gridx = 0;
  left8.gridy = 5;
  left8.gridwidth = 1;
  left8.gridheight = 1;
  left8.insets = new Insets(9,10,0,0);
  left8.anchor = GridBagConstraints.NORTHWEST;
  
  produktLabel = new JLabel("Produkt");
  produktLabel.setPreferredSize(new Dimension(37,20));
  produktLabel.setFont(new Font("",0,10));
  GridBagConstraints left9 = new GridBagConstraints();
  left9.gridx = 1;
  left9.gridy = 5;
  left9.gridwidth = 1;
  left9.gridheight = 1;
  left9.insets = new Insets(9,4,0,0);
  left9.anchor = GridBagConstraints.SOUTHWEST;
  
  hinzufügenButton = new JButton("Hinzufügen");
  hinzufügenButton.setPreferredSize(new Dimension(110,20));
  GridBagConstraints left10 = new GridBagConstraints();
  left10.gridx = 0;
  left10.gridy = 6;
  left10.gridwidth = 2;
  left10.gridheight = 1;
  left10.insets = new Insets(9,10,0,0);
  left10.anchor = GridBagConstraints.NORTHEAST;
  hinzufügenButton.addActionListener(new hinzufügenButtonListener());
  
  zutatenJList = new JList();
  zutatenJList.setPreferredSize(new Dimension(140,252));
  GridBagConstraints left11 = new GridBagConstraints();
  left11.gridx = 0;
  left11.gridy = 7;
  left11.gridwidth = 2;
  left11.gridheight = 1;
  left11.insets = new Insets(12,10,11,0);
  left11.anchor = GridBagConstraints.NORTHEAST;
  
  nameLabel = new JLabel("Name :");
  nameLabel.setPreferredSize(new Dimension(140,14));
  GridBagConstraints right1 = new GridBagConstraints();
  right1.gridx = 2;
  right1.gridy = 0;
  right1.gridwidth = 1;
  right1.gridheight = 1;
  right1.insets = new Insets(9,20,0,0);
  right1.anchor = GridBagConstraints.NORTHWEST;
  
  nameTextField = new JTextField();
  nameTextField.setPreferredSize(new Dimension(140,20));
  GridBagConstraints right2 = new GridBagConstraints();
  right2.gridx = 2;
  right2.gridy = 1;
  right2.gridwidth = 1;
  right2.gridheight = 1;
  right2.insets = new Insets(9,20,0,0);
  right2.anchor = GridBagConstraints.NORTHWEST;
  
  warningsLabel = new JLabel("Fügen Sie alle Zutaten der Reihe nach ein, sowie die Zubereitung");
  warningsLabel.setPreferredSize(new Dimension(372,14));
  GridBagConstraints right3 = new GridBagConstraints();
  right3.gridx = 3;
  right3.gridy = 1;
  right3.gridwidth = 1;
  right3.gridheight = 1;
  right3.insets = new Insets(9,20,0,0);
  right3.anchor = GridBagConstraints.NORTHWEST;
  
  zubereitungLabel = new JLabel("Zubereitung :");
  zubereitungLabel.setPreferredSize(new Dimension(140,14));
  GridBagConstraints right4 = new GridBagConstraints();
  right4.gridx = 2;
  right4.gridy = 2;
  right4.gridwidth = 1;
  right4.gridheight = 1;
  right4.insets = new Insets(9,20,0,0);
  right4.anchor = GridBagConstraints.NORTHWEST;
  
  zubereitungTextArea = new JTextArea();
  zubereitungTextArea.setPreferredSize(new Dimension(532,371));
  GridBagConstraints right5 = new GridBagConstraints();
  right5.gridx = 2;
  right5.gridy = 3;
  right5.gridwidth = 2;
  right5.gridheight = 5;
  right5.insets = new Insets(9,20,11,8);
  right5.anchor = GridBagConstraints.NORTHWEST;
  
  fertigstellenButton = new JButton("Rezept speichern");
  fertigstellenButton.setPreferredSize(new Dimension(410,20));
  GridBagConstraints bottom1 = new GridBagConstraints();
  bottom1.gridx = 2;
  bottom1.gridy = 10;
  bottom1.gridwidth = 2;
  bottom1.gridheight = 1;
  bottom1.insets = new Insets(11,20,11,0);
  fertigstellenButton.addActionListener(new fertigstellenButtonListener());
  
  newRezeptPanel.add(gerichtLabel,left1);
  newRezeptPanel.add(gerichtComboBox,left2);
  newRezeptPanel.add(zutatenLabel,left3);
  newRezeptPanel.add(mengeTextField,left4);
  newRezeptPanel.add(mengeLabel,left5);
  newRezeptPanel.add(einheitTextField,left6);
  newRezeptPanel.add(einheitLabel,left7);
  newRezeptPanel.add(produktTextField,left8);
  newRezeptPanel.add(produktLabel,left9);
  newRezeptPanel.add(hinzufügenButton,left10);
  newRezeptPanel.add(zutatenJList,left11);
  newRezeptPanel.add(nameLabel,right1);
  newRezeptPanel.add(nameTextField,right2);
  newRezeptPanel.add(warningsLabel,right3);
  newRezeptPanel.add(zubereitungLabel,right4);
  newRezeptPanel.add(zubereitungTextArea,right5);
  newRezeptPanel.add(fertigstellenButton,bottom1);
  
  
  newRezeptFrame.add(newRezeptPanel);
  
  //Ändert Hintergrundfarbe des Panels
  Color color = new Color(220,220,220);
  newRezeptPanel.setBackground(color);
 
  //Platziert das Menü
  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  newRezeptFrame.setLocation(d.width/4,d.height/4);

  newRezeptFrame.pack();
  newRezeptFrame.setVisible(true);
  newRezeptFrame.setResizable(false);
}

public class hinzufügenButtonListener implements ActionListener {
	@Override
	public void actionPerformed(ActionEvent e) {
	  int menge = Integer.valueOf(mengeTextField.getText());
	  String einheit = einheitTextField.getText();
	  String produkt = produktTextField.getText();
	  zutatenArrayList.add(new Zutat(menge,einheit,produkt));
	  zutatenJList.setListData(zutatenArrayList.toArray());
	}
}

public class fertigstellenButtonListener implements ActionListener {
	@Override
	public void actionPerformed(ActionEvent e) {
	  String zubereitung = zubereitungTextArea.getText();
	  String name = nameTextField.getText();
	  //erstellt einen String mit den Zutaten
	  String zutaten = "<HTML><BODY>";
	  for(int i=0;i<zutatenArrayList.size();i++)
	  {
		String s = zutatenArrayList.get(i).toString();
	    zutaten = zutaten + s;
	    zutaten = zutaten + "<BR>";
	  }
	  zutaten = zutaten +"</BODY></HTML>";
	  
	  int comboboxindex = gerichtComboBox.getSelectedIndex();
	  Object s = gerichtComboBox.getItemAt(comboboxindex);
	  String l = String.valueOf(s);
	  
	  Rezept neuesrezept = new Rezept(zutaten,l,zubereitung,name);
	  
	  rezeptArrayList.add(neuesrezept);
	  newRezeptFrame.dispose();
	}
}


}

In der Klasse newRezeptJFrame funktionier die Zeile 311 nicht, das ist mein einziges Problem.
ich könnte natürlich die von der JFrame Klasser erben, aber dann erstelle ich zusätzlich ein neues JFrame und ich speicher das nicht in die eigentliche RezeptListe hinein.

Wenn jemand noch die Klassen Rezept, RezeptListe, Zutat, ZutatenListe gepostet haben will um es zu testen, werde ich das tun.

lg AdelJaha174
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ohne den Code an sich gelesen zu haben (es gäbe viel daran zu meckern, das können andere machen) : Man braucht von dem ActionListener aus Zugriff auf die Liste, z.B. mit
Java:
class fertigstellenButtonListener  ...
{
    private ArrayList<Rezept> dieRezepte = ... // Im Konstruktor übergeben

    public void actionPerformed(..)
    {
        ....
        dieRezepte.add(...);
    }
oder schöner.
 

AdelJaha174

Mitglied
Das heißt wenn ich das newRezeptFrame aufrufe muss ich die EINE Liste übergeben.

Also:

NewRezeptFrame newRezeptFrame = new NewRezeptFrame(rezeptArrayList);

public newRezeptFrame(ArrayList<Rezept> rezeptliste){
....
}

Somit habe ich die RezeptListe dem Konstruktor des newRezeptFrame übergeben.
Allerdings, sagt er immer noch cannot be resolved. Obwohl ich ja jetzt die ArrayListe als Parameter übergeben habe.

PS : Durch die Übergabe wurde die rezeptArrayList zwangsweise static. Da ich sie ja einem Frame übergebe. Nur eine kleine Frage am Rande, bedeutet das, dass ich nichts mehr hinzufügen kann, sprich ich mit einem 2. Frame gar nicht weiter kommen kann? Da die Parameter für JFrame immer static sein müssen

mfg
 
Zuletzt bearbeitet:

Marco13

Top Contributor
Ach moment, fertigstellenButtonListener ist ja eine innere Klasse (sch... Formatierung :autsch: ). D.h. das sollte schon so gehen, ohne static und so.

Was heißt das "Zeile 311 nicht funktioniert"?
 

AdelJaha174

Mitglied
Was heißt das "Zeile 311 nicht funktioniert"?

Es ist so, wenn ich sie nicht static mache, dann meckert er, er bräuchte eine statische Referenz.

NewRezeptFrame newRezeptFrame = new NewRezeptFrame(rezeptArrayList);
--> cannot make a static reference on a non-static field ArrayList

Wenn ich diese dann auf static mache, dann sagt er mir die Zeile 311, in der ich der übergebenen Liste ein neues Rezept zu übergeben. Er könnte die Liste nicht finden.

rezeptArrayList.add(neuesrezept);
--> rezeptArrayList cannot be resolved

obwohl ich oben im Parameter (ArrayList<rezept> rezeptList) übergeben habe.


Nun kommt der Knall, ich habe ein ShowFrame erstellt, dort habe ich den gleichen Parameter und da geht es ???:L

Java:
public ArrayList<Rezept> rezeptArrayList = new ArrayList<Rezept>();

public class datei_rezepteActionListener implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
	      ShowFrame newShowFrame = new ShowFrame(rezeptArrayList);
		}
	}
	
	public static class datei_neuActionListener implements ActionListener {
		@Override
		public void actionPerformed(ActionEvent e) {
		  NewRezeptFrame newRezeptFrame = new NewRezeptFrame(rezeptArrayList);
		}
	}
	}


Hier ist das ShowFrame, ich habe sowohl im newRezeptFrame und im ShowFrame, bis auf das Layout praktisch keine Unterschiede. Nun verstehe ich nicht, wieso er beim showFrame die nicht statische Liste übergibt und beim newRezeptFrame nicht?

Java:
package MainPackage;

package MainPackage;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.util.ArrayList;

import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JPanel;

public class ShowFrame {

private JFrame showFrame;
private JPanel showPanel;
private JList showList;	

public ShowFrame(ArrayList<Rezept> showArrayListe)
{
  showFrame = new JFrame();
  showFrame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
  showFrame.setSize(400,700);
  showFrame.setResizable(false);
  
  showPanel = new JPanel();
  showPanel.setLayout(null);
  showList = new JList();
  showList.setSize(400,700);
  
  showPanel.add(showList);
  
  showFrame.add(showPanel);
  
  //platziert das Frame
  Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
  showFrame.setLocation(d.width/4-300,d.height/4-100);
  
  showFrame.setVisible(true);
}
	
}
 

Marco13

Top Contributor
Ja, der Code ist insgesamt ziemlich unübersichtlich (abgesehen vom unvollständig), aber probier' mal
public static class datei_neuActionListener
in
public class datei_neuActionListener
zu ändern.
 

AdelJaha174

Mitglied
Das hat zumindest schon mal das Problem mit dem static gelöst, allerdings unterstreicht er immer noch die die zeile 311. (rezeptArrayList, die übergeben werden sollte)

Angenommen ich lade die Liste von einem Pfad xyz, dann könnte ich doch die Liste direkt aus dem Pfad herausnehmen und die neue Liste überschreiben. Wäre das eine Option? Da ich dann die Liste nicht mehr direkt als Variable benutze sondern direkt aus einem Speicher beziehe?

Btw. was meinst du mit unvollständig? Ich habe oben geschrieben, dass ich die Hälfte der Klassen nicht eingefügt habe.
 

Marco13

Top Contributor
Ja, aber dafür 1000 Zeilen mit irgendwelchen GridBagConstraints. Das Problem könnte man wahrscheinlich in 10 Zeilen zusammenfassen, und vermutlich ist es mal wieder nur, dass irgendwas mit einem Setter irgendwo hin übergeben werden muss, aber den Code liest man sich doch nicht durch... :noe:
 

AdelJaha174

Mitglied
HALLELUJA, es funktioniert, herzlichen dank Marco13, dass du dich, trotz meiner Unerfahrenheit was den Umgang mit diesem Forum angeht, bemüht hast mir zu helfen :D <3
Ich werde das nächstes mal nur noch die Problemzeilen posten.

lg AdelJaha174

Tread kann geschlossen werden!
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T Standardkonstruktor, Attribute initialisieren Java Basics - Anfänger-Themen 5
K wie kann ich alle Attribute von dem Objekt(pagode) ausgeben lassen ? Java Basics - Anfänger-Themen 3
S Attribute zurücksetzen? Java Basics - Anfänger-Themen 2
K Sichtbarkeit protected: Attribute trotzdem aufrufbar. Java Basics - Anfänger-Themen 4
B Attribute eines Objekts einer Klasse durch statische Methode einer 2. Klasse ändern? Java Basics - Anfänger-Themen 32
G Welche Attribute kommen in den Konstruktor? Java Basics - Anfänger-Themen 5
X Wie erreiche ich, dass ein Robot weitere Attribute hat, die nicht materialisiert sind, sondern nur über get/ set-Methoden simuliert sind? Java Basics - Anfänger-Themen 1
M Wie können Klassen nicht-materialisierte Attribute haben, die nur über get/ set-Mehoden simuliert sind? Java Basics - Anfänger-Themen 6
B Static Attribute in einer Klasse, wie geht das? :O Java Basics - Anfänger-Themen 19
O Attribute die Methoden zählen Java Basics - Anfänger-Themen 5
L Attribute aus Klasse in berechnungs Methode übergeben Java Basics - Anfänger-Themen 1
Gaudimagspam Attribute einfügen private Java Basics - Anfänger-Themen 3
J final attribute erben Java Basics - Anfänger-Themen 2
T Vererbung Verschiedene Attribute für vererbte Klassen Java Basics - Anfänger-Themen 4
B Infos zu Attribute in einer Klasse speichern Java Basics - Anfänger-Themen 3
S Objekt-Attribute "variabel" gestalten Java Basics - Anfänger-Themen 10
R Attribute mehrerer Objekte ausgeben Java Basics - Anfänger-Themen 3
D Abstrakte Klasse, Konstruktorkette, Attribute setzen Java Basics - Anfänger-Themen 12
L Zugriff auf Attribute eins Objekts über ActionListener Java Basics - Anfänger-Themen 4
F Attribute bei Objektorientierter Programmierung Java Basics - Anfänger-Themen 11
C unverständlicher Code Attribute ohne Datentyp, wie geht das? Java Basics - Anfänger-Themen 8
R Zwei Attribute gleichzeitig ausgeben Java Basics - Anfänger-Themen 12
Q Zugriff auf Attribute Java Basics - Anfänger-Themen 3
C Methoden Vererbung private Attribute/public Methoden Java Basics - Anfänger-Themen 4
I Abstrakte Klasse - static Attribute deklarieren Java Basics - Anfänger-Themen 14
S Zufallszahl (Statische Attribute und Methoden) Java Basics - Anfänger-Themen 10
K Public Attribute oder getter - funktioniert leider beides hier nicht Java Basics - Anfänger-Themen 5
X XML-Eintrag an Attribute erkennen Java Basics - Anfänger-Themen 2
W Erste Schritte füllen Attribute java Klasse in for Schleife und Array Java Basics - Anfänger-Themen 16
B Alle Attribute von Klasse bekommen und ändern Java Basics - Anfänger-Themen 12
R Objekt erstellen - Attribute mit mehreren Werten Java Basics - Anfänger-Themen 1
T Kann erbende Klasse Attribute der vererbenden Klasse anpassen (int -> float)? Java Basics - Anfänger-Themen 9
dat_vin OOP Hashmap und Attribute Java Basics - Anfänger-Themen 7
C OOP Array Objektverweise und Attribute Java Basics - Anfänger-Themen 5
S Klassen Zugriff auf Attribute einer zweiten Klasse, welche durch dritte gesettet wurden? Java Basics - Anfänger-Themen 2
O Unterschiedliche Attribute in Objekklasse? Java Basics - Anfänger-Themen 5
E Attribute von einem Objekt einer anderen Klasse ändern Java Basics - Anfänger-Themen 4
K Durch alle Attribute eines Objektes iterieren Java Basics - Anfänger-Themen 6
F Attribute von Feldinhalten erkennen Java Basics - Anfänger-Themen 6
F konstante/variable Attribute? Java Basics - Anfänger-Themen 3
J Threads Zugriff auf Attribute Java Basics - Anfänger-Themen 16
M Wann statische Methoden/Attribute? Java Basics - Anfänger-Themen 2
ElfterDoktor Einen Objekt Attribute/Parameter geben & Auslesen Java Basics - Anfänger-Themen 4
R Zeigerfehler für Attribute Java Basics - Anfänger-Themen 11
L Vererbung Attributen der Oberklasse Attribute hinzufügen? Java Basics - Anfänger-Themen 3
S Ermitteln und Setzen der Attribute eines Objektes Java Basics - Anfänger-Themen 6
F Im Konstruktor mit Settern auf private Attribute zugreifen - oder nicht? Java Basics - Anfänger-Themen 18
P Zugriff auf Attribute einer Klasse, zu der keine Verbindung besteht Java Basics - Anfänger-Themen 11
V OOP Statische Klassen-Attribute vererben Java Basics - Anfänger-Themen 4
T Attribute eines anderen Objektes überprüfen und danach handeln Java Basics - Anfänger-Themen 7
M static Attribute und Vererbung Java Basics - Anfänger-Themen 11
S Warum sind Attribute der Klasse java.awt.Point public? Java Basics - Anfänger-Themen 3
K OOP Attribute von Klasse in die public class übertragen? Java Basics - Anfänger-Themen 7
E Fehler bei Klassenübergreifende Attribute / Konsturktoren Java Basics - Anfänger-Themen 2
P Attribute von Objekten in Vectoren überprüfen Java Basics - Anfänger-Themen 4
S Attribute darf nur Werte vom Intervall annehmen Java Basics - Anfänger-Themen 5
M Attribute Java Basics - Anfänger-Themen 8
M Attribute und Konstruktor Java Basics - Anfänger-Themen 5
V JNDI / LDAP Attribute eines Benutzers auslesen Java Basics - Anfänger-Themen 1
J Attribute not settable warum ? Java Basics - Anfänger-Themen 6
N finale Attribute in abstrakten Basisklassen Java Basics - Anfänger-Themen 6
O Wie kann man das einfach lösen? (dynamisch viele Attribute) Java Basics - Anfänger-Themen 6
Q Zugriff auf Attribute einer Unterklasse Java Basics - Anfänger-Themen 7
S OOP Attribute Java Basics - Anfänger-Themen 2
T OOP StringTokenizer, Zuweisung der einzelnen Attribute Java Basics - Anfänger-Themen 21
K Klassen Attribute sortieren Java Basics - Anfänger-Themen 10
S Ausgabe bestimmter Attribute Java Basics - Anfänger-Themen 5
B die einzelnen Attribute einzeln vergleichen Java Basics - Anfänger-Themen 10
L E-Mail Attribute IMAP ändern Java Basics - Anfänger-Themen 4
K Attribute überschreiben! Java Basics - Anfänger-Themen 2
A Stilfrage: statische Methoden und Attribute auf jeden Fall verhindern? Java Basics - Anfänger-Themen 5
dataframe Attribute aus anderen Methoden übernehmen? Java Basics - Anfänger-Themen 14
M Zugriff auf Attribute über Methoden Java Basics - Anfänger-Themen 6
A statische Attribute: Vererbung und Zugriff darauf Java Basics - Anfänger-Themen 15
H Attribute auf Einzigartigkeit prüfen Java Basics - Anfänger-Themen 6
T Was sind Attribute? Java Basics - Anfänger-Themen 9
G Methode um Attribute auszulesen Java Basics - Anfänger-Themen 5
H attribute die zusammengehören Java Basics - Anfänger-Themen 9
G Wie kann ich auf die Attribute einer anderen Klasse zugreife Java Basics - Anfänger-Themen 5
J Auslesen aller Attribute mit JDOM Java Basics - Anfänger-Themen 15
N Unterschied statische Attribute u. Methoden <-> objekt Java Basics - Anfänger-Themen 4
M Attribute werden mit den Startwerten überschrieben. Warum? Java Basics - Anfänger-Themen 12
T Failed to load Main-Class manifest attribute from U.U.jar Java Basics - Anfänger-Themen 3
P Attribute Vererben Java Basics - Anfänger-Themen 2
Z Zugriff auf Attribute nach Zuweisung einer Referenz Java Basics - Anfänger-Themen 8
D Session Attribute in JSP ausgeben???? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben