Auf Thema antworten

Ich denke wass du brauchst, ist eine Klasse extends JPanel. Das bedeutet, dass du sie einfach als JPanel von anderen Programmen konstruieren kannst. dazu dein Code:


[code=Java]import java.awt.*;

import javax.swing.*;

 

public class Board [B]extends JPanel[/B]{ //erstellt eine Klasse, die als JPanel erstellt werden kann

    public Board(){

        super(); //muss bei extends IMMER als erstes im Konstruktor stehen. Dies erstellt das JPanel

        /*JPanel panel = new JPanel();*/  //brauchst du nicht mehr, da du schon eins mit super() erstellt hast

        setFocusable(true);  //das panel.* kann weg, da deine Klasse direkt das JPanel ist

        setPreferredSize(new Dimension(300,300))

        setBackground(Color.BLUE);

        setLayout(null);  //nullLayout is evil, aber das ist ja deine Entschidung :P

        JButton oben = new JButton();

        oben.setSize(50,100);

        add(oben);

    }

}[/code]


Ich weiß nicht, wo du in deiner anderen Klasse dieses JPanel haben willst. Ich machs einfach erstmal so:


[code=Java]import java.awt.*;

import javax.swing.*;

 

public class Tamagotchi{

    public Tamagotchi(){

        JFrame client = new JFrame();

        client.setTitle("ChangeMeDEV - LMS");

        client.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        client.setLayout(new BorderLayout());

        JPanel board = new Board(); //du rufst die Klasse Board als JPanel auf

        client.add(board, BorderLayout.CENTER); //und kannst sie so auch als JPanel einfach adden und alles Andere machen, was du auch mit "normalen JPanels" machen kannst

        client.pack();

        client.setLocationRelativeTo(null);

        client.setResizable(false);

        client.setVisible(true);

       

    }

   

    public static void main(String[] args){

        new Tamagotchi();

    }

}[/code]


Ich hoffe, dies konnte deine Frage klären


mfg

BH16



Oben