Hauptklasse:
2te Klasse: Berechnung
Dritte Klasse => GenerateN extends Berechnung
Meine Frage wie kann ich von der Hauptklasse die Methode "public int n_berechnung()" aufrufen?
Ich habe es mir so gedacht, dass ich eine statische Instanz auf die Klasse Berechnung hab und dann von dort aus die Methode aufrufe ==>
b1.n_berechnung();
nur funktioniert das iwie nicht!
bitte um Hilfe!
Grüße
Fehlermeldung:
Java:
import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.GridLayout;
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.Random;
import javax.swing.*;
import javax.swing.*;
/**
*
*/
/**
* @author Ama
*
*/
public class RSA extends JFrame implements ActionListener
{
JPanel btn, textpanel, textpanel2,border2,Content1;
JButton bt1, bt2;
JLabel offen,prim, erg1, wan1, RSA, privat;
JTextField privatText1,privatText2, offenText1, offenText2, prim1, prim2, erg, wan;
Dimension d = Toolkit.getDefaultToolkit().getScreenSize();
int z = 2;
Berechnung b1;
public RSA(String name)
{
this.setTitle(name);
this.setSize(600, 150);
this.setResizable(false);
this.setLocation((int)d.getHeight()/5, (int)d.getWidth()/6);
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
btn = new JPanel();
bt1 = new JButton("Generate");
bt2 = new JButton("Test");
this.bt1.addActionListener(this);
this.bt2.addActionListener(this);
this.btn.setLayout(new FlowLayout());
this.btn.add(bt1);
this.btn.add(bt2);
privat = new JLabel("Privat:");
offen = new JLabel("Oeffentlich:");
prim = new JLabel("Primzahl(1+2):");
erg1 = new JLabel("Ergebnis:");
wan1 = new JLabel("Wan:");
RSA = new JLabel("RSA- Verschlüsselung");
privatText1 = new JTextField("",20);
privatText2 = new JTextField("",20);
offenText1 = new JTextField("",20);
offenText2 = new JTextField("",20);
prim1 = new JTextField("0",20);
prim2 = new JTextField("0",20);
erg = new JTextField("",20);
wan = new JTextField("",20);
textpanel = new JPanel();
this.textpanel.setLayout(new GridLayout(2,1));
this.textpanel.add(privat);
this.textpanel.add(privatText1);
this.textpanel.add(privatText2);
this.textpanel.add(offen);
this.textpanel.add(offenText1);
this.textpanel.add(offenText2);
textpanel2 = new JPanel();
textpanel2.setLayout(new GridLayout(1,1));
this.textpanel2.add(prim);
this.textpanel2.add(prim1);
this.textpanel2.add(prim2);
this.textpanel2.add(erg1);
this.textpanel2.add(erg);
this.textpanel2.add(wan1);
this.textpanel2.add(wan);
border2 = new JPanel();
this.border2.setLayout(new BorderLayout());
border2.add(textpanel2, BorderLayout.NORTH);
Content1 = new JPanel();
this.Content1.setLayout(new BorderLayout());
this.Content1.add(btn, BorderLayout.SOUTH);
this.Content1.add(textpanel, BorderLayout.NORTH);
this.Content1.add(border2, BorderLayout.CENTER);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(Content1, BorderLayout.CENTER);
this.getContentPane().add(RSA, BorderLayout.NORTH);
this.setVisible(true);
}
/**
* @param args
*/
public static void main(String[] args)
{
// TODO Auto-generated method stub
new RSA("RSA-Verschluesselung");
}
@Override
public void actionPerformed(ActionEvent e)
{
// TODO Auto-generated method stub
if(e.getActionCommand().equals("Generate"))
{
//this.privatText1.setText(Integer.toString((int) (Math.random()*100+1)));
//int p = Integer.parseInt(this.prim1.getText());
//int q = Integer.parseInt(this.prim1.getText());
//new Berechnung(p, q);
b1.n_berechnung();
}
if(e.getActionCommand().equals("Test"))
{
/*
primzahl1 = Integer.parseInt(this.prim1.getText());
if (primzahl1 % z == 0)
{
System.out.println(primzahl1 + "ist keine Primzahl");
}
primzahl2 = Integer.parseInt(this.prim2.getText());*/
}
}
}
2te Klasse: Berechnung
Java:
/**
*
*/
/**
* @author Ama
*
*/
public class Berechnung
{
int primzahl1;
int primzahl2;
int m;
int n;
static int d;
int e;
public int getPrimzahl1()
{
return primzahl1;
}
public void setPrimzahl1(int primzahl1)
{
this.primzahl1 = primzahl1;
}
public int getPrimzahl2()
{
return primzahl2;
}
public void setPrimzahl2(int primzahl2)
{
this.primzahl2 = primzahl2;
}
public Berechnung(int p, int q)
{
this.setPrimzahl1(p);
this.setPrimzahl2(q);
System.out.println(this.getPrimzahl1());
System.out.println(this.getPrimzahl2());
}
public int n_berechnung()
{
// TODO Auto-generated method stub
return n;
}
}
Dritte Klasse => GenerateN extends Berechnung
Java:
/**
*
*/
/**
* @author Ama
*
*/
public class GenerateN extends Berechnung
{
public GenerateN()
{
super(0,0);
// TODO Auto-generated constructor stub
}
@Override
public int n_berechnung()
{
// TODO Auto-generated method stub
n = this.getPrimzahl1()*this.getPrimzahl2();
System.out.println("Generate");
return n;
}
}
Meine Frage wie kann ich von der Hauptklasse die Methode "public int n_berechnung()" aufrufen?
Ich habe es mir so gedacht, dass ich eine statische Instanz auf die Klasse Berechnung hab und dann von dort aus die Methode aufrufe ==>
b1.n_berechnung();
nur funktioniert das iwie nicht!
bitte um Hilfe!
Grüße
Fehlermeldung:
Java:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException
at RSA.actionPerformed(RSA.java:123)
at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
at java.awt.Component.processMouseEvent(Unknown Source)
at javax.swing.JComponent.processMouseEvent(Unknown Source)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
at java.awt.EventQueue.access$000(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.awt.EventQueue$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.awt.EventQueue$2.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.AccessControlContext$1.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue.dispatchEvent(Unknown Source)
at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
at java.awt.EventDispatchThread.run(Unknown Source)
Zuletzt bearbeitet von einem Moderator: