zusammenfügen von zwei Klassen

waeve

Mitglied
Hallo,

ich habe 2 Quellcodes und möchte diese nun "zusammenfügen". In beiden wird ein Frame mit JFrame erzeugt. Im Quellcode 1 (GUI) ist das Layout. Hier möchte ich in center2 den Frame des anderen Quellcodes (HangingBird) einfügen, ohne das sich zwei Fenster öffnen.
Habe schon alles was mir einfällt probiert. Z. B.

center2 = HangingBird ();
HangingBird buchstabe = new HangingBird (); und dann weiter unten darauf zugreifen .....
center2.add(new HangingBird());


Jetzt fällt mir nichts mehr ein. Ich hoffe ihr könnt mir helfen 🙂

LG
 
Sorry hier der Quellcode der Gui

Java:
public class GUI extends JFrame
{
    //Deklarieren der Attribute
     private JLabel button;
     private JPanel hangmanPanel;
     private JPanel center1, center2, center3, center4;
     private ArrayList<JLabel> hangmanArray;
     private ArrayList<JLabel> buchstabenArray;
     private JPanel centerPanel;
     private int anzahlStriche;
    
    
    /**
     * Constructor for objects of class GUI
     */
    public GUI()
    {
       super("Fenster");
       
       setLocation(300,300);
       setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

       hangmanPanel= new JPanel();
       hangmanPanel.setLayout(new BorderLayout(5,5));
       centerPanel=new JPanel();
       centerPanel.setLayout(new BorderLayout(5,5));
       center1 = new JPanel();
       centerPanel.add(center1, BorderLayout.NORTH);
       center2 = new JPanel();
       centerPanel.add(center2, BorderLayout.CENTER);
       center3 = new JPanel();
       centerPanel.add(center3, BorderLayout.SOUTH);
       center4 = new JPanel();
       centerPanel.add(center4, BorderLayout.EAST);
       center1.add(new JLabel(new ImageIcon("zeichnung.png")));


Und der von HangingBird

Java:
public class HangingBird extends JFrame {
    //Deklarieren der Attribute
    private JLabel button;
    private JPanel hangmanPanel;
    private JPanel center1, center2, center3, center4;
    
    private JPanel centerPanel;
    private int anzahlStriche;
    private JPanel contentPane;
    
    

    /**
     * Launch the application.
     */
    public static void main(String[] args) 
    {
        EventQueue.invokeLater(new Runnable() {
                public void run() {
                    try {
                        HangingBird frame = new HangingBird();
                        frame.setVisible(true);
                    } catch (Exception e) {
                        e.printStackTrace();
                    }
                }
            });
    }

    /**
     * Create the frame.
     */
    public HangingBird() {
        setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        setBounds(100, 100, 650, 500);
        contentPane = new JPanel();
        contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
        setContentPane(contentPane);
        contentPane.setLayout(null);
        
        
        // Jeder Buchstabe wird implementiert und mit einen ActionListener aufgerufen
        JLabel lblA = new JLabel("");
        lblA.addMouseListener(new MouseAdapter() {
                public void mouseClicked(MouseEvent arg0) {
                    System.out.println("mouseClicked lblA");
                    String Buchstabe = "A";
                    System.out.println(Buchstabe);
                }
            });
        lblA.setIcon(new ImageIcon(HangingBird.class.getResource("img/Alphabet/A.png")));
        lblA.setHorizontalAlignment(SwingConstants.CENTER);
        lblA.setBounds(10, 150, 66, 57);
        contentPane.add(lblA);
 
Wenn ich das mit den JPanels mache, muss ich dazu dann auch eine neue Klasse erstellen. Denn beide Codes sind ja in unterschiedlichen Klassen sind.

Vielen Dank schon mal für die schnelle Hilfe
 
Indem du es zu deinem Panel hizunfügst, wie auch deine anderen Panel:
Java:
HangingBird hanging = new HangingBird();
centerPanel.add(hanging, BorderLayout.WOHIN_AUCH_IMMER);
 

Zurück
Oben