2 extends

Crazynet

Mitglied
Hallo,
wie kann ich an eine Klasse 2 extends "anbinden"
Ich habe eine Class, in die ich eine andere Class laden möchte.
Nur habe ich da schon ein extends "dranhängen".

Java:
public class mainFrame extends Frame
{
  public mainFrame ()
  {
  setTitle("CyRiC V1.0");  // Fenstertitel setzen
  setSize(1000,600);  // Fenstergröße einstellen
  addWindowListener(new TestWindowListener()); // EventListener für das Fenster hinzufügen
  // (notwendig, damit das Fenster geschlossen werden kann)
  setLocationRelativeTo(null);
  setVisible(true);  // Fenster (inkl. Inhalt) sichtbar machen
  }

  class TestWindowListener extends WindowAdapter
  {
  public void windowClosing(WindowEvent e)
  {
  e.getWindow().dispose();  // Fenster "killen"
  System.exit(0);  // VM "killen"
  } 
  }
}
 
Zuletzt bearbeitet von einem Moderator:
Das wäre eine Mehrfachvererbung und diese ist in Java aus guten Grund nicht möglich.

Du kannst uns hier natürlich dein Problem genauer schildern, möglicherweise können wir dir eine andere Lösung zeigen.
 
Irgendwie funktioniert die Formatierung nicht 🙁

Du brauchst die Mehrfachvererbung auch nicht in deinem Vorhaben.
Erzeuge dir einfach andere Klassen, z.B. MyPanel.java extends Panel oder so. Dann erzeugst du dir deine MyPanel Klasse in deinem Window oder wo auch immer du das brauchst. Klassennamen fangen immer mit einem Großbuchstaben an. 😉
 
Da ja schon ein extends da ist, bekomm ich kein zweites dran... Ich weiß aber auch leider nicht, wie ich es sonst bewerkstelligen könnte. Habe leider nicht so viel Ahnung von Java

public class mainFrame extends Frame
 

Welche Klasse willst du in welche Klasse laden? Der Code oben schaut für mich ja schon richtig aus (auf den 1.Blick).

Ich kann dir nur sagen: Wenn du nicht die Funktionalität von JFrame erweitern willst (was ich bei diesem Code nicht sehe) dann ist eine Ableitung von JFrame einfach unnötig.

Da ja schon ein extends da ist, bekomm ich kein zweites dran...

Von welcher Klasse soll denn deine Klasse "mainFrame" (Klassennamen sollten überigens in "UpperCamelCase" geschrieben werden) noch ableiten? Warum leitest du von Frame ab?
 
@Joose

ich möchte gerne ein Menü "reinladen"
Das Menü kann ich leider nicht direkt in mainFrame schreiben, da er mir sonst keine Labels mehr erlaubt :-(

Java:
public class topmenue
{
  public topmenue ()
  {
  Border bo = new LineBorder(Color.red);
  // Erstellung einer Menüleiste
  JMenuBar bar = new JMenuBar();
  // Wir setzen unsere Umrandung für unsere JMenuBar
  bar.setBorder(bo);
  // Erzeugung eines Objektes der Klasse JMenu
  JMenu menu = new JMenu("Datei");
   
  JMenuItem login = new JMenuItem("Login");
  JMenuItem logout = new JMenuItem("Logout");
  JMenuItem end = new JMenuItem("Beenden");
  menu.add(login);
  menu.add(logout);
  menu.add(end);
  bar.add(menu);
  // ActionListener wird als anonyme Klasse eingebunden
  end.addActionListener(new ActionListener()
  {
  // Beim Drücken des Menüpunktes wird actionPerformed aufgerufen
  @Override
  public void actionPerformed(ActionEvent e)
  {
  // Programm schließen
  System.exit(0);
  }
  });
  }
}
 
Leider ist das ein recht komplexes Thema für einen Einsteiger. Deswegen lies dir mal ein paar Tutorials zu Java durch. Der Aufwand wird sich für dich lohnen. Es gibt unzählige gute und auch weniger gute Seiten die dir den Einstieg in die Thematik wunderbar erklären. Eine ist zum Beispiel hier.

http://www.java-tutorial.org/jframe.html
 
Am besten wäre es, du liest dir die Seite mal komplett von vorne durch. Da ist alles an Information was du brauchst um Java anständig zu programmieren.
 
ich möchte gerne ein Menü "reinladen"
Das Menü kann ich leider nicht direkt in mainFrame schreiben, da er mir sonst keine Labels mehr erlaubt :-(

Sorry aber du mischt hier irgendwelche Klassen von AWT und Swing. Daher weiß ich auch nicht was du mit Labels genau meinst.
Und reinladen ist ist auch so eine Sache, ich nehme an du willst auf deinem Fenster ein Menü anzeigen lassen und willst deswegen ein Objekt der Klasse "topmenue" in der Klasse "mainFrame" verwenden.
Aber bevor du mit deinem "Projekt" weitermachst solltest du erstmal bei den Grundlagen anfangen

Du selbst hast schon gesagt das du nicht viel Ahnung von Java hast. Und hier sehe ich das Problem: Man sollte nicht mit der UI Programmierung anfangen Java zu lernen. Um mit Oberflächen sinnvoll zu arbeiten sollte man etwas Ahnung von Java und OOP (objekt orientierte Programmierung - ist ganz wichtig!!) haben.
 
@Joose
Ich sitze hier im Praktikum und habe diese Aufgabe so bekommen, obwohl ich denen mitgeteilt habe, das ich keinen richtigen Peil von Java habe. Das ist mein Problem. Sonst hätte ich das System in PHP gelöst
 
Weil sonst sich da Krümelmonster freut (es kommen mächtig viele Cookies)
@Joose
Ich sitze hier im Praktikum und habe diese Aufgabe so bekommen, obwohl ich denen mitgeteilt habe, das ich keinen richtigen Peil von Java habe. Das ist mein Problem. Sonst hätte ich das System in PHP gelöst
Die dachten wohl du könntest dir selber Informationen beschaffen.

Java:
import java.awt.*;

public class FrameWithoutExtend {
    private Frame frame = new Frame();

    public FrameWithoutExtend() {
        frame.setTitle("CyRiC V1.0");
        frame.setSize(1000, 600);
        //...
    }

    public Frame getFrame() {
        return frame;
    }
}
 
@MWin123 dann bitte verwende doch wenigsten JFrame 😛
AWT ist doch schon veraltet und macht mehr Probleme als wenn man Swing verwendet (auch gibt es dann bessere Tutorials)
 
Da existiert ein grundlegender Unterschied von PHP zu Java. Wie Joose meinte: OOP ist ganz wichtig. Wenn du jetzt schon 3 Tage an der "kleinen" Aufgabe verbraucht hast, dann sollte es ein Leichtes sein dich mit den Grundlagen innerhalb weniger Tage zu befassen. Darauf aufbauend kannst du dein Projekt mit einer gewissen Fertigkeit relativ einfach fertigstellen.
 

Zurück
Oben