Hi
also ich arbeite wie einem Thema kurz zuvor an einem TicTacToe Spiel. Bin ziemlicher Javaanfänger. Im Moment versuche ich eine Menüleiste zu machen also mit JMenubar und allem. Klappt soweit ganz gut. Aber wenn ich nun PlayerVSPlayer drücke will ich, dass er mir diese Klasse zu meinem bereits bestehendem Gui oder Fesnter addet.
Also bei Hauptklasse menuitem4 beim ActionListener:
Wie erreich ich das?Habs schon mit adden oder so versucht aber ich schaffs nicht.
Meine Hauptklasse:
Diese Klasse soll geaddet werden:
also ich arbeite wie einem Thema kurz zuvor an einem TicTacToe Spiel. Bin ziemlicher Javaanfänger. Im Moment versuche ich eine Menüleiste zu machen also mit JMenubar und allem. Klappt soweit ganz gut. Aber wenn ich nun PlayerVSPlayer drücke will ich, dass er mir diese Klasse zu meinem bereits bestehendem Gui oder Fesnter addet.
Also bei Hauptklasse menuitem4 beim ActionListener:
Wie erreich ich das?Habs schon mit adden oder so versucht aber ich schaffs nicht.
Meine Hauptklasse:
Java:
import java.awt.Dimension;
import java.awt.GridLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
public class Gamewindow extends JFrame{
private static final long serialVersionUID = 1L;
private final int breite,hoehe;
private Dimension dim;
PlayerVSPlayer p;
public Gamewindow()
{
super("Tic Tac Toe");
breite=200;
hoehe=200;
dim=new Dimension(breite,hoehe);
JMenuBar menubar = new JMenuBar();
setJMenuBar(menubar);
JMenu menu = new JMenu("Hauptmenü");
menubar.add(menu);
JMenuItem menuItem = new JMenuItem("Neustart");
menu.add(menuItem);
menuItem.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
JMenuItem menuItem2 = new JMenuItem("Hilfe");
menu.add(menuItem2);
menuItem2.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
JMenuItem menuItem3 = new JMenuItem("Beenden");
menu.add(menuItem3);
menuItem3.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
System.exit(1);
}
});
JMenuItem menuItem4 = new JMenuItem("PlayerVsPlayer");
menu.add(menuItem4);
menuItem4.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e)
{
}
});
setMaximumSize(dim);
setMinimumSize(dim);
setPreferredSize(dim);
setLayout(new GridLayout(3, 0));
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setResizable(false);
setVisible(true);
setLocationRelativeTo(null);
}
}
Diese Klasse soll geaddet werden:
Java:
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JOptionPane;
public class PlayerVSPlayer extends Gamewindow{
JButton[] b= new JButton[9];
private boolean player=true;
private int []feld ={0,0,0,0,0,0,0,0,0};
public void erstellen(){
for(int i=0;i<9;i++)
{
if(i<3)
{
b[i] = new JButton();
b[i].setLocation(200+i*50,100);
}
else if(i<6)
{
b[i] = new JButton();
b[i].setLocation(i*50+50,150);
}
else if (i<9)
{
b[i] = new JButton();
b[i].setLocation(i*50-100,200);
}
b[i].setSize(50,50);
b[i].addActionListener(new Actionhandler());
}
}
private class Actionhandler implements ActionListener{
public void actionPerformed(ActionEvent e) {
if(e.getSource()==b[0])
{
if(player)
{
b[0].setText("X");
player=false;
feld[0]=1;
}
else
{b[0].setText("O");
player=true;
feld[0]=2;
}
b[0].setEnabled(false);
}
else if(e.getSource()==b[1])
{
if(player)
{
b[1].setText("X");
player=false;
feld[1]=1;
}
else
{b[1].setText("O");
player=true;
feld[1]=2;
}
b[1].setEnabled(false);
}
else if(e.getSource()==b[2])
{
if(player)
{
b[2].setText("X");
player=false;
feld[2]=1;
}
else
{b[2].setText("O");
player=true;
feld[2]=2;
}
b[2].setEnabled(false);
}
else if(e.getSource()==b[3])
{
if(player)
{
b[3].setText("X");
player=false;
feld[3]=1;
}
else
{b[3].setText("O");
player=true;
feld[3]=2;
}
b[3].setEnabled(false);
}
else if(e.getSource()==b[4])
{
if(player)
{
b[4].setText("X");
player=false;
feld[4]=1;
}
else
{b[4].setText("O");
player=true;
feld[4]=2;
}
b[4].setEnabled(false);
}
else if(e.getSource()==b[5])
{
if(player)
{
b[5].setText("X");
player=false;
feld[5]=1;
}
else
{b[5].setText("O");
player=true;
feld[5]=2;
}
b[5].setEnabled(false);
}
else if(e.getSource()==b[6])
{
if(player)
{
b[6].setText("X");
player=false;
feld[6]=1;
}
else
{b[6].setText("O");
player=true;
feld[6]=2;
}
b[6].setEnabled(false);
}
else if(e.getSource()==b[7])
{
if(player)
{
b[7].setText("X");
player=false;
feld[7]=1;
}
else
{b[7].setText("O");
player=true;
feld[7]=2;
}
b[7].setEnabled(false);
}
else if(e.getSource()==b[8])
{
if(player)
{
b[8].setText("X");
player=false;
feld[8]=1;
}
else
{b[8].setText("O");
player=true;
feld[8]=2;
}
b[8].setEnabled(false);
}
//Gewinnen für Spieler 1
if(feld[0]==1&&feld[1]==1&&feld[2]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[3]==1&&feld[4]==1&&feld[5]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[6]==1&&feld[7]==1&&feld[8]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[0]==1&&feld[3]==1&&feld[6]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[1]==1&&feld[4]==1&&feld[7]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[2]==1&&feld[5]==1&&feld[8]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[0]==1&&feld[4]==1&&feld[8]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
else if(feld[6]==1&&feld[4]==1&&feld[2]==1)
{ JOptionPane.showMessageDialog(null,"Spieler 1 hat gewonnen");restart();
}
//Gewinnen für Spieler 2
if(feld[0]==2&&feld[1]==2&&feld[2]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[3]==2&&feld[4]==2&&feld[5]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[6]==2&&feld[7]==2&&feld[8]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[0]==2&&feld[3]==2&&feld[6]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[1]==2&&feld[4]==2&&feld[7]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[2]==2&&feld[5]==2&&feld[8]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[0]==2&&feld[4]==2&&feld[8]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[6]==2&&feld[4]==2&&feld[2]==2)
{ JOptionPane.showMessageDialog(null,"Spieler 2 hat gewonnen");restart();
}
else if(feld[0]!=0&&feld[1]!=0&&feld[2]!=0&&feld[3]!=0&&feld[4]!=0&&feld[5]!=0&&feld[6]!=0&&feld[7]!=0&&feld[8]!=0)
{JOptionPane.showMessageDialog(null,"Unentschieden");restart();
}
}
}
public void restart()
{ int eingabe = JOptionPane.showConfirmDialog(null,
"Nochmal spielen?",
"Einverständnis",
JOptionPane.YES_NO_CANCEL_OPTION);
if(eingabe==0){
feld[0]=feld[1]=feld[2]=feld[3]=feld[4]=feld[5]=feld[6]=feld[7]=feld[8]=0;
b[0].setText("");b[1].setText("");b[2].setText("");b[3].setText("");b[4].setText("");b[5].setText("");b[6].setText("");b[7].setText("");b[8].setText("");
b[0].setEnabled(true);b[1].setEnabled(true);b[2].setEnabled(true);b[3].setEnabled(true);b[4].setEnabled(true);b[5].setEnabled(true);b[6].setEnabled(true);b[7].setEnabled(true);b[8].setEnabled(true);
}
else if(eingabe==1)
System.exit(1);
else {}
}
}