Guten Abend,
ich weiß das es wahrscheinlich schon andere Threads zu diesem Thema gibt, jedoch habe ich noch nichts konkretes gefunden was mir hilft. Ich bin im ersten Semester und bin daher noch ein Anfänger.
Ich habe folgendes Problem. Ich habe die Klassen KFrame, KButton und Menue erstellt. In der Klasse Menue kann ich dann beliebig viele KFrames und auch KButtons erzeugen lassen. Mein Problem ist dass ich in der Klasse Menue die Buttons die ich erzeugt habe nicht in das Panel bekomme. Das Panel ist in der Klasse KFrame erzeugt worden. Ich brauche nun in der Klasse Menue zugriff auf das Objekt "panel" welches in der Klasse KFrame deklariert wurde, um die Buttons die ebenfalls in der Klasse Menue erzeugt wurden dem panel zuzuweisen. Ich weiß nicht mehr weiter ich habe schon viel gelesen und probiert jedoch ohne Erfolg. Warum wird mein Button dem Panel nicht zugewiesen? Alles ein wenig verwirrend aber hier nochmal mein Code:
ich weiß das es wahrscheinlich schon andere Threads zu diesem Thema gibt, jedoch habe ich noch nichts konkretes gefunden was mir hilft. Ich bin im ersten Semester und bin daher noch ein Anfänger.
Ich habe folgendes Problem. Ich habe die Klassen KFrame, KButton und Menue erstellt. In der Klasse Menue kann ich dann beliebig viele KFrames und auch KButtons erzeugen lassen. Mein Problem ist dass ich in der Klasse Menue die Buttons die ich erzeugt habe nicht in das Panel bekomme. Das Panel ist in der Klasse KFrame erzeugt worden. Ich brauche nun in der Klasse Menue zugriff auf das Objekt "panel" welches in der Klasse KFrame deklariert wurde, um die Buttons die ebenfalls in der Klasse Menue erzeugt wurden dem panel zuzuweisen. Ich weiß nicht mehr weiter ich habe schon viel gelesen und probiert jedoch ohne Erfolg. Warum wird mein Button dem Panel nicht zugewiesen? Alles ein wenig verwirrend aber hier nochmal mein Code:
Java:
import javax.swing.*;
import java.awt.*;
public class KFrame
{
// Variablen-deklaration der Klasse KFrame
private int size1, size2;
private String name;
private boolean sichtbar, gleich;
private Color color;
JPanel panel = new JPanel();
public KFrame(int x, int y, String pName, boolean pSichtbar, boolean pGleich,
Color pColor)
{
//Kontruktor der Klasse KFrame
size1 = x;
size2 = y;
name = pName;
sichtbar = pSichtbar;
gleich = pGleich;
color = pColor;
}
public void createFrame()
{
//Hier wird ein Frame erzeugt
JFrame frame = new JFrame(name);
frame.setVisible(sichtbar);
frame.setSize(size1, size2);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setResizable(gleich);
frame.add(panel);
panel.setLayout(null);
panel.setBackground(color);
}
}
Java:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Menue extends JPanel
{
//Deklaration von Variablen der jeweiligen Klassen
private KFrame hauptfenster, nebenfenster1, nebenfenster2;
private KButton spielstart, leaderboard, credits, exit;
private KLabel titel, anleitung, lText, cText;
public Menue()
{
//Erzeugung des Frame, Button und des Labels
hauptfenster = new KFrame(1280,720,"Kick Snare Click Square",true,false,Color.gray);
spielstart = new KButton(120,50,100,200,"Spielstart");
titel = new KLabel(22,22,22,22,"jo",Color.black,"Segoe Script",Font.PLAIN,30);
}
public void main()
{
//Hier werden die Frames, Buttons und Labels erzeugt
hauptfenster.createFrame();
add(spielstart);// hier wird der Button Spielstart dem Panel NICHT zugewiesen ...
spielstart.createButton();
titel.createLabel();
}
}