Hallo, ich habe einen JButton initialisiert und in der Klasse einen ActionListener. Außerdem einen ActionListener für den Button mit addActionListener hinzugefügt.
Hier mein Quellcode:
Hier mein Quellcode:
Java:
import java.awt.*;
import java.awt.BorderLayout;
import java.awt.GridLayout;
import java.awt.event.*;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JPanel;
import javax.swing.SwingUtilities;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JTextArea;
import javax.swing.JToolBar;
import javax.swing.SwingUtilities;
import javax.swing.border.LineBorder;
import javax.swing.border.EmptyBorder;
import javax.swing.SwingUtilities;
import javax.swing.*;
import javax.swing.event.*;
import javax.swing.text.*;
import java.beans.PropertyChangeListener;
import java.beans.PropertyChangeEvent;
import java.text.*;
public class SiebzehnVier extends JFrame implements ActionListener {
JTextField sname1,sname2;
JButton selectb, playb, exitb;
int anzahl = 2;
String [] spielernamen = new String[anzahl];
JPanel spielPanel = new JPanel();
JPanel spielerPanel = new JPanel();
JPanel gegnerPanel = new JPanel();
Runde r;
int kartenmatrix [][] = new int[4][9];
boolean namengesetzt=false;
public int convertPoint(int x) {
switch(x) {
case 2: return 0;
case 3: return 1;
case 4: return 2;
case 7: return 3;
case 8: return 4;
case 9: return 5;
case 10: return 6;
case 11: return 7;
default: return -1;
}
}
public String getKarte(int x) {
String kette = "";
int a,b,c;
c=0;
b=convertPoint(r.werte[x]);
if (b>-1){
while (c == 0){
a=(int)Math.random ()*4;
if (kartenmatrix[a][b]==0) {
kette = "img/" + a + "0" + b + ".png";
kartenmatrix[a][b]++;
c++;;
}
}
}
return kette;
}
public void resetGame() {
for(int j=0; j<4;j++)
for(int k=0; k<9;k++)
kartenmatrix[j][k]=0;
}
public void showGame() {
String kette="";
for(int i=0; i<6;i++) {
kette = getKarte(i);
if (!kette.equals("")) {
spielerPanel.add(new JLabel(new ImageIcon(getKarte(i))));
spielerPanel.add(new JLabel("Spielername: "+r.s[0].getSpielername()));
spielerPanel.add(new JLabel("Spiele: "+r.s[0].getSpiele()));
spielerPanel.add(new JLabel("Gewonnen: "+r.s[0].getGewonneneSpiele()));
spielerPanel.updateUI();
}
}
for(int i=6; i<10;i++) {
kette = getKarte(i);
if (!kette.equals("")) {
gegnerPanel.add(new JLabel(new ImageIcon(getKarte(i))));
gegnerPanel.add(new JLabel("Spielername: "+r.s[1].getSpielername()));
gegnerPanel.add(new JLabel("Spiele: "+r.s[1].getSpiele()));
gegnerPanel.add(new JLabel("Gewonnen: "+r.s[1].getGewonneneSpiele()));
gegnerPanel.updateUI();
}
repaint();
}
}
public SiebzehnVier() {
initwindow();
initUI();
r = new Runde(anzahl, spielernamen);
resetGame();
repaint();
}
public void actionPerformed(ActionEvent e) {
if(e.getSource() == selectb){
if (!namengesetzt){
spielernamen[0]=sname1.getText();
spielernamen[1]=sname2.getText();
namengesetzt=true;
resetGame();
}
else {
r.Spielstart();
r.s[0].setSpiele();
r.s[1].setSpiele();
}
}
if(e.getSource() == playb){
if (r.count < 10) {
r.s[r.count].setPunkte();
r.count++;
r.s[r.count].setPunkte();
r.count++;
}
else {
r.setGewinner();
}
}
if(e.getSource() == exitb) {
r.setGewinner();
}
repaint();
}
public final void initUI() {
JMenuBar menubar = new JMenuBar();
JMenu file = new JMenu("Datei");
menubar.add(file);
setJMenuBar(menubar);
JToolBar vertical = new JToolBar(JToolBar.VERTICAL);
vertical.setFloatable(false);
vertical.setMargin(new Insets(10, 5, 5, 5));
ImageIcon select = new ImageIcon("img/icon/agree.png");
ImageIcon play = new ImageIcon("img/icon/play.png");
ImageIcon exit = new ImageIcon("img/icon/exit.png");
JButton selectb = new JButton(select);
selectb.setBorder(new EmptyBorder(3, 0, 3, 0));
JButton playb = new JButton(play);
playb.setBorder(new EmptyBorder(3, 0, 3, 0));
JButton exitb = new JButton(exit);
exitb.setBorder(new EmptyBorder(3, 0, 3, 0));
sname1 = new JTextField("Spielername 1",10);
sname2 = new JTextField("Spielername 2",10);
//sname1.setMaximumSize(new Dimension(200, vertical.getPreferredSize().height)); // setColumns(int);
JToolBar toolbar = new JToolBar();
toolbar.setFloatable(false);
sname1.setMaximumSize(new Dimension(200, vertical.getPreferredSize().height));
sname1.setBorder(LineBorder.createGrayLineBorder());
toolbar.add(sname1);
sname2.setBorder(LineBorder.createGrayLineBorder());
sname2.setMaximumSize(new Dimension(200, vertical.getPreferredSize().height));
toolbar.add(sname2);
add(toolbar, BorderLayout.NORTH);
selectb.addActionListener(this);
playb.addActionListener(this);
exitb.addActionListener(this);
vertical.add(selectb);
vertical.add(playb);
vertical.add(exitb);
add(vertical, BorderLayout.WEST);
// spielPanel.setBorder(BorderFactory.createEmptyBorder(5, 5, 5, 5));
spielPanel.setLayout(new GridLayout(2, 1, 5, 5));
spielPanel.setBackground(Color.GRAY);
add(spielPanel, BorderLayout.CENTER);
spielerPanel.setBackground(Color.GRAY);
spielerPanel.setBorder(LineBorder.createGrayLineBorder());
gegnerPanel.setBackground(Color.GRAY);
spielPanel.add(spielerPanel);
spielPanel.add(gegnerPanel);
JLabel statusbar = new JLabel(" Statusbar");
statusbar.setPreferredSize(new Dimension(-1, 22));
statusbar.setBorder(LineBorder.createGrayLineBorder());
add(statusbar, BorderLayout.SOUTH);
repaint();
}
public final void initwindow(){
setTitle("Simulation: Siebzehn und Vier");
setSize(800, 600);
setLocationRelativeTo(null);
setDefaultCloseOperation(EXIT_ON_CLOSE);
}
public static void main(String[] args) {
SwingUtilities.invokeLater(new Runnable() {
public void run() {
SiebzehnVier fenster = new SiebzehnVier();
fenster.setVisible(true);
}
});
}
}