Swing bei Auswahl und klick eines JComboBox buttons die Klasse eines anderen Projekts aufrufen

Alex2013

Bekanntes Mitglied
Hallo Leute,

wie im Betreff schon zu lesen ist. Versuche ich gerade aus einem Programm, welches ich geschrieben habe per Klick auf einen Button, welcher einen Auswahlbutton einer ComboBox darstellt eine andere Klasse eines anderen Projektes aus aufzurufen.
Ich habe bereits über die Project properties das andere Projekt hinzugefügt.
Allerdings lässt sich die Klasse trotzdem nicht aufrufen.

Weiß evtl. jemand woran es liegen könnte?

Hier der Code:

Java:
[code]
class ChangeListener implements ActionListener
	{
		@Override
		public void actionPerformed(ActionEvent e) 
		{
			if(e.getActionCommand().equals(Auswahl.getSelectedItem().equals("Rechner")))
			{
				new Rechner("Rechner");
			}
			else if(e.getActionCommand().equals(Auswahl.getSelectedItem().equals("Quersumme")))
			{
				new Ausgabenvergleich().getClass().equals("Quersumme_grafisch");//Quersumme_grafisch("Quersummenrechner");
			}
		}
[/code]

Ist das ein komplett falscher Ansatz, oder doch richtig und muss nur leicht abgewandelt werden?

Über eine hilfreiche Antwort wäre ich dankbar.

Lg
 
Das wäre auch eine Möglichkeit, aber ich wollte den Code des einzelnen Projekts lieber etwas kleiner halten. Könnte sonst unübersichtlich werden...

Ich werde es aber gleich mal mit deiner Methode versuchen, dann sollte es ja klappen.

Gibt es dennoch eine andere Möglichkeit? Oder wird das dann etwas umständlicher?

Lg
 
Habe ich hier im Konstruktor des ersten Programmaufrufes etwas falsch zugewiesen?

Sobald ich im ComboBox die Auswahl "Quersumme" anklicke, passiert nichts...

Java:
[code]
import java.awt.Color;
import java.awt.Container;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JComboBox;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
import javax.swing.JTextField;

public class Rechner extends JFrame 
{
	//Hier werden saemtliche Objekte, die wir benoetigen deklariert und die Buttons bereits erstellt.
	private static final long serialVersionUID = 1L;
	JLabel erg,ergebnis,operand1,operand2;
	JTextField eingabe,eingabe2;
	JButton b1=new JButton("Addieren"),b2=new JButton("Subtrahieren"),b3=new JButton("Multiplizieren"),b4=new JButton("Dividieren"),b5=new JButton("Alles loeschen");
	String a[]={"Rechner","Quersumme","Wurzel"};
	JComboBox Auswahl=new JComboBox(a);
	Container c;
	JPanel p1=new JPanel();
	
	public Rechner(String titel)//Konstruktor
	{
		//Hinzufuegen saemtlicher Objekte
		c=getContentPane();
		setSize(500,200);
		setLocation(200, 200);
		c.setLayout(new GridLayout(3,4));
		c.add(p1.add(Auswahl),Container.TOP_ALIGNMENT);
		c.add(Auswahl);
		Auswahl.addActionListener(new ChangeListener());
		//Auswahl.setActionCommand("Quersumme");
		c.add(operand1=new JLabel("Operand 1:",JLabel.RIGHT));
		c.add(eingabe=new JTextField(10));
		c.add(operand2=new JLabel("Operand 2:",JLabel.RIGHT));
		c.add(eingabe2=new JTextField(10));
		c.add(b1);
		b1.addActionListener(new OperatorListener('+'));
		c.add(b2);
		b2.addActionListener(new OperatorListener('-'));;
		c.add(b3);
		b3.addActionListener(new OperatorListener('*'));
		c.add(b4);
		b4.addActionListener(new OperatorListener('/'));
		b5.addActionListener(new OperatorListener('l'));
		c.add(b5);
		c.add(ergebnis=new JLabel("Ergebnis:",JLabel.RIGHT));
		c.add(erg=new JLabel());
		erg.setOpaque(true);
		erg.setBackground(Color.WHITE);
		c.add(b5);
		setVisible(true);
		setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
	}
	
	public static void main(String[] args) 
	{
		new Rechner("Rechner");
	}
	
	/*public*/ class Quersumme_grafisch extends JFrame implements ActionListener
	{
		private static final long serialVersionUID = 1L;
		JTextField tf1,tf2;
		JLabel l1,l2,l3;
		JButton b1,b2;
		Container c;
		
		public Quersumme_grafisch(String titel)
		{
			c=getContentPane();
			setLayout(new GridLayout(2,3));
			setSize(750,150);
			setLocation(200,200);
			c.add(l1=new JLabel("Zahl1"));
			l1.setToolTipText("Ihre Eingabe muss kleiner oder gleich 100 sein");
			c.add(tf1=new JTextField(10));
			c.add(l2=new JLabel("Zahl2"));
			l2.setToolTipText("Ihre Eingabe muss kleiner oder gleich 100 sein");
			c.add(tf2=new JTextField(10));
			c.add(b1=new JButton("berechne Quersumme"));
			b1.addActionListener(this);
			c.add(b2=new JButton("Clear"));
			b2.addActionListener(this);
			c.add(l2=new JLabel("Die Quersumme ist: "));
			c.add(l3=new JLabel());
			l3.setOpaque(true);
			l3.setBackground(Color.WHITE);
			setVisible(true);
			setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		}
		
		
		@Override
		public void actionPerformed(ActionEvent ae) 
		{
			int zahl1=Integer.parseInt(tf1.getText());
			int zahl2=Integer.parseInt(tf2.getText());
			
			if(ae.getActionCommand().equals("berechne Quersumme"))
			{
				int Quersumme=((zahl1/10)+(zahl1%10))+((zahl2/10)+(zahl2%10));
				l3.setText(""+Quersumme);
			}
			else if(ae.getActionCommand().equals("Clear"))
			{
				tf1.setText("");
				tf2.setText("");
				l3.setText("");
			}
		}

	}
	
	class ChangeListener implements ActionListener
	{
		@Override
		public void actionPerformed(ActionEvent e) 
		{
			if(e.getActionCommand().equals(Auswahl.getSelectedItem().equals("Rechner")))
			{
				new Rechner("Rechner");
			}
			else if(e.getActionCommand().equals(Auswahl.getSelectedItem().equals("Quersumme")))
			{
				dispose();
				new Quersumme_grafisch("Quersummenrechner");
			}
		}

		
	}
	
	class OperatorListener implements ActionListener
	{
		char operation;
		OperatorListener (char operation)//Konstruktor der OperatorListener Klasse wird erstellt und ihm wird nur ein wert uebergeben, der char operation
		{
			this.operation=operation;
		}
		
		@Override
		public void actionPerformed(ActionEvent e) //Dieser wird folglich auch fuer die einzelnen Abfragen verwendet wenn die speziellen knoepfe gedrueckt werden
		{
			if(operation=='l')
			{
				erg.setText("");
				eingabe.setText("");
				eingabe2.setText("");
				return;
			}
			try
			{
				double operator1=Double.parseDouble(eingabe.getText());//Double.valueOf(eingabe.getText()).doubleValue();
				double operator2=Double.parseDouble(eingabe2.getText());//Double.valueOf(eingabe2.getText()).doubleValue();
				double erg;
				
				if(operation=='+')
				{
					erg=operator1+operator2;
					Rechner.this.erg.setText(""+erg);
				}	
				else if(operation=='-')
				{
					erg=operator1-operator2;
					Rechner.this.erg.setText(""+erg);
				}
				else if(operation=='*')
				{
					erg=operator1*operator2;
					Rechner.this.erg.setText(""+erg);
				}
				else //(operation=='/')
				{
					erg=operator1/operator2;
					Rechner.this.erg.setText(""+erg);
				}
//				else
//					System.out.println("Fehler");
			}
			catch(NumberFormatException nfe)
			{
				JOptionPane.showMessageDialog(null,"Bitte geben Sie ihre eingabe in einem anderen Format ein");
			}
			
		}
		
	}
}
[/code]
 

Zurück
Oben