Abend die Leute
Nachdem ich seit gestern nicht kapiere, was ich mit der Vererbung falsch mache, dachte ich mir, ich poste einfach mal mein Problem hier ...
Ich möchte in der Klasse hbS_ActionListener mit den Objekten (bzw. das JLabel display), die ich in der Klasse hbS erstellt habe, arbeiten können, also "display.setText()" verwenden können.
Und dafür muss ich ja, hbS zur Superklasse machen, und das funktioniert mit dem Schlüsselworte "extends" oder nicht ?
Naja, erstmal die beiden Klassen:
Bekomme diese Fehlermeldung, welche ich auch verstehe, da sie sich auf die Methode hbS(String title) bezieht. Aber ich möchte doch die ganze Klasse vererben, was will er mit der Methode?
Habe gelesen, ich muss irgendwas mit super() machen. Aber was ? Hab schon so einiges ausprobiert, und hatte schon einige Beispiele mir angeschaut, aber übertragen auf meinen Code, funktionierte es nicht.
Wäre über eine kurze Hilfe sehr dankbar !
Nachdem ich seit gestern nicht kapiere, was ich mit der Vererbung falsch mache, dachte ich mir, ich poste einfach mal mein Problem hier ...
Ich möchte in der Klasse hbS_ActionListener mit den Objekten (bzw. das JLabel display), die ich in der Klasse hbS erstellt habe, arbeiten können, also "display.setText()" verwenden können.
Und dafür muss ich ja, hbS zur Superklasse machen, und das funktioniert mit dem Schlüsselworte "extends" oder nicht ?
Naja, erstmal die beiden Klassen:
Java:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import javax.swing.event.*;
public class hbS extends JFrame
{
private JLabel[] l = new JLabel[2];
private JList roomList = new JList();
private JList smokeList = new JList();
private JList priceList = new JList();
private JButton start = new JButton();
public JLabel display = new JLabel();
public static void main(String[] args)
{
hbS frame = new hbS("Hotelbuchungssystem");
frame.setVisible(true);
}
public hbS(String title)
{
//Erstellen des Fensters
super(title);
setBounds(100,100,400,500);
setLayout(null);
[...]
//Erstellen des Button zum Starten der Suche nach verfügbaren Zimmern
start = new JButton("Suchen");
start.setBounds(20,150,90,30);
add(start);
start.setActionCommand("start");
//actionPerformed() ausgelagert in Objekt hbS_ActionListener() zur Übersichtlichkeit
start.addActionListener(new hbS_ActionListener());
//Estellen des Textfeldes, in dem die Suchergebnisse gelistet werden
display = new JLabel();
display.setBounds(20,170,300,300);
display.setText("<html><body>Textzeile1<br>Textzeile2</body></html>");
add(display);
}
}
Java:
import java.awt.event.*;
import java.io.*;
public class hbS_ActionListener extends hbS implements ActionListener
{
public void actionPerformed(ActionEvent eve)
{
if (eve.getActionCommand().equals("start"))
{
try
{
//Erstellen eines Objekts vom Typ hbS_getFileData um Methoden auslagern zu können und Code übersichtlicher zu machen
hbS_getFileData obj = new hbS_getFileData();
//Übergeben der Daten in der Textdatei
String[] data = obj.readFile("hotbooksys.txt");
[...]
//Suche, welche Räume überhaupt frei sind
int[] emptyRooms = obj2.getEmptyRooms(dataList);
obj2.displayEmptyRooms(emptyRooms);
//display.setText(" "); <--- das möchte ich machen können !
}
catch(IOException err)
{
System.out.print("***FEHLER BEIM EINLESEN DER DATEI***");
}
} // end of if
}
}
Bekomme diese Fehlermeldung, welche ich auch verstehe, da sie sich auf die Methode hbS(String title) bezieht. Aber ich möchte doch die ganze Klasse vererben, was will er mit der Methode?
Java:
hbS_ActionListener.java:4:8: error: constructor hbS in class hbS cannot be applied to given types;
public class hbS_ActionListener extends hbS implements ActionListener
^
required: String
found: no arguments
reason: actual and formal argument lists differ in length
1 error
Habe gelesen, ich muss irgendwas mit super() machen. Aber was ? Hab schon so einiges ausprobiert, und hatte schon einige Beispiele mir angeschaut, aber übertragen auf meinen Code, funktionierte es nicht.
Wäre über eine kurze Hilfe sehr dankbar !
Zuletzt bearbeitet: