P
Peter-Berlin
Gast
Hallo Leute,
ich hab folgendes Problem. Ich hab bisher her den folgenden Quellcode und möchte an der rechten Seite eine Art Chat integrieren, da das später mal ein 4-gewinnt Spiel werden soll. Allerdings gelingt es mir nicht, das in mein Layout zu integrieren. Ich möchte also links das eigentliche Spielfeld und rechts daneben ein Textfeld in dem die nachrichten angezeigt werden und darunter die Möglichkeit selbst Nachrichten zu versenden. Mir geht es bis jetzt nur darum das graphisch! ,also ohne Funktion umzusetzen. Ich wäre euch sehr dankbar, wenn ihr mir da helfen würdet.
ich hab folgendes Problem. Ich hab bisher her den folgenden Quellcode und möchte an der rechten Seite eine Art Chat integrieren, da das später mal ein 4-gewinnt Spiel werden soll. Allerdings gelingt es mir nicht, das in mein Layout zu integrieren. Ich möchte also links das eigentliche Spielfeld und rechts daneben ein Textfeld in dem die nachrichten angezeigt werden und darunter die Möglichkeit selbst Nachrichten zu versenden. Mir geht es bis jetzt nur darum das graphisch! ,also ohne Funktion umzusetzen. Ich wäre euch sehr dankbar, wenn ihr mir da helfen würdet.
Code:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class GUI {
private static final int Zeilen_SIZE = 6; //Anzahl der Zeilen
private static final int Spalten_SIZE = 7; //Anzahl der Spalten
private static Icon openIcon = new ImageIcon("images/Open.GIF"); //unbelegtes Feld
private static Icon redIcon = new ImageIcon("images/Red.GIF"); //Feld belegt durch ROT
private static Icon blackIcon = new ImageIcon("images/Black.GIF"); //Feld belegt durch SCHWARZ
private static Icon redRollIcon = new ImageIcon("images/RedRoll.GIF"); //Mouseover-ROT
private static Icon blackRollIcon = new ImageIcon("images/BlackRoll.GIF"); //Mouseover-SCHwARZ
private static Icon redWinIcon = new ImageIcon("images/RedWin.GIF"); //Rot-Sieg
private static Icon blackWinIcon = new ImageIcon("images/BlackWin.GIF"); //Schwarz-Sieg
private FensterAbhoerer einFensterAbhoerer = new FensterAbhoerer();
private JFrame frame; //GUI Fenster
private JMenuBar menuBar; //Menüleiste
private JMenu fileMenu; //Datei-menü
private JButton[][] boardButtons; //Spielfelder
private JPanel panel; //panel für die Spielfelder
public static void main(String[] args)
{
GUI connect4GUI = new GUI();
connect4GUI.displayGUI();
}
//-----------------------------------------------------------------------
/**Sets up new game board
*/
public GUI()
{
frame = new JFrame("Vier gewinnt");
frame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE); //have the program handle close window
/*Add menu bar*/
menuBar = new JMenuBar();
fileMenu = new JMenu("Datei");
JMenuItem newGameItem = new JMenuItem("Neues Spiel"); //new game menu item
JMenuItem quitGameItem = new JMenuItem("Beenden"); //quit game menu item
MenuItemListener quitGameListener = new MenuItemListener(); //listens for quit game
quitGameItem.addActionListener(quitGameListener);
frame.addWindowListener(einFensterAbhoerer);
fileMenu.add(newGameItem);
fileMenu.add(quitGameItem);
menuBar.add(fileMenu);
frame.setJMenuBar(menuBar);
boardButtons = new JButton[Zeilen_SIZE][Spalten_SIZE]; //all buttons
panel = new JPanel(new GridLayout(Zeilen_SIZE,Spalten_SIZE)); //7 x 7 grid
newGameBoard(); //set up fresh game board
} //constructor
//-----------------------------------------------------------------------
/**Erstellt ein neues Spielbrett
*/
public void newGameBoard()
{
panel = new JPanel(new GridLayout(Zeilen_SIZE,Spalten_SIZE)); //7 x 7 grid
int i,j;
for (i=0; i<Zeilen_SIZE; i++)
{
for (j=0; j<Spalten_SIZE; j++)
{
boardButtons[i][j] = new JButton(openIcon); //normal icon = clear
boardButtons[i][j].setRolloverIcon(blackRollIcon); //rollover icon = black rollover
boardButtons[i][j].setBackground(Color.WHITE); //background color = yellow
panel.add(boardButtons[i][j]);
if (i < Zeilen_SIZE - 1){
boardButtons[i][j].setDisabledIcon(openIcon); //non-bottom disabled icon = unavailable
boardButtons[i][j].setEnabled(false); //disable non-bottom buttons
} //end if
else{
boardButtons[i][j].setDisabledIcon(blackIcon); //disabled icon = black checker
} //end else
}
}
panel.setBorder(BorderFactory.createEmptyBorder(5,5,5,5)); //make a small border around game
frame.getContentPane().add(panel);
frame.pack();
frame.setVisible(true);
frame.setEnabled(true);
}
public void displayGUI()
{
frame.setEnabled(true);
}
class MenuItemListener implements ActionListener
{
public void actionPerformed(ActionEvent ae)
{
String selection = ae.getActionCommand();
if (selection.equals("Neues Spiel"))
{
frame.getContentPane().remove(panel); //clear GUI panel
newGameBoard();
displayGUI();
} //end if
else if (selection.equals("Beenden"))
{
System.exit(0);
}
}
}
public class FensterAbhoerer extends WindowAdapter
{
//Ereignis Schließen des Fensters
public void windowClosing(WindowEvent event)
{
System.exit(0);
}
}
}