Per Klick eine andere Klasse ausführen!

fatmc

Mitglied
Hallo!
Ich bins ma wieder , aber diesmal mit nem anderen Problem. :-)
Und zwar habe ich zwei voneinander unabhängige Klassen ,wobei die eine ein einfaches Fenster mit ein paar Buttons ausgibt und die andere Klasse ist ein Spiel.
Nun bekomme ich es leider nicht gebacken , das ich per klick auf ein Button (in der ersten Klasse) die Klasse mit dem Spiel sich ausführen lässt, also sich das Spiel öffnet.

Wenn ihr mir helfen könnt und das auch tut, :) dann wäre ich euch sehr,sehr dankbar.
Mit freundlichem Gruß
euer Problemkind fat :-)
 
verstehe ich jetzt nicht so ganz..
meinst du sowas
Code:
JButton b = new JButton();
b.addActionlistener(new ActionListener(
    public void actionPerformed(ActionEvent e){
          DeineKlasse2 spiel = new DeineKlasse2();
          spiel.machWas();
}
)):
oder habe ich dich falsch verstanden
ansonsten such mal im forum nach ClassforName oder schau in der api
 
hmm ich probiere das gerade, nur ich bekomme das nicht richtig eingesetzt.Meine erste Klasse mit den Buttons heisst "Fenster" und die zweite Klasse mit dem Spiel, die geöffnet werden soll heisst "Tictactoe"! und was kommt in "spiel.machWas();
" falls du mir das richtig einsetzen kannst wäre das sehr net ! THX schonmal ,
MFG fat
 
Also in Klartext:
Ich möchte von der Klasse "Fenster" die Klasse "Tictactoe" öffnet!
Dieses soll mit dem Button "spielen" geschehen!(dieser ist auch schon erzeugt)

Nun hier mein Quelltext der Klasse "Fenster" , wo nun die Verknüpfung zum "Tictactoe" eingebaut werden muss.

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class Fenster extends Frame implements ActionListener
{

Button one = new Button ("Intro starten");
Button two = new Button ("Spielen");
Button three = new Button ("Anleitung");
Button four = new Button ("Credits");
Button five = new Button ("Beenden");

public Fenster ()
{

super (" Lernpaket ");

FlowLayout Buttons = new FlowLayout (FlowLayout.CENTER);
Panel pane = new Panel (Buttons);
pane.setLayout(Buttons);
Label L = new Label ("TIC TAC TOE ");
add(pane);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
dispose();
System.exit(0);
}
});
one.addActionListener(this);
two.addActionListener(this);
three.addActionListener(this);
four.addActionListener(this);
five.addActionListener(this);

pane.add(L);
pane.add(one);
pane.add(two);
pane.add(three);
pane.add(four);
pane.add(five);
one.setBackground(Color.pink);
two.setBackground(Color.pink);
three.setBackground(Color.pink);
four.setBackground(Color.pink);
five.setBackground(Color.pink);
L.setFont (new Font ("Monospaced", Font.BOLD,30));
setSize (500, 200);
//setBackground(Color.blue);
new ImageIcon("C:/ring.jpg");
setVisible (true);

}

public static void main(String arg[])
{
new Fenster();
}

public void actionPerformed(ActionEvent e)
{
if(e.getSource()==one)
{
try {
Runtime.getRuntime().exec("C:\\Programme\\QuickTime\\QuickTimePlayer.exe TicTacToeIntro.mov");
} catch( IOException ex) {


}

}


}

}



Hoffe ihr blickt da durch und wisst was zu tun ist! THX
 
Zuletzt bearbeitet:
fatmc hat gesagt.:
Also in Klartext:
Ich möchte von der Klasse "Fenster" die Klasse "Tictactoe" öffnet!
Dieses soll mit dem Button "spielen" geschehen!(dieser ist auch schon erzeugt)

Nun hier mein Quelltext der Klasse "Fenster" , wo nun die Verknüpfung zum "Tictactoe" eingebaut werden muss.
Code:
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;

public class Fenster extends Frame implements ActionListener
{

Button one = new Button ("Intro starten");
Button two = new Button ("Spielen");
Button three = new Button ("Anleitung");
Button four = new Button ("Credits");
Button five = new Button ("Beenden");

public Fenster ()
{

super (" Lernpaket ");

FlowLayout Buttons = new FlowLayout (FlowLayout.CENTER);
Panel pane = new Panel (Buttons);
pane.setLayout(Buttons);
Label L = new Label ("TIC TAC TOE ");
add(pane);
addWindowListener(new WindowAdapter(){
public void windowClosing(WindowEvent e)
{
      dispose();
      System.exit(0);
}
});
one.addActionListener(this);
two.addActionListener(this);
three.addActionListener(this);
four.addActionListener(this);
five.addActionListener(this);

pane.add(L);
pane.add(one);
pane.add(two);
pane.add(three);
pane.add(four);
pane.add(five);
one.setBackground(Color.pink);
two.setBackground(Color.pink);
three.setBackground(Color.pink);
four.setBackground(Color.pink);
five.setBackground(Color.pink);
L.setFont (new Font ("Monospaced", Font.BOLD,30));
setSize (500, 200);
//setBackground(Color.blue);
new ImageIcon("C:/ring.jpg");
setVisible (true);

}

public static void main(String arg[])
{
     new Fenster();
}

public void actionPerformed(ActionEvent e)
{
  if(e.getSource()==one)
 {
     try {
Runtime.getRuntime().exec("C:\\Programme\\QuickTime\\QuickTimePlayer.exe TicTacToeIntro.mov");
} catch( IOException ex) {


}
 
}
if(e.getSource() == two) //Ich wuerde hier aber eher e.getActionCommand nehmen
{
Tictactoe ttt = new Tictactoe(); //hiermit hast du nun die instanz und kannst deine methodesn aufrufen
ttt.meineMethode(); //als beispiel
}
}

}

Hoffe ihr blickt da durch und wisst was zu tun ist! THX
ich weiss halt nicht genau was du machen willst, soll sich das spiel im gleichen Frame(Fenster) oeffnen oder ist die klasse TickTackToe ein frame das dann angezeigt wird?
 
Zurück