Frage zu Access Modifiers

Turmnippel

Mitglied
Hier eine einfache Klasse für ein JPanel. Bei mir kann unten in der Methode getScreenWidth (und in anderen Klassen) s nicht resolved werden. Wieso? Wie kann ich das fixen? Seid bitte freundlich, bin Anfänger, Danke im Vorraus


Java:
import javax.swing.JFrame;
import javax.swing.JPanel;


@SuppressWarnings("serial")
public class Panel extends JPanel{

public void main (String args[]){

    Main panel = new Main();
   
    JFrame s = new JFrame();

    s.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

    int sWidth = 960;
    int sHeight = 640;
   
    s.add(panel);
    s.setSize (sWidth, sHeight);
    s.setVisible(true);


}

    public int getScreenWidth(){
        return s.getWidth();
    }

}
 
Da Du s in der main() deklariert hast, ist es in der Methode getScreenWidth() nicht sichtbar.
Du musst s in der Klasse direkt deklarieren:
Java:
public class Panel {
  JFrame s = new JFrame();

  public static void main (String[] args){
    ...
 
Hier eine einfache Klasse für ein JPanel. Bei mir kann unten in der Methode getScreenWidth (und in anderen Klassen) s nicht resolved werden. Wieso? Wie kann ich das fixen? Seid bitte freundlich, bin Anfänger, Danke im Vorraus

Wie black swan schon gesagt hat: Dein Objekt s ist zwar in der Methode "main" sichtbar, aber nicht in der Methode "getScreenWidth" der Klasse Panel.

Da du Anfänger bist würde ich dir raten nicht sofort mit UI Programmierung loszulegen, dazu fehlen dir noch wichtige Grundlagen (wie man an dieser Frage sieht).
Fange einfach mit kleinen Konsolenprogrammen an um die Grundlagen zu festigen. Danach kannst solltest du erst zur OOP (objektorientierten Programmierung) übergehen. Sobald diese halbswegs sitzt kann man sich an die UI Programmierung machen. (Ohne den notwendigen Grundlagen von Java und der OOP machst du es dir einfach nur schwerer als es sein könnte)
 
Wie black swan schon gesagt hat: Dein Objekt s ist zwar in der Methode "main" sichtbar, aber nicht in der Methode "getScreenWidth" der Klasse Panel.

Da du Anfänger bist würde ich dir raten nicht sofort mit UI Programmierung loszulegen, dazu fehlen dir noch wichtige Grundlagen (wie man an dieser Frage sieht).
Fange einfach mit kleinen Konsolenprogrammen an um die Grundlagen zu festigen. Danach kannst solltest du erst zur OOP (objektorientierten Programmierung) übergehen. Sobald diese halbswegs sitzt kann man sich an die UI Programmierung machen. (Ohne den notwendigen Grundlagen von Java und der OOP machst du es dir einfach nur schwerer als es sein könnte)

Danke für den Tipp! Hab zwar keine Probleme mit der OOP, werde es mir trotzdem zu Rate ziehen...
 
Nimm die OOP nicht auf die leichte Schulter.
Falls das nur ein Brett vorm Kopf war mit der Sichtbarkeit kannst du meinen Post getrost ignorieren 🙂

Beste Grüße,
Zet
 

Neue Themen


Zurück
Oben