Jpanel erweitern mit eigenen Functionen

melmager

Erfahrenes Mitglied
Ich habe In NetBeans folgende Classe erstellt:
Java:
public class NotenBlatt extends JPanel {

  ZeichneNote blattgfx = new ZeichneNote();

    @Override
  protected void paintComponent( Graphics g )
  {
    Graphics2D g2 = (Graphics2D) g;
    super.paintComponent( g );
    blattgfx.zeigeZeile(g, 17, 10, 10);
  }

  void setPX2Note(int pxsize) {
    //erweiterung
  }
}

dann wurde der Init-Code in NetBeans mit eigener Zeile editiert
jPanelBlatt = new NotenBlatt();

da NetBeans leider so eine Zeile erzeugt
private javax.swing.JPanel jPanelBlatt;
die man nicht ändern kann, gibt es kein Zugriff auf die eigene Function setPX2Note
ich habe da was im Netz gefunden was mir aber eine Exeption um die Ohren haut.

folgende Zeile wurde under den Variablen Declaration von Netbeans hizugefügt
NotenBlatt myjPanel = (NotenBlatt)jPanelBlatt;

wenn ich nun über myjPanel arbeite wird zwar meine Function angezeigt aber beim Aufruf die Exeption.

tja wo muss die Zeile mit dem Cast wirklich rein ?
 
Zuletzt bearbeitet:

melmager

Erfahrenes Mitglied
Ich habe die richtige Stelle gefunden

in der Function in der man aufrufen will muss der cast rein

Java:
private void jSpinnerNoteSizeStateChanged(javax.swing.event.ChangeEvent evt) {                                              
        // TODO add your handling code here:
        NotenBlatt myjPanel = (NotenBlatt)jPanelBlatt;
       int x =  (Integer) jSpinnerNoteSize.getValue();

       myjPanel.setPX2Note(x);
       jTextAusgabe.setText(Integer.toString(x));
    }

so gehts